update for use with our vehicle.ts
|
@ -10,6 +10,10 @@ FOOTER_IMAGE=img/header.png # can be any image type. path should start from publ
|
|||
LANDING_PAGE=false # if set to true a landing page will be added, if false the vehicle list is the landing page
|
||||
ACCENT_COLOR=red-400 # https://tailwindcss.com/docs/background-color
|
||||
|
||||
ADMIN_NAME=Admin
|
||||
ADMIN_EMAIL=admin@example.com
|
||||
ADMIN_PASSWORD=superSecureDefaultPassword
|
||||
|
||||
KEYBIND_SEPERATOR=; # seperator for keybind combos, thats being used on the db to seperate multiple keys
|
||||
|
||||
# VEHICLE LIST
|
||||
|
|
|
@ -0,0 +1,209 @@
|
|||
<?php
|
||||
|
||||
// @formatter:off
|
||||
/**
|
||||
* A helper file for your Eloquent Models
|
||||
* Copy the phpDocs from this file to the correct Model,
|
||||
* And remove them from this file, to prevent double declarations.
|
||||
*
|
||||
* @author Barry vd. Heuvel <barryvdh@gmail.com>
|
||||
*/
|
||||
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\Brand
|
||||
*
|
||||
* @property int $brand_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $brand_name
|
||||
* @property string|null $brand_description
|
||||
* @method static BrandFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Manufacturer newModelQuery()
|
||||
* @method static Builder|Manufacturer newQuery()
|
||||
* @method static Builder|Manufacturer query()
|
||||
* @method static Builder|Manufacturer whereBrandDescription($value)
|
||||
* @method static Builder|Manufacturer whereBrandId($value)
|
||||
* @method static Builder|Manufacturer whereBrandName($value)
|
||||
* @method static Builder|Manufacturer whereCreatedAt($value)
|
||||
* @method static Builder|Manufacturer whereUpdatedAt($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Brand extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\FuelType
|
||||
*
|
||||
* @property int $fuel_type_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $fuel_type_name
|
||||
* @property string|null $fuel_type_description
|
||||
* @property float|null $fuel_type_price
|
||||
* @method static FuelTypeFactory factory($count = null, $state = [])
|
||||
* @method static Builder|FuelType newModelQuery()
|
||||
* @method static Builder|FuelType newQuery()
|
||||
* @method static Builder|FuelType query()
|
||||
* @method static Builder|FuelType whereCreatedAt($value)
|
||||
* @method static Builder|FuelType whereFuelTypeDescription($value)
|
||||
* @method static Builder|FuelType whereFuelTypeId($value)
|
||||
* @method static Builder|FuelType whereFuelTypeName($value)
|
||||
* @method static Builder|FuelType whereFuelTypePrice($value)
|
||||
* @method static Builder|FuelType whereUpdatedAt($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class FuelType extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\Keybind
|
||||
*
|
||||
* @property int $keybind_id
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @property string $keybind_keys
|
||||
* @property string $keybind_description
|
||||
* @method static \Database\Factories\KeybindFactory factory($count = null, $state = [])
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind whereKeybindDescription($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind whereKeybindId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind whereKeybindKeys($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Keybind whereUpdatedAt($value)
|
||||
*/
|
||||
class Keybind extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\User
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $email
|
||||
* @property Carbon|null $email_verified_at
|
||||
* @property mixed $password
|
||||
* @property string|null $remember_token
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property-read DatabaseNotificationCollection<int, DatabaseNotification> $notifications
|
||||
* @property-read int|null $notifications_count
|
||||
* @property-read Collection<int, PersonalAccessToken> $tokens
|
||||
* @property-read int|null $tokens_count
|
||||
* @method static UserFactory factory($count = null, $state = [])
|
||||
* @method static Builder|User newModelQuery()
|
||||
* @method static Builder|User newQuery()
|
||||
* @method static Builder|User query()
|
||||
* @method static Builder|User whereCreatedAt($value)
|
||||
* @method static Builder|User whereEmail($value)
|
||||
* @method static Builder|User whereEmailVerifiedAt($value)
|
||||
* @method static Builder|User whereId($value)
|
||||
* @method static Builder|User whereName($value)
|
||||
* @method static Builder|User wherePassword($value)
|
||||
* @method static Builder|User whereRememberToken($value)
|
||||
* @method static Builder|User whereUpdatedAt($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class User extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\Vehicle
|
||||
*
|
||||
* @property int $vehicle_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $name
|
||||
* @property int $vehicle_storage
|
||||
* @property int $vehicle_fuel_volume
|
||||
* @property int $vehicle_seats
|
||||
* @property float|null $vehicle_price
|
||||
* @property float|null $vehicle_top_speed
|
||||
* @property int $vehicle_class_id
|
||||
* @property int $fuel_type_id
|
||||
* @property int $brand_id
|
||||
* @property int $vendor_id
|
||||
* @method static VehicleFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Vehicle filter(array $filters)
|
||||
* @method static Builder|Vehicle newModelQuery()
|
||||
* @method static Builder|Vehicle newQuery()
|
||||
* @method static Builder|Vehicle query()
|
||||
* @method static Builder|Vehicle whereBrandId($value)
|
||||
* @method static Builder|Vehicle whereCreatedAt($value)
|
||||
* @method static Builder|Vehicle whereFuelTypeId($value)
|
||||
* @method static Builder|Vehicle whereName($value)
|
||||
* @method static Builder|Vehicle whereUpdatedAt($value)
|
||||
* @method static Builder|Vehicle whereVehicleClassId($value)
|
||||
* @method static Builder|Vehicle whereVehicleFuelVolume($value)
|
||||
* @method static Builder|Vehicle whereVehicleId($value)
|
||||
* @method static Builder|Vehicle whereVehiclePrice($value)
|
||||
* @method static Builder|Vehicle whereVehicleSeats($value)
|
||||
* @method static Builder|Vehicle whereVehicleStorage($value)
|
||||
* @method static Builder|Vehicle whereVehicleTopSpeed($value)
|
||||
* @method static Builder|Vehicle whereVendorId($value)
|
||||
* @property string $vehicle_name
|
||||
* @method static Builder|Vehicle whereVehicleName($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Vehicle extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\VehicleClass
|
||||
*
|
||||
* @property int $vehicle_class_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $vehicle_class_name
|
||||
* @property string|null $vehicle_class_description
|
||||
* @method static VehicleClassFactory factory($count = null, $state = [])
|
||||
* @method static Builder|VehicleClass newModelQuery()
|
||||
* @method static Builder|VehicleClass newQuery()
|
||||
* @method static Builder|VehicleClass query()
|
||||
* @method static Builder|VehicleClass whereCreatedAt($value)
|
||||
* @method static Builder|VehicleClass whereUpdatedAt($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassDescription($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassId($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassName($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class VehicleClass extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\Vendor
|
||||
*
|
||||
* @property int $vendor_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $vendor_name
|
||||
* @property string|null $vendor_description
|
||||
* @property string|null $vendor_position
|
||||
* @property float|null $vendor_x
|
||||
* @property float|null $vendor_y
|
||||
* @method static VendorFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Vendor newModelQuery()
|
||||
* @method static Builder|Vendor newQuery()
|
||||
* @method static Builder|Vendor query()
|
||||
* @method static Builder|Vendor whereCreatedAt($value)
|
||||
* @method static Builder|Vendor whereUpdatedAt($value)
|
||||
* @method static Builder|Vendor whereVendorDescription($value)
|
||||
* @method static Builder|Vendor whereVendorId($value)
|
||||
* @method static Builder|Vendor whereVendorName($value)
|
||||
* @method static Builder|Vendor whereVendorPosition($value)
|
||||
* @method static Builder|Vendor whereVendorX($value)
|
||||
* @method static Builder|Vendor whereVendorY($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Vendor extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Brand;
|
||||
use App\Http\Requests\StoreBrandRequest;
|
||||
use App\Http\Requests\UpdateBrandRequest;
|
||||
use App\Models\DriveTrain;
|
||||
use App\Http\Requests\StoreDriveTrainRequest;
|
||||
use App\Http\Requests\UpdateDriveTrainRequest;
|
||||
|
||||
class BrandController extends Controller
|
||||
class DriveTrainController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
|
@ -27,7 +27,7 @@ class BrandController extends Controller
|
|||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(StoreBrandRequest $request)
|
||||
public function store(StoreDriveTrainRequest $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ class BrandController extends Controller
|
|||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(Brand $brand)
|
||||
public function show(DriveTrain $driveTrain)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ class BrandController extends Controller
|
|||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(Brand $brand)
|
||||
public function edit(DriveTrain $driveTrain)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ class BrandController extends Controller
|
|||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(UpdateBrandRequest $request, Brand $brand)
|
||||
public function update(UpdateDriveTrainRequest $request, DriveTrain $driveTrain)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class BrandController extends Controller
|
|||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(Brand $brand)
|
||||
public function destroy(DriveTrain $driveTrain)
|
||||
{
|
||||
//
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Manufacturer;
|
||||
use App\Http\Requests\StoreManufacturerRequest;
|
||||
use App\Http\Requests\UpdateManufacturerRequest;
|
||||
|
||||
class ManufacturerController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(StoreManufacturerRequest $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(Manufacturer $brand)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(Manufacturer $brand)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(UpdateManufacturerRequest $request, Manufacturer $brand)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(Manufacturer $brand)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Brand;
|
||||
use App\Models\Manufacturer;
|
||||
use App\Models\FuelType;
|
||||
use App\Models\Vehicle;
|
||||
use App\Http\Requests\StoreVehicleRequest;
|
||||
use App\Http\Requests\UpdateVehicleRequest;
|
||||
use App\Models\VehicleClass;
|
||||
use App\Models\VehicleType;
|
||||
use App\Models\Vendor;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
@ -20,22 +21,22 @@ class VehicleController extends Controller
|
|||
public function index()
|
||||
{
|
||||
$vehicles = Vehicle::filter(
|
||||
request(['search', 'vehicle_class_id', 'brand_id', 'fuel_type_id', 'vendor_id'])
|
||||
request(['search', 'class', 'manufacturer', 'fuelType', 'type'])
|
||||
)
|
||||
->paginate(24)->withQueryString();
|
||||
|
||||
$brands = Brand::all();
|
||||
$manufacturers = Manufacturer::all();
|
||||
$fuelTypes = FuelType::all();
|
||||
$vehicleClasses = VehicleClass::all();
|
||||
$vendors = Vendor::all();
|
||||
$classes = VehicleClass::all();
|
||||
$types = VehicleType::all();
|
||||
|
||||
return response(
|
||||
view('vehicles.index', [
|
||||
'vehicles' => $vehicles,
|
||||
'brands' => $brands,
|
||||
'manufacturers' => $manufacturers,
|
||||
'fuelTypes' => $fuelTypes,
|
||||
'vehicleClasses' => $vehicleClasses,
|
||||
'vendors' => $vendors,
|
||||
'vehicleClasses' => $classes,
|
||||
'types' => $types,
|
||||
])
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\VehicleType;
|
||||
use App\Http\Requests\StoreVehicleTypeRequest;
|
||||
use App\Http\Requests\UpdateVehicleTypeRequest;
|
||||
|
||||
class VehicleTypeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(StoreVehicleTypeRequest $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(VehicleType $vehicleType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(VehicleType $vehicleType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(UpdateVehicleTypeRequest $request, VehicleType $vehicleType)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(VehicleType $vehicleType)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@ namespace App\Http\Requests;
|
|||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreBrandRequest extends FormRequest
|
||||
class StoreDriveTrainRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreManufacturerRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@ namespace App\Http\Requests;
|
|||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateBrandRequest extends FormRequest
|
||||
class StoreVehicleTypeRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateDriveTrainRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateManufacturerRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateVehicleTypeRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Database\Factories\BrandFactory;
|
||||
use Eloquent;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* App\Models\Brand
|
||||
*
|
||||
* @property int $brand_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $brand_name
|
||||
* @property string|null $brand_description
|
||||
* @method static BrandFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Brand newModelQuery()
|
||||
* @method static Builder|Brand newQuery()
|
||||
* @method static Builder|Brand query()
|
||||
* @method static Builder|Brand whereBrandDescription($value)
|
||||
* @method static Builder|Brand whereBrandId($value)
|
||||
* @method static Builder|Brand whereBrandName($value)
|
||||
* @method static Builder|Brand whereCreatedAt($value)
|
||||
* @method static Builder|Brand whereUpdatedAt($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Brand extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getBrandId(): int
|
||||
{
|
||||
return $this->brand_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $brand_id
|
||||
*
|
||||
* @return Brand
|
||||
*/
|
||||
public function setBrandId(int $brand_id): Brand
|
||||
{
|
||||
$this->brand_id = $brand_id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getBrandName(): string
|
||||
{
|
||||
return $this->brand_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $brand_name
|
||||
*
|
||||
* @return Brand
|
||||
*/
|
||||
public function setBrandName(string $brand_name): Brand
|
||||
{
|
||||
$this->brand_name = $brand_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getBrandDescription(): ?string
|
||||
{
|
||||
return $this->brand_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $brand_description
|
||||
*
|
||||
* @return Brand
|
||||
*/
|
||||
public function setBrandDescription(?string $brand_description): Brand
|
||||
{
|
||||
$this->brand_description = $brand_description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Database\Factories\DriveTrainFactory;
|
||||
use Eloquent;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* App\Models\DriveTrain
|
||||
*
|
||||
* @property string $name
|
||||
* @method static DriveTrainFactory factory($count = null, $state = [])
|
||||
* @method static Builder|FuelType newModelQuery()
|
||||
* @method static Builder|FuelType newQuery()
|
||||
* @method static Builder|FuelType query()
|
||||
* @method static Builder|FuelType whereName($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class DriveTrain extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'drive_trains';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function geteName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): DriveTrain
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -7,110 +7,56 @@ use Eloquent;
|
|||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* App\Models\FuelType
|
||||
*
|
||||
* @property int $fuel_type_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $fuel_type_name
|
||||
* @property string|null $fuel_type_description
|
||||
* @property float|null $fuel_type_price
|
||||
* @property string $name
|
||||
* @property float|null $price
|
||||
* @method static FuelTypeFactory factory($count = null, $state = [])
|
||||
* @method static Builder|FuelType newModelQuery()
|
||||
* @method static Builder|FuelType newQuery()
|
||||
* @method static Builder|FuelType query()
|
||||
* @method static Builder|FuelType whereCreatedAt($value)
|
||||
* @method static Builder|FuelType whereFuelTypeDescription($value)
|
||||
* @method static Builder|FuelType whereFuelTypeId($value)
|
||||
* @method static Builder|FuelType whereFuelTypeName($value)
|
||||
* @method static Builder|FuelType whereFuelTypePrice($value)
|
||||
* @method static Builder|FuelType whereUpdatedAt($value)
|
||||
* @method static Builder|FuelType whereName($value)
|
||||
* @method static Builder|FuelType wherePrice($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class FuelType extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getFuelTypeId(): int
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'fuel_types';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->fuel_type_id;
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $fuel_type_id
|
||||
*
|
||||
* @return FuelType
|
||||
*/
|
||||
public function setFuelTypeId(int $fuel_type_id): FuelType
|
||||
public function setName(string $name): FuelType
|
||||
{
|
||||
$this->fuel_type_id = $fuel_type_id;
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getFuelTypeName(): string
|
||||
public function getPrice(): ?float
|
||||
{
|
||||
return $this->fuel_type_name;
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $fuel_type_name
|
||||
*
|
||||
* @return FuelType
|
||||
*/
|
||||
public function setFuelTypeName(string $fuel_type_name): FuelType
|
||||
public function setPrice(?float $price): FuelType
|
||||
{
|
||||
$this->fuel_type_name = $fuel_type_name;
|
||||
$this->price = $price;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getFuelTypeDescription(): ?string
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
return $this->fuel_type_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $fuel_type_description
|
||||
*
|
||||
* @return FuelType
|
||||
*/
|
||||
public function setFuelTypeDescription(?string $fuel_type_description): FuelType
|
||||
{
|
||||
$this->fuel_type_description = $fuel_type_description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|null
|
||||
*/
|
||||
public function getFuelTypePrice(): ?float
|
||||
{
|
||||
return $this->fuel_type_price;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float|null $fuel_type_price
|
||||
*
|
||||
* @return FuelType
|
||||
*/
|
||||
public function setFuelTypePrice(?float $fuel_type_price): FuelType
|
||||
{
|
||||
$this->fuel_type_price = $fuel_type_price;
|
||||
|
||||
return $this;
|
||||
return ucwords(str_replace('_', ' ', $this->name));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,19 +11,19 @@ use Illuminate\Support\Carbon;
|
|||
/**
|
||||
* App\Models\Keybind
|
||||
*
|
||||
* @property int $keybind_id
|
||||
* @property int $id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $keybind_keys
|
||||
* @property string $keybind_description
|
||||
* @property string $keys
|
||||
* @property string $description
|
||||
* @method static KeybindFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Keybind newModelQuery()
|
||||
* @method static Builder|Keybind newQuery()
|
||||
* @method static Builder|Keybind query()
|
||||
* @method static Builder|Keybind whereCreatedAt($value)
|
||||
* @method static Builder|Keybind whereKeybindDescription($value)
|
||||
* @method static Builder|Keybind whereKeybindId($value)
|
||||
* @method static Builder|Keybind whereKeybindKeys($value)
|
||||
* @method static Builder|Keybind whereDescription($value)
|
||||
* @method static Builder|Keybind whereId($value)
|
||||
* @method static Builder|Keybind whereKeys($value)
|
||||
* @method static Builder|Keybind whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
|
@ -31,62 +31,43 @@ class Keybind extends Model
|
|||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getKeybindId(): int
|
||||
protected $primaryKey = 'id';
|
||||
protected $table = 'keybinds';
|
||||
public $incrementing = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getId(): int
|
||||
{
|
||||
return $this->keybind_id;
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $keybind_id
|
||||
*
|
||||
* @return Keybind
|
||||
*/
|
||||
public function setKeybindId(int $keybind_id): Keybind
|
||||
public function setId(int $id): Keybind
|
||||
{
|
||||
$this->keybind_id = $keybind_id;
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKeybindKeys(): string
|
||||
public function getKeys(): string
|
||||
{
|
||||
return $this->keybind_keys;
|
||||
return $this->keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keybind_keys
|
||||
*
|
||||
* @return Keybind
|
||||
*/
|
||||
public function setKeybindKeys(string $keybind_keys): Keybind
|
||||
public function setKeys(string $keys): Keybind
|
||||
{
|
||||
$this->keybind_keys = $keybind_keys;
|
||||
$this->keys = $keys;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getKeybindDescription(): string
|
||||
public function getDescription(): string
|
||||
{
|
||||
return $this->keybind_description;
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keybind_description
|
||||
*
|
||||
* @return Keybind
|
||||
*/
|
||||
public function setKeybindDescription(string $keybind_description): Keybind
|
||||
public function setDescription(string $description): Keybind
|
||||
{
|
||||
$this->keybind_description = $keybind_description;
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Database\Factories\ManufacturerFactory;
|
||||
use Eloquent;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* App\Models\Manufacturer
|
||||
*
|
||||
* @property string $name
|
||||
* @property string $displayName
|
||||
* @method static ManufacturerFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Manufacturer newModelQuery()
|
||||
* @method static Builder|Manufacturer newQuery()
|
||||
* @method static Builder|Manufacturer query()
|
||||
* @method static Builder|Manufacturer whereName($value)
|
||||
* @method static Builder|Manufacturer whereDisplayName($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Manufacturer extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'manufacturers';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): Manufacturer
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
return $this->displayName;
|
||||
}
|
||||
|
||||
public function setDisplayName(string $displayName): Manufacturer
|
||||
{
|
||||
$this->displayName = $displayName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
|
@ -7,58 +7,93 @@ use Eloquent;
|
|||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Schema;
|
||||
|
||||
/**
|
||||
* App\Models\Vehicle
|
||||
*
|
||||
* @property int $vehicle_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $name
|
||||
* @property int $vehicle_storage
|
||||
* @property int $vehicle_fuel_volume
|
||||
* @property int $vehicle_seats
|
||||
* @property float|null $vehicle_price
|
||||
* @property float|null $vehicle_top_speed
|
||||
* @property int $vehicle_class_id
|
||||
* @property int $fuel_type_id
|
||||
* @property int $brand_id
|
||||
* @property int $vendor_id
|
||||
* @property string $model
|
||||
* @property string $displayName
|
||||
* @property string $manufacturer
|
||||
* @property string $description
|
||||
* @property string $type
|
||||
* @property string $class
|
||||
* @property int $isSold
|
||||
* @property float $price
|
||||
* @property int $storage
|
||||
* @property string $fuelType
|
||||
* @property int $seats
|
||||
* @property string $hash
|
||||
* @property string|null $signedHash
|
||||
* @property string|null $hexHash
|
||||
* @property float $speed
|
||||
* @property float $acceleration
|
||||
* @property float $braking
|
||||
* @property float $traction
|
||||
* @property float $length
|
||||
* @property float $width
|
||||
* @property float $height
|
||||
* @property float $topSpeed
|
||||
* @property int $gears
|
||||
* @property int $mass
|
||||
* @property string $driveTrain
|
||||
* @property float $consumption
|
||||
* @property int $fuelTankVolume
|
||||
* @property int $oilTankVolume
|
||||
* @property string $inspiredBy
|
||||
* @method static VehicleFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Vehicle filter(array $filters)
|
||||
* @method static Builder|Vehicle newModelQuery()
|
||||
* @method static Builder|Vehicle newQuery()
|
||||
* @method static Builder|Vehicle query()
|
||||
* @method static Builder|Vehicle whereBrandId($value)
|
||||
* @method static Builder|Vehicle whereCreatedAt($value)
|
||||
* @method static Builder|Vehicle whereFuelTypeId($value)
|
||||
* @method static Builder|Vehicle whereName($value)
|
||||
* @method static Builder|Vehicle whereUpdatedAt($value)
|
||||
* @method static Builder|Vehicle whereVehicleClassId($value)
|
||||
* @method static Builder|Vehicle whereVehicleFuelVolume($value)
|
||||
* @method static Builder|Vehicle whereVehicleId($value)
|
||||
* @method static Builder|Vehicle whereVehiclePrice($value)
|
||||
* @method static Builder|Vehicle whereVehicleSeats($value)
|
||||
* @method static Builder|Vehicle whereVehicleStorage($value)
|
||||
* @method static Builder|Vehicle whereVehicleTopSpeed($value)
|
||||
* @method static Builder|Vehicle whereVendorId($value)
|
||||
* @property string $vehicle_name
|
||||
* @method static Builder|Vehicle whereVehicleName($value)
|
||||
* @method static Builder|Vehicle whereAcceleration($value)
|
||||
* @method static Builder|Vehicle whereBraking($value)
|
||||
* @method static Builder|Vehicle whereClass($value)
|
||||
* @method static Builder|Vehicle whereConsumption($value)
|
||||
* @method static Builder|Vehicle whereDescription($value)
|
||||
* @method static Builder|Vehicle whereDisplayName($value)
|
||||
* @method static Builder|Vehicle whereDriveTrain($value)
|
||||
* @method static Builder|Vehicle whereFuelTankVolume($value)
|
||||
* @method static Builder|Vehicle whereFuelType($value)
|
||||
* @method static Builder|Vehicle whereGears($value)
|
||||
* @method static Builder|Vehicle whereHash($value)
|
||||
* @method static Builder|Vehicle whereHeight($value)
|
||||
* @method static Builder|Vehicle whereHexHash($value)
|
||||
* @method static Builder|Vehicle whereInspiredBy($value)
|
||||
* @method static Builder|Vehicle whereIsSold($value)
|
||||
* @method static Builder|Vehicle whereLength($value)
|
||||
* @method static Builder|Vehicle whereManufacturer($value)
|
||||
* @method static Builder|Vehicle whereMass($value)
|
||||
* @method static Builder|Vehicle whereModel($value)
|
||||
* @method static Builder|Vehicle whereOilTankVolume($value)
|
||||
* @method static Builder|Vehicle wherePrice($value)
|
||||
* @method static Builder|Vehicle whereSeats($value)
|
||||
* @method static Builder|Vehicle whereSignedHash($value)
|
||||
* @method static Builder|Vehicle whereSpeed($value)
|
||||
* @method static Builder|Vehicle whereStorage($value)
|
||||
* @method static Builder|Vehicle whereTopSpeed($value)
|
||||
* @method static Builder|Vehicle whereTraction($value)
|
||||
* @method static Builder|Vehicle whereType($value)
|
||||
* @method static Builder|Vehicle whereWidth($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Vehicle extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $primaryKey = 'model';
|
||||
protected $table = 'vehicles';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function scopeFilter(
|
||||
$query,
|
||||
array $filters
|
||||
): void {
|
||||
$search = $filters['search'] ?? false;
|
||||
if ($search) {
|
||||
$query->where('vehicle_name', 'like', '%' . $search . '%');
|
||||
$query->where('displayName', 'like', '%' . $search . '%');
|
||||
}
|
||||
|
||||
unset($filters['search']);
|
||||
|
@ -84,21 +119,17 @@ class Vehicle extends Model
|
|||
}
|
||||
|
||||
switch ($field) {
|
||||
case 'vehicle_class_id':
|
||||
$query->join('vehicle_classes', 'vehicles.vehicle_class_id', '=', 'vehicle_classes.vehicle_class_id');
|
||||
$query->where('vehicle_class_name', '=', $filter);
|
||||
case 'class':
|
||||
$query->join('classes', 'vehicles.class', '=', 'classes.name');
|
||||
$query->where('classes.name', '=', $filter);
|
||||
break;
|
||||
case 'brand_id':
|
||||
$query->join('brands', 'vehicles.brand_id', '=', 'brands.brand_id');
|
||||
$query->where('brand_name', '=', $filter);
|
||||
case 'manufacturer':
|
||||
$query->join('manufacturers', 'vehicles.manufacturer', '=', 'manufacturers.name');
|
||||
$query->where('manufacturers.name', '=', $filter);
|
||||
break;
|
||||
case 'fuel_type_id':
|
||||
$query->join('fuel_types', 'vehicles.fuel_type_id', '=', 'fuel_types.fuel_type_id');
|
||||
$query->where('fuel_type_name', '=', $filter);
|
||||
break;
|
||||
case 'vendor_id':
|
||||
$query->join('vendors', 'vehicles.vendor_id', '=', 'vendors.vendor_id');
|
||||
$query->where('vendor_name', '=', $filter);
|
||||
case 'fuelType':
|
||||
$query->join('fuel_types', 'vehicles.fuelType', '=', 'fuel_types.name');
|
||||
$query->where('fuel_types.name', '=', $filter);
|
||||
break;
|
||||
default:
|
||||
Schema::hasColumn('vehicles', $field);
|
||||
|
@ -107,222 +138,350 @@ class Vehicle extends Model
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleId(): int
|
||||
public function getModel(): string
|
||||
{
|
||||
return $this->vehicle_id;
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_id
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleId(int $vehicle_id): Vehicle
|
||||
public function setModel(string $model): Vehicle
|
||||
{
|
||||
$this->vehicle_id = $vehicle_id;
|
||||
$this->model = $model;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getVehicleName(): string
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
return $this->vehicle_name;
|
||||
return $this->displayName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $vehicle_name
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleName(string $vehicle_name): Vehicle
|
||||
public function setDisplayName(string $displayName): Vehicle
|
||||
{
|
||||
$this->vehicle_name = $vehicle_name;
|
||||
$this->displayName = $displayName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleStorage(): int
|
||||
public function getManufacturer(): string
|
||||
{
|
||||
return $this->vehicle_storage;
|
||||
return $this->manufacturer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_storage
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleStorage(int $vehicle_storage): Vehicle
|
||||
public function setManufacturer(string $manufacturer): Vehicle
|
||||
{
|
||||
$this->vehicle_storage = $vehicle_storage;
|
||||
$this->manufacturer = $manufacturer;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleFuelVolume(): int
|
||||
public function getDescription(): string
|
||||
{
|
||||
return $this->vehicle_fuel_volume;
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_fuel_volume
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleFuelVolume(int $vehicle_fuel_volume): Vehicle
|
||||
public function setDescription(string $description): Vehicle
|
||||
{
|
||||
$this->vehicle_fuel_volume = $vehicle_fuel_volume;
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleSeats(): int
|
||||
public function getType(): string
|
||||
{
|
||||
return $this->vehicle_seats;
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_seats
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleSeats(int $vehicle_seats): Vehicle
|
||||
public function setType(string $type): Vehicle
|
||||
{
|
||||
$this->vehicle_seats = $vehicle_seats;
|
||||
$this->type = $type;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|null
|
||||
*/
|
||||
public function getVehiclePrice(): ?float
|
||||
public function getClass(): string
|
||||
{
|
||||
return $this->vehicle_price;
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float|null $vehicle_price
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehiclePrice(?float $vehicle_price): Vehicle
|
||||
public function setClass(string $class): Vehicle
|
||||
{
|
||||
$this->vehicle_price = $vehicle_price;
|
||||
$this->class = $class;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|null
|
||||
*/
|
||||
public function getVehicleTopSpeed(): ?float
|
||||
public function getIsSold(): int
|
||||
{
|
||||
return $this->vehicle_top_speed;
|
||||
return $this->isSold;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float|null $vehicle_top_speed
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleTopSpeed(?float $vehicle_top_speed): Vehicle
|
||||
public function setIsSold(int $isSold): Vehicle
|
||||
{
|
||||
$this->vehicle_top_speed = $vehicle_top_speed;
|
||||
$this->isSold = $isSold;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleClassId(): int
|
||||
public function getPrice(): float
|
||||
{
|
||||
return $this->vehicle_class_id;
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_class_id
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVehicleClassId(int $vehicle_class_id): Vehicle
|
||||
public function setPrice(float $price): Vehicle
|
||||
{
|
||||
$this->vehicle_class_id = $vehicle_class_id;
|
||||
$this->price = $price;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getFuelTypeId(): int
|
||||
public function getStorage(): int
|
||||
{
|
||||
return $this->fuel_type_id;
|
||||
return $this->storage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $fuel_type_id
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setFuelTypeId(int $fuel_type_id): Vehicle
|
||||
public function setStorage(int $storage): Vehicle
|
||||
{
|
||||
$this->fuel_type_id = $fuel_type_id;
|
||||
$this->storage = $storage;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getBrandId(): int
|
||||
public function getFuelType(): string
|
||||
{
|
||||
return $this->brand_id;
|
||||
return $this->fuelType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $brand_id
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setBrandId(int $brand_id): Vehicle
|
||||
public function setFuelType(string $fuelType): Vehicle
|
||||
{
|
||||
$this->brand_id = $brand_id;
|
||||
$this->fuelType = $fuelType;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVendorId(): int
|
||||
public function getSeats(): int
|
||||
{
|
||||
return $this->vendor_id;
|
||||
return $this->seats;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vendor_id
|
||||
*
|
||||
* @return Vehicle
|
||||
*/
|
||||
public function setVendorId(int $vendor_id): Vehicle
|
||||
public function setSeats(int $seats): Vehicle
|
||||
{
|
||||
$this->vendor_id = $vendor_id;
|
||||
$this->seats = $seats;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHash(): string
|
||||
{
|
||||
return $this->hash;
|
||||
}
|
||||
|
||||
public function setHash(string $hash): Vehicle
|
||||
{
|
||||
$this->hash = $hash;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSignedHash(): ?string
|
||||
{
|
||||
return $this->signedHash;
|
||||
}
|
||||
|
||||
public function setSignedHash(?string $signedHash): Vehicle
|
||||
{
|
||||
$this->signedHash = $signedHash;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHexHash(): ?string
|
||||
{
|
||||
return $this->hexHash;
|
||||
}
|
||||
|
||||
public function setHexHash(?string $hexHash): Vehicle
|
||||
{
|
||||
$this->hexHash = $hexHash;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSpeed(): float
|
||||
{
|
||||
return $this->speed;
|
||||
}
|
||||
|
||||
public function setSpeed(float $speed): Vehicle
|
||||
{
|
||||
$this->speed = $speed;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAcceleration(): float
|
||||
{
|
||||
return $this->acceleration;
|
||||
}
|
||||
|
||||
public function setAcceleration(float $acceleration): Vehicle
|
||||
{
|
||||
$this->acceleration = $acceleration;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getBraking(): float
|
||||
{
|
||||
return $this->braking;
|
||||
}
|
||||
|
||||
public function setBraking(float $braking): Vehicle
|
||||
{
|
||||
$this->braking = $braking;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTraction(): float
|
||||
{
|
||||
return $this->traction;
|
||||
}
|
||||
|
||||
public function setTraction(float $traction): Vehicle
|
||||
{
|
||||
$this->traction = $traction;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLength(): float
|
||||
{
|
||||
return $this->length;
|
||||
}
|
||||
|
||||
public function setLength(float $length): Vehicle
|
||||
{
|
||||
$this->length = $length;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getWidth(): float
|
||||
{
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
public function setWidth(float $width): Vehicle
|
||||
{
|
||||
$this->width = $width;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHeight(): float
|
||||
{
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
public function setHeight(float $height): Vehicle
|
||||
{
|
||||
$this->height = $height;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTopSpeed(): float
|
||||
{
|
||||
return $this->topSpeed;
|
||||
}
|
||||
|
||||
public function setTopSpeed(float $topSpeed): Vehicle
|
||||
{
|
||||
$this->topSpeed = $topSpeed;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getGears(): int
|
||||
{
|
||||
return $this->gears;
|
||||
}
|
||||
|
||||
public function setGears(int $gears): Vehicle
|
||||
{
|
||||
$this->gears = $gears;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMass(): int
|
||||
{
|
||||
return $this->mass;
|
||||
}
|
||||
|
||||
public function setMass(int $mass): Vehicle
|
||||
{
|
||||
$this->mass = $mass;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDriveTrain(): string
|
||||
{
|
||||
return $this->driveTrain;
|
||||
}
|
||||
|
||||
public function setDriveTrain(string $driveTrain): Vehicle
|
||||
{
|
||||
$this->driveTrain = $driveTrain;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getConsumption(): float
|
||||
{
|
||||
return $this->consumption;
|
||||
}
|
||||
|
||||
public function setConsumption(float $consumption): Vehicle
|
||||
{
|
||||
$this->consumption = $consumption;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getFuelTankVolume(): int
|
||||
{
|
||||
return $this->fuelTankVolume;
|
||||
}
|
||||
|
||||
public function setFuelTankVolume(int $fuelTankVolume): Vehicle
|
||||
{
|
||||
$this->fuelTankVolume = $fuelTankVolume;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOilTankVolume(): int
|
||||
{
|
||||
return $this->oilTankVolume;
|
||||
}
|
||||
|
||||
public function setOilTankVolume(int $oilTankVolume): Vehicle
|
||||
{
|
||||
$this->oilTankVolume = $oilTankVolume;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getInspiredBy(): string
|
||||
{
|
||||
return $this->inspiredBy;
|
||||
}
|
||||
|
||||
public function setInspiredBy(string $inspiredBy): Vehicle
|
||||
{
|
||||
$this->inspiredBy = $inspiredBy;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
|
|
@ -12,83 +12,38 @@ use Illuminate\Support\Carbon;
|
|||
/**
|
||||
* App\Models\VehicleClass
|
||||
*
|
||||
* @property int $vehicle_class_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $vehicle_class_name
|
||||
* @property string|null $vehicle_class_description
|
||||
* @property string $name
|
||||
* @method static VehicleClassFactory factory($count = null, $state = [])
|
||||
* @method static Builder|VehicleClass newModelQuery()
|
||||
* @method static Builder|VehicleClass newQuery()
|
||||
* @method static Builder|VehicleClass query()
|
||||
* @method static Builder|VehicleClass whereCreatedAt($value)
|
||||
* @method static Builder|VehicleClass whereUpdatedAt($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassDescription($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassId($value)
|
||||
* @method static Builder|VehicleClass whereVehicleClassName($value)
|
||||
* @method static Builder|VehicleClass whereName($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class VehicleClass extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVehicleClassId(): int
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'classes';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->vehicle_class_id;
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vehicle_class_id
|
||||
*
|
||||
* @return VehicleClass
|
||||
*/
|
||||
public function setVehicleClassId(int $vehicle_class_id): VehicleClass
|
||||
public function setName(string $name): VehicleClass
|
||||
{
|
||||
$this->vehicle_class_id = $vehicle_class_id;
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getVehicleClassName(): string
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
return $this->vehicle_class_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $vehicle_class_name
|
||||
*
|
||||
* @return VehicleClass
|
||||
*/
|
||||
public function setVehicleClassName(string $vehicle_class_name): VehicleClass
|
||||
{
|
||||
$this->vehicle_class_name = $vehicle_class_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getVehicleClassDescription(): ?string
|
||||
{
|
||||
return $this->vehicle_class_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $vehicle_class_description
|
||||
*
|
||||
* @return VehicleClass
|
||||
*/
|
||||
public function setVehicleClassDescription(?string $vehicle_class_description): VehicleClass
|
||||
{
|
||||
$this->vehicle_class_description = $vehicle_class_description;
|
||||
|
||||
return $this;
|
||||
return ucwords(str_replace('_', ' ', $this->name));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Database\Factories\VehicleTypeFactory;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* App\Models\VehicleType
|
||||
*
|
||||
* @method static VehicleTypeFactory factory($count = null, $state = [])
|
||||
* @method static Builder|VehicleType newModelQuery()
|
||||
* @method static Builder|VehicleType newQuery()
|
||||
* @method static Builder|VehicleType query()
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class VehicleType extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'types';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): VehicleType
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
return ucwords(str_replace('_', ' ', $this->name));
|
||||
}
|
||||
}
|
|
@ -12,148 +12,172 @@ use Illuminate\Support\Carbon;
|
|||
/**
|
||||
* App\Models\Vendor
|
||||
*
|
||||
* @property int $vendor_id
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
* @property string $vendor_name
|
||||
* @property string|null $vendor_description
|
||||
* @property string|null $vendor_position
|
||||
* @property float|null $vendor_x
|
||||
* @property float|null $vendor_y
|
||||
* @property string $name
|
||||
* @property string $description
|
||||
* @property string $manufacturers
|
||||
* @property string $types
|
||||
* @property string $classes
|
||||
* @property string $fuelTypes
|
||||
* @property float $maxPrice
|
||||
* @property float $minPrice
|
||||
* @property float $x
|
||||
* @property float $y
|
||||
* @property float $z
|
||||
* @method static VendorFactory factory($count = null, $state = [])
|
||||
* @method static Builder|Vendor newModelQuery()
|
||||
* @method static Builder|Vendor newQuery()
|
||||
* @method static Builder|Vendor query()
|
||||
* @method static Builder|Vendor whereCreatedAt($value)
|
||||
* @method static Builder|Vendor whereUpdatedAt($value)
|
||||
* @method static Builder|Vendor whereVendorDescription($value)
|
||||
* @method static Builder|Vendor whereVendorId($value)
|
||||
* @method static Builder|Vendor whereVendorName($value)
|
||||
* @method static Builder|Vendor whereVendorPosition($value)
|
||||
* @method static Builder|Vendor whereVendorX($value)
|
||||
* @method static Builder|Vendor whereVendorY($value)
|
||||
* @method static Builder|Vendor whereClasses($value)
|
||||
* @method static Builder|Vendor whereDescription($value)
|
||||
* @method static Builder|Vendor whereFuelTypes($value)
|
||||
* @method static Builder|Vendor whereManufacturers($value)
|
||||
* @method static Builder|Vendor whereMaxPrice($value)
|
||||
* @method static Builder|Vendor whereMinPrice($value)
|
||||
* @method static Builder|Vendor whereName($value)
|
||||
* @method static Builder|Vendor whereTypes($value)
|
||||
* @method static Builder|Vendor whereX($value)
|
||||
* @method static Builder|Vendor whereY($value)
|
||||
* @method static Builder|Vendor whereZ($value)
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
class Vendor extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getVendorId(): int
|
||||
protected $primaryKey = 'name';
|
||||
protected $table = 'vendors';
|
||||
public $incrementing = false;
|
||||
public $timestamps = false;
|
||||
protected $guarded = [];
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->vendor_id;
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $vendor_id
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorId(int $vendor_id): Vendor
|
||||
public function setName(string $name): Vendor
|
||||
{
|
||||
$this->vendor_id = $vendor_id;
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getVendorName(): string
|
||||
public function getDescription(): string
|
||||
{
|
||||
return $this->vendor_name;
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $vendor_name
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorName(string $vendor_name): Vendor
|
||||
public function setDescription(string $description): Vendor
|
||||
{
|
||||
$this->vendor_name = $vendor_name;
|
||||
$this->description = $description;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getVendorDescription(): ?string
|
||||
public function getManufacturers(): string
|
||||
{
|
||||
return $this->vendor_description;
|
||||
return $this->manufacturers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $vendor_description
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorDescription(?string $vendor_description): Vendor
|
||||
public function setManufacturers(string $manufacturers): Vendor
|
||||
{
|
||||
$this->vendor_description = $vendor_description;
|
||||
$this->manufacturers = $manufacturers;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getVendorPosition(): ?string
|
||||
public function getTypes(): string
|
||||
{
|
||||
return $this->vendor_position;
|
||||
return $this->types;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $vendor_position
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorPosition(?string $vendor_position): Vendor
|
||||
public function setTypes(string $types): Vendor
|
||||
{
|
||||
$this->vendor_position = $vendor_position;
|
||||
$this->types = $types;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|null
|
||||
*/
|
||||
public function getVendorX(): ?float
|
||||
public function getClasses(): string
|
||||
{
|
||||
return $this->vendor_x;
|
||||
return $this->classes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float|null $vendor_x
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorX(?float $vendor_x): Vendor
|
||||
public function setClasses(string $classes): Vendor
|
||||
{
|
||||
$this->vendor_x = $vendor_x;
|
||||
$this->classes = $classes;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return float|null
|
||||
*/
|
||||
public function getVendorY(): ?float
|
||||
public function getFuelTypes(): string
|
||||
{
|
||||
return $this->vendor_y;
|
||||
return $this->fuelTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param float|null $vendor_y
|
||||
*
|
||||
* @return Vendor
|
||||
*/
|
||||
public function setVendorY(?float $vendor_y): Vendor
|
||||
public function setFuelTypes(string $fuel_types): Vendor
|
||||
{
|
||||
$this->vendor_y = $vendor_y;
|
||||
$this->fuelTypes = $fuel_types;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMaxPrice(): float
|
||||
{
|
||||
return $this->maxPrice;
|
||||
}
|
||||
|
||||
public function setMaxPrice(float $max_price): Vendor
|
||||
{
|
||||
$this->maxPrice = $max_price;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMinPrice(): float
|
||||
{
|
||||
return $this->minPrice;
|
||||
}
|
||||
|
||||
public function setMinPrice(float $min_price): Vendor
|
||||
{
|
||||
$this->minPrice = $min_price;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getX(): float
|
||||
{
|
||||
return $this->x;
|
||||
}
|
||||
|
||||
public function setX(float $x): Vendor
|
||||
{
|
||||
$this->x = $x;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getY(): float
|
||||
{
|
||||
return $this->y;
|
||||
}
|
||||
|
||||
public function setY(float $y): Vendor
|
||||
{
|
||||
$this->y = $y;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getZ(): float
|
||||
{
|
||||
return $this->z;
|
||||
}
|
||||
|
||||
public function setZ(float $z): Vendor
|
||||
{
|
||||
$this->z = $z;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
namespace App\Modules\Vehicles;
|
||||
|
||||
use App\Models\Vehicle;
|
||||
use Illuminate\Filesystem\FilesystemAdapter;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class VehicleScraper
|
||||
{
|
||||
private FilesystemAdapter $filesystem;
|
||||
|
||||
public function getVehicles()
|
||||
{
|
||||
$this->filesystem = Storage::disk('pubFiles');
|
||||
if (!$this->filesystem->exists('vehicles.json')) {
|
||||
dump('File does not exist');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$vehicles = json_decode($this->filesystem->get('vehicles.json'));
|
||||
foreach ($vehicles as $vehicle) {
|
||||
Vehicle::updateOrCreate(
|
||||
[
|
||||
'model' => $vehicle->model,
|
||||
],
|
||||
[
|
||||
'displayName' => $vehicle->displayName,
|
||||
'manufacturer' => $vehicle->manufacturer,
|
||||
'description' => $vehicle->description ?? '',
|
||||
'type' => $vehicle->type,
|
||||
'class' => $vehicle->class,
|
||||
'isSold' => $vehicle->isSold,
|
||||
'price' => $vehicle->price,
|
||||
'storage' => $vehicle->storage ?? -1,
|
||||
'fuelType' => $vehicle->fuelType,
|
||||
'seats' => $vehicle->seats,
|
||||
'hash' => $vehicle->hash,
|
||||
'signedHash' => $vehicle->signedHash,
|
||||
'hexHash' => $vehicle->hexHash,
|
||||
'speed' => $vehicle->stats->speed,
|
||||
'acceleration' => $vehicle->stats->acceleration,
|
||||
'braking' => $vehicle->stats->braking,
|
||||
'traction' => $vehicle->stats->traction,
|
||||
'length' => $vehicle->dimensions->length,
|
||||
'width' => $vehicle->dimensions->width,
|
||||
'height' => $vehicle->dimensions->height,
|
||||
'topSpeed' => $vehicle->topSpeed,
|
||||
'gears' => $vehicle->gears,
|
||||
'mass' => $vehicle->mass,
|
||||
'driveTrain' => $vehicle->driveTrain,
|
||||
'consumption' => $vehicle->consumption,
|
||||
'fuelTankVolume' => $vehicle->fuelTankVolume,
|
||||
'oilTankVolume' => $vehicle->oilTankVolume,
|
||||
'inspiredBy' => $vehicle->inspiredBy,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\DriveTrain;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Access\Response;
|
||||
|
||||
class DriveTrainPolicy
|
||||
{
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
*/
|
||||
public function viewAny(User $user): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, DriveTrain $driveTrain): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can create models.
|
||||
*/
|
||||
public function create(User $user): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, DriveTrain $driveTrain): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, DriveTrain $driveTrain): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can restore the model.
|
||||
*/
|
||||
public function restore(User $user, DriveTrain $driveTrain): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can permanently delete the model.
|
||||
*/
|
||||
public function forceDelete(User $user, DriveTrain $driveTrain): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\Brand;
|
||||
use App\Models\Manufacturer;
|
||||
use App\Models\User;
|
||||
use Illuminate\Auth\Access\Response;
|
||||
|
||||
class BrandPolicy
|
||||
class ManufacturerPolicy
|
||||
{
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
|
@ -19,7 +19,7 @@ class BrandPolicy
|
|||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, Brand $brand): bool
|
||||
public function view(User $user, Manufacturer $brand): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ class BrandPolicy
|
|||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, Brand $brand): bool
|
||||
public function update(User $user, Manufacturer $brand): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ class BrandPolicy
|
|||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, Brand $brand): bool
|
||||
public function delete(User $user, Manufacturer $brand): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ class BrandPolicy
|
|||
/**
|
||||
* Determine whether the user can restore the model.
|
||||
*/
|
||||
public function restore(User $user, Brand $brand): bool
|
||||
public function restore(User $user, Manufacturer $brand): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class BrandPolicy
|
|||
/**
|
||||
* Determine whether the user can permanently delete the model.
|
||||
*/
|
||||
public function forceDelete(User $user, Brand $brand): bool
|
||||
public function forceDelete(User $user, Manufacturer $brand): bool
|
||||
{
|
||||
//
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace App\Policies;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\VehicleType;
|
||||
use Illuminate\Auth\Access\Response;
|
||||
|
||||
class VehicleTypePolicy
|
||||
{
|
||||
/**
|
||||
* Determine whether the user can view any models.
|
||||
*/
|
||||
public function viewAny(User $user): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can view the model.
|
||||
*/
|
||||
public function view(User $user, VehicleType $vehicleType): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can create models.
|
||||
*/
|
||||
public function create(User $user): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can update the model.
|
||||
*/
|
||||
public function update(User $user, VehicleType $vehicleType): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can delete the model.
|
||||
*/
|
||||
public function delete(User $user, VehicleType $vehicleType): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can restore the model.
|
||||
*/
|
||||
public function restore(User $user, VehicleType $vehicleType): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine whether the user can permanently delete the model.
|
||||
*/
|
||||
public function forceDelete(User $user, VehicleType $vehicleType): bool
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -56,18 +56,17 @@ return [
|
|||
'throw' => false,
|
||||
],
|
||||
|
||||
'yugiohCards' => [
|
||||
'driver' => 'local',
|
||||
'root' =>'public/img/cards/yu-gi-oh/',
|
||||
'throw' => false,
|
||||
],
|
||||
|
||||
'vehicles' => [
|
||||
'driver' => 'local',
|
||||
'root' => 'public/img/vehicles/',
|
||||
'throw' => false,
|
||||
],
|
||||
|
||||
'pubFiles' => [
|
||||
'driver' => 'local',
|
||||
'root' => 'public/',
|
||||
'throw' => false,
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
@ -5,9 +5,9 @@ namespace Database\Factories;
|
|||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Brand>
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\DriveTrain>
|
||||
*/
|
||||
class BrandFactory extends Factory
|
||||
class DriveTrainFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* Define the model's default state.
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Manufacturer>
|
||||
*/
|
||||
class ManufacturerFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Factories;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
/**
|
||||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\VehicleType>
|
||||
*/
|
||||
class VehicleTypeFactory extends Factory
|
||||
{
|
||||
/**
|
||||
* Define the model's default state.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function definition(): array
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
|
@ -12,15 +12,35 @@ return new class extends Migration
|
|||
public function up(): void
|
||||
{
|
||||
Schema::create('vehicles', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('name');
|
||||
$table->string('image_path');
|
||||
$table->integer('storage');
|
||||
$table->integer('fuel_volume');
|
||||
$table->integer('seats');
|
||||
$table->double('price');
|
||||
$table->double('top_speed');
|
||||
$table->string('model')->primary();
|
||||
$table->string('displayName');
|
||||
$table->string('manufacturer');
|
||||
$table->text('description');
|
||||
$table->string('type')->default('unknown');
|
||||
$table->string('class')->default('unknown');
|
||||
$table->boolean('isSold')->default(false);
|
||||
$table->double('price')->default(-1);
|
||||
$table->integer('storage')->default(-1);
|
||||
$table->string('fuelType')->default('Unknown');
|
||||
$table->integer('seats')->default(-1);
|
||||
$table->string('hash')->unique();
|
||||
$table->string('signedHash')->nullable()->default(null);
|
||||
$table->string('hexHash')->nullable()->default(null);
|
||||
$table->double('speed')->default(-1);
|
||||
$table->double('acceleration')->default(-1);
|
||||
$table->double('braking')->default(-1);
|
||||
$table->double('traction')->default(-1);
|
||||
$table->double('length')->default(-1);
|
||||
$table->double('width')->default(-1);
|
||||
$table->double('height')->default(-1);
|
||||
$table->double('topSpeed')->default(-1);
|
||||
$table->integer('gears')->default(-1);
|
||||
$table->integer('mass')->default(-1);
|
||||
$table->string('driveTrain');
|
||||
$table->double('consumption')->default(-1);
|
||||
$table->integer('fuelTankVolume')->default(-1);
|
||||
$table->integer('oilTankVolume')->default(-1);
|
||||
$table->string('inspiredBy')->default('unknown');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -12,13 +12,17 @@ return new class extends Migration
|
|||
public function up(): void
|
||||
{
|
||||
Schema::create('vendors', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('name');
|
||||
$table->text('description');
|
||||
$table->string('position');
|
||||
$table->double('x');
|
||||
$table->double('y');
|
||||
$table->string('name')->primary();
|
||||
$table->text('description')->default('');
|
||||
$table->string('manufacturers')->default('');
|
||||
$table->string('types')->default('');
|
||||
$table->string('classes')->default('');
|
||||
$table->string('fuel_types')->default('');
|
||||
$table->double('max_price')->default(0);
|
||||
$table->double('min_price')->default(0);
|
||||
$table->double('x')->default(0);
|
||||
$table->double('y')->default(0);
|
||||
$table->double('z')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -11,11 +11,9 @@ return new class extends Migration
|
|||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('brands', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('name');
|
||||
$table->text('description');
|
||||
Schema::create('manufacturers', function (Blueprint $table) {
|
||||
$table->string('name')->primary();
|
||||
$table->text('displayName');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -24,6 +22,6 @@ return new class extends Migration
|
|||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('brands');
|
||||
Schema::dropIfExists('manufacturers');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -12,11 +12,8 @@ return new class extends Migration
|
|||
public function up(): void
|
||||
{
|
||||
Schema::create('fuel_types', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('name');
|
||||
$table->text('description');
|
||||
$table->double('price');
|
||||
$table->string('name')->primary();
|
||||
$table->double('price')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -11,11 +11,8 @@ return new class extends Migration
|
|||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('vehicle_classes', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('name');
|
||||
$table->text('description');
|
||||
Schema::create('classes', function (Blueprint $table) {
|
||||
$table->string('name')->primary();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -24,6 +21,6 @@ return new class extends Migration
|
|||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('vehicle_classes');
|
||||
Schema::dropIfExists('classes');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->foreignId('vehicle_class_id')->references('id')->on('vehicle_classes');
|
||||
$table->foreignId('fuel_type_id')->references('id')->on('fuel_types');
|
||||
$table->foreignId('brand_id')->references('id')->on('brands');
|
||||
$table->foreignId('vendor_id')->references('id')->on('vendors');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->dropConstrainedForeignId('vehicle_class_id');
|
||||
$table->dropConstrainedForeignId('fuel_type_id');
|
||||
$table->dropConstrainedForeignId('brand_id');
|
||||
$table->dropConstrainedForeignId('vendor_id');
|
||||
});
|
||||
}
|
||||
};
|
|
@ -1,52 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('brands', function (Blueprint $table) {
|
||||
$table->string('name')->unique()->change();
|
||||
$table->text('description')->nullable(true)->change();
|
||||
});
|
||||
|
||||
Schema::table('fuel_types', function (Blueprint $table) {
|
||||
$table->string('name')->unique()->change();
|
||||
$table->text('description')->nullable(true)->change();
|
||||
$table->double('price')->nullable(true)->change();
|
||||
});
|
||||
|
||||
Schema::table('vehicle_classes', function (Blueprint $table) {
|
||||
$table->string('name')->unique()->change();
|
||||
$table->text('description')->nullable(true)->change();
|
||||
});
|
||||
|
||||
Schema::table('vendors', function (Blueprint $table) {
|
||||
$table->string('name')->unique()->change();
|
||||
$table->text('description')->nullable(true)->change();
|
||||
$table->string('position')->nullable(true)->change();
|
||||
$table->double('x')->nullable(true)->change();
|
||||
$table->double('y')->nullable(true)->change();
|
||||
});
|
||||
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->string('image_path')->nullable(true)->change();
|
||||
$table->double('price')->nullable(true)->change();
|
||||
$table->double('top_speed')->nullable(true)->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
|
@ -1,97 +0,0 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->renameColumn('id', 'vehicle_id');
|
||||
$table->renameColumn('name', 'vehicle_name');
|
||||
$table->dropColumn('image_path');
|
||||
$table->renameColumn('storage', 'vehicle_storage');
|
||||
$table->renameColumn('fuel_volume', 'vehicle_fuel_volume');
|
||||
$table->renameColumn('seats', 'vehicle_seats');
|
||||
$table->renameColumn('price', 'vehicle_price');
|
||||
$table->renameColumn('top_speed', 'vehicle_top_speed');
|
||||
});
|
||||
|
||||
Schema::table('vendors', function (Blueprint $table) {
|
||||
$table->renameColumn('id', 'vendor_id');
|
||||
$table->renameColumn('name', 'vendor_name');
|
||||
$table->renameColumn('description', 'vendor_description');
|
||||
$table->renameColumn('position', 'vendor_position');
|
||||
$table->renameColumn('x', 'vendor_x');
|
||||
$table->renameColumn('y', 'vendor_y');
|
||||
});
|
||||
|
||||
Schema::table('brands', function (Blueprint $table) {
|
||||
$table->renameColumn('id', 'brand_id');
|
||||
$table->renameColumn('name', 'brand_name');
|
||||
$table->renameColumn('description', 'brand_description');
|
||||
});
|
||||
|
||||
Schema::table('vehicle_classes', function (Blueprint $table) {
|
||||
$table->renameColumn('id', 'vehicle_class_id');
|
||||
$table->renameColumn('name', 'vehicle_class_name');
|
||||
$table->renameColumn('description', 'vehicle_class_description');
|
||||
});
|
||||
|
||||
Schema::table('fuel_types', function (Blueprint $table) {
|
||||
$table->renameColumn('id', 'fuel_type_id');
|
||||
$table->renameColumn('name', 'fuel_type_name');
|
||||
$table->renameColumn('description', 'fuel_type_description');
|
||||
$table->renameColumn('price', 'fuel_type_price');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->renameColumn('vehicle_id', 'id');
|
||||
$table->string('image_path')->nullable(true);
|
||||
$table->renameColumn('vehicle_storage', 'storage');
|
||||
$table->renameColumn('vehicle_fuel_volume', 'fuel_volume');
|
||||
$table->renameColumn('vehicle_seats', 'seats');
|
||||
$table->renameColumn('vehicle_price', 'price');
|
||||
$table->renameColumn('vehicle_top_speed', 'top_speed');
|
||||
});
|
||||
|
||||
Schema::table('vendors', function (Blueprint $table) {
|
||||
$table->renameColumn('vendor_id', 'id');
|
||||
$table->renameColumn('vendor_name', 'name');
|
||||
$table->renameColumn('vendor_description', 'description');
|
||||
$table->renameColumn('vendor_position', 'position');
|
||||
$table->renameColumn('vendor_x', 'x');
|
||||
$table->renameColumn('vendor_y', 'y');
|
||||
});
|
||||
|
||||
Schema::table('brands', function (Blueprint $table) {
|
||||
$table->renameColumn('brand_id', 'id');
|
||||
$table->renameColumn('brand_name', 'name');
|
||||
$table->renameColumn('brand_description', 'description');
|
||||
});
|
||||
|
||||
Schema::table('vehicle_classes', function (Blueprint $table) {
|
||||
$table->renameColumn('vehicle_class_id', 'id');
|
||||
$table->renameColumn('vehicle_class_name', 'name');
|
||||
$table->renameColumn('vehicle_class_description', 'description');
|
||||
});
|
||||
|
||||
Schema::table('fuel_types', function (Blueprint $table) {
|
||||
$table->renameColumn('fuel_type_id', 'id');
|
||||
$table->renameColumn('fuel_type_name', 'name');
|
||||
$table->renameColumn('fuel_type_description', 'description');
|
||||
$table->renameColumn('fuel_type_price', 'price');
|
||||
});
|
||||
}
|
||||
};
|
|
@ -12,10 +12,10 @@ return new class extends Migration
|
|||
public function up(): void
|
||||
{
|
||||
Schema::create('keybinds', function (Blueprint $table) {
|
||||
$table->id('keybind_id');
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('keybind_keys');
|
||||
$table->text('keybind_description');
|
||||
$table->string('keys');
|
||||
$table->text('description');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('drive_trains', function (Blueprint $table) {
|
||||
$table->string('name')->primary();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('drive_trains');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('types', function (Blueprint $table) {
|
||||
$table->string('name')->primary();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('types');
|
||||
}
|
||||
};
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->foreign('manufacturer')->references('name')->on('manufacturers');
|
||||
$table->foreign('type')->references('name')->on('types');
|
||||
$table->foreign('class')->references('name')->on('classes');
|
||||
$table->foreign('fuelType')->references('name')->on('fuel_types');
|
||||
$table->foreign('driveTrain')->references('name')->on('drive_trains');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('vehicles', function (Blueprint $table) {
|
||||
$table->dropForeign('manufacturer');
|
||||
$table->dropForeign('type');
|
||||
$table->dropForeign('class');
|
||||
$table->dropForeign('fuelType');
|
||||
$table->dropForeign('driveTrain');
|
||||
});
|
||||
}
|
||||
};
|
|
@ -5,7 +5,7 @@ namespace Database\Seeders;
|
|||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class BrandSeeder extends Seeder
|
||||
class DriveTrainSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class ManufacturerSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class VehicleTypeSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
@ -8228,7 +8228,7 @@ readers do not read off random characters that represent icons */
|
|||
}
|
||||
|
||||
/*!
|
||||
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
@ -8242,7 +8242,7 @@ readers do not read off random characters that represent icons */
|
|||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2?b041b1fa4fe241b234458a565482c4c6) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf?50701fbb8177c2dde530fc83add388ef) format("truetype");
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2?3223dc79c1adee56370b19dca985aa17) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf?d87474231f419288480274125e0e9767) format("truetype");
|
||||
}
|
||||
.far,
|
||||
.fa-regular {
|
||||
|
@ -8250,7 +8250,7 @@ readers do not read off random characters that represent icons */
|
|||
}
|
||||
|
||||
/*!
|
||||
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
@ -8264,7 +8264,7 @@ readers do not read off random characters that represent icons */
|
|||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: block;
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2?b6879d41b0852f01ed5b0216c4c72e11) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf?d75e3fd1eb12e9bd66550e304bdd1ec7) format("truetype");
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2?bb975c966c37455a1bc3c7e29971386c) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf?4a2cd718d7031b732e7610fba99ecf74) format("truetype");
|
||||
}
|
||||
.fas,
|
||||
.fa-solid {
|
||||
|
@ -8272,7 +8272,7 @@ readers do not read off random characters that represent icons */
|
|||
}
|
||||
|
||||
/*!
|
||||
* Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com
|
||||
* Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2023 Fonticons, Inc.
|
||||
*/
|
||||
|
@ -8286,7 +8286,7 @@ readers do not read off random characters that represent icons */
|
|||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2?878f31251d960bd6266f20ccdc4d738f) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf?016b4a6cdced82ab3aa1907e3855cfd2) format("truetype");
|
||||
src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2?e033a13ee751afc1860c3bc31ede1065) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf?150de8eaa454d669c405d810c8dbbf14) format("truetype");
|
||||
}
|
||||
.fab,
|
||||
.fa-brands {
|
||||
|
@ -8513,10 +8513,6 @@ readers do not read off random characters that represent icons */
|
|||
content: "\f282";
|
||||
}
|
||||
|
||||
.fa-threads:before {
|
||||
content: "\e618";
|
||||
}
|
||||
|
||||
.fa-napster:before {
|
||||
content: "\f3d2";
|
||||
}
|
||||
|
@ -8741,10 +8737,6 @@ readers do not read off random characters that represent icons */
|
|||
content: "\f28a";
|
||||
}
|
||||
|
||||
.fa-debian:before {
|
||||
content: "\e60b";
|
||||
}
|
||||
|
||||
.fa-openid:before {
|
||||
content: "\f19b";
|
||||
}
|
||||
|
@ -9065,10 +9057,6 @@ readers do not read off random characters that represent icons */
|
|||
content: "\f612";
|
||||
}
|
||||
|
||||
.fa-square-threads:before {
|
||||
content: "\e619";
|
||||
}
|
||||
|
||||
.fa-hackerrank:before {
|
||||
content: "\f5f7";
|
||||
}
|
||||
|
@ -9525,10 +9513,6 @@ readers do not read off random characters that represent icons */
|
|||
content: "\f39d";
|
||||
}
|
||||
|
||||
.fa-x-twitter:before {
|
||||
content: "\e61b";
|
||||
}
|
||||
|
||||
.fa-cotton-bureau:before {
|
||||
content: "\f89e";
|
||||
}
|
||||
|
@ -10189,10 +10173,6 @@ readers do not read off random characters that represent icons */
|
|||
content: "\f2c4";
|
||||
}
|
||||
|
||||
.fa-square-x-twitter:before {
|
||||
content: "\e61a";
|
||||
}
|
||||
|
||||
.fa-reacteurope:before {
|
||||
content: "\f75d";
|
||||
}
|
||||
|
@ -10976,7 +10956,7 @@ readers do not read off random characters that represent icons */
|
|||
border-color: rgb(63 63 70 / var(--tw-bg-opacity))
|
||||
}
|
||||
/*
|
||||
! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com
|
||||
! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -11146,8 +11126,6 @@ optgroup,
|
|||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-feature-settings: inherit; /* 1 */
|
||||
font-variation-settings: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
font-weight: inherit; /* 1 */
|
||||
line-height: inherit; /* 1 */
|
||||
|
@ -11285,14 +11263,6 @@ menu {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Reset default styling for dialogs.
|
||||
*/
|
||||
|
||||
dialog {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Prevent resizing textareas horizontally by default.
|
||||
*/
|
||||
|
@ -11368,7 +11338,7 @@ video {
|
|||
display: none;
|
||||
}
|
||||
|
||||
[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select{
|
||||
[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select{
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
|
@ -11385,7 +11355,7 @@ video {
|
|||
--tw-shadow: 0 0 #0000;
|
||||
}
|
||||
|
||||
[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus{
|
||||
[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus{
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: 2px;
|
||||
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
|
||||
|
@ -11414,11 +11384,6 @@ input::placeholder,textarea::placeholder{
|
|||
|
||||
::-webkit-date-and-time-value{
|
||||
min-height: 1.5em;
|
||||
text-align: inherit;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit{
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{
|
||||
|
@ -11436,7 +11401,7 @@ select{
|
|||
print-color-adjust: exact;
|
||||
}
|
||||
|
||||
[multiple],[size]:where(select:not([size="1"])){
|
||||
[multiple]{
|
||||
background-image: initial;
|
||||
background-position: initial;
|
||||
background-repeat: unset;
|
||||
|
@ -13336,6 +13301,18 @@ html{
|
|||
.select[multiple]{
|
||||
height: auto;
|
||||
}
|
||||
.stats{
|
||||
display: inline-grid;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: hsl(var(--b1) / var(--tw-bg-opacity));
|
||||
--tw-text-opacity: 1;
|
||||
color: hsl(var(--bc) / var(--tw-text-opacity));
|
||||
border-radius: var(--rounded-box, 1rem);
|
||||
}
|
||||
:where(.stats){
|
||||
grid-auto-flow: column;
|
||||
overflow-x: auto;
|
||||
}
|
||||
.tab{
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
|
@ -13609,6 +13586,13 @@ html{
|
|||
outline: 2px solid hsla(var(--bc) / 0.2);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.input-error{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: hsl(var(--er) / var(--tw-border-opacity));
|
||||
}
|
||||
.input-error:focus{
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
.input-disabled,
|
||||
.input[disabled]{
|
||||
cursor: not-allowed;
|
||||
|
@ -13888,6 +13872,14 @@ html{
|
|||
[dir="rtl"] .select{
|
||||
background-position: calc(0% + 12px) calc(1px + 50%), calc(0% + 16px) calc(1px + 50%);
|
||||
}
|
||||
:where(.stats) > :not([hidden]) ~ :not([hidden]){
|
||||
--tw-divide-x-reverse: 0;
|
||||
border-right-width: calc(1px * var(--tw-divide-x-reverse));
|
||||
border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
|
||||
--tw-divide-y-reverse: 0;
|
||||
border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
|
||||
border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
|
||||
}
|
||||
.tab:hover{
|
||||
--tw-text-opacity: 1;
|
||||
}
|
||||
|
@ -14101,6 +14093,9 @@ html{
|
|||
white-space: nowrap;
|
||||
border-width: 0;
|
||||
}
|
||||
.visible{
|
||||
visibility: visible;
|
||||
}
|
||||
.fixed{
|
||||
position: fixed;
|
||||
}
|
||||
|
@ -14145,6 +14140,10 @@ html{
|
|||
margin-left: 0.5rem;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.mx-8{
|
||||
margin-left: 2rem;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
.mx-auto{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
@ -14157,6 +14156,10 @@ html{
|
|||
margin-top: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.my-5{
|
||||
margin-top: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.my-\[1rem\]{
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
|
@ -14171,9 +14174,15 @@ html{
|
|||
.-ml-px{
|
||||
margin-left: -1px;
|
||||
}
|
||||
.-mt-px{
|
||||
margin-top: -1px;
|
||||
}
|
||||
.mb-0{
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.mb-1{
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
.mb-2{
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
@ -14192,12 +14201,21 @@ html{
|
|||
.mb-8{
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.ml-1{
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.ml-12{
|
||||
margin-left: 3rem;
|
||||
}
|
||||
.ml-2{
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.ml-3{
|
||||
margin-left: 0.75rem;
|
||||
}
|
||||
.ml-4{
|
||||
margin-left: 1rem;
|
||||
}
|
||||
.ml-\[1rem\]{
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
@ -14210,12 +14228,18 @@ html{
|
|||
.ml-\[4rem\]{
|
||||
margin-left: 4rem;
|
||||
}
|
||||
.mr-1{
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
.mr-2{
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.mr-3{
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
.mr-4{
|
||||
margin-right: 1rem;
|
||||
}
|
||||
.mr-\[\.5rem\]{
|
||||
margin-right: .5rem;
|
||||
}
|
||||
|
@ -14264,15 +14288,36 @@ html{
|
|||
.hidden{
|
||||
display: none;
|
||||
}
|
||||
.h-12{
|
||||
height: 3rem;
|
||||
}
|
||||
.h-14{
|
||||
height: 3.5rem;
|
||||
}
|
||||
.h-16{
|
||||
height: 4rem;
|
||||
}
|
||||
.h-4{
|
||||
height: 1rem;
|
||||
}
|
||||
.h-5{
|
||||
height: 1.25rem;
|
||||
}
|
||||
.h-6{
|
||||
height: 1.5rem;
|
||||
}
|
||||
.h-7{
|
||||
height: 1.75rem;
|
||||
}
|
||||
.h-8{
|
||||
height: 2rem;
|
||||
}
|
||||
.h-\[150px\]{
|
||||
height: 150px;
|
||||
}
|
||||
.h-\[220px\]{
|
||||
height: 220px;
|
||||
}
|
||||
.h-\[2rem\]{
|
||||
height: 2rem;
|
||||
}
|
||||
|
@ -14315,6 +14360,21 @@ html{
|
|||
.max-h-\[90vh\]{
|
||||
max-height: 90vh;
|
||||
}
|
||||
.min-h-\[15rem\]{
|
||||
min-height: 15rem;
|
||||
}
|
||||
.min-h-\[25rem\]{
|
||||
min-height: 25rem;
|
||||
}
|
||||
.min-h-\[30rem\]{
|
||||
min-height: 30rem;
|
||||
}
|
||||
.min-h-\[4\.5rem\]{
|
||||
min-height: 4.5rem;
|
||||
}
|
||||
.min-h-\[40\.2rem\]{
|
||||
min-height: 40.2rem;
|
||||
}
|
||||
.min-h-\[40rem\]{
|
||||
min-height: 40rem;
|
||||
}
|
||||
|
@ -14324,6 +14384,9 @@ html{
|
|||
.min-h-screen{
|
||||
min-height: 100vh;
|
||||
}
|
||||
.w-1\/5{
|
||||
width: 20%;
|
||||
}
|
||||
.w-14{
|
||||
width: 3.5rem;
|
||||
}
|
||||
|
@ -14339,6 +14402,12 @@ html{
|
|||
.w-60{
|
||||
width: 15rem;
|
||||
}
|
||||
.w-8{
|
||||
width: 2rem;
|
||||
}
|
||||
.w-\[1\.5rem\]{
|
||||
width: 1.5rem;
|
||||
}
|
||||
.w-\[11rem\]{
|
||||
width: 11rem;
|
||||
}
|
||||
|
@ -14375,12 +14444,27 @@ html{
|
|||
.w-\[5\.2rem\]{
|
||||
width: 5.2rem;
|
||||
}
|
||||
.w-\[560px\]{
|
||||
width: 560px;
|
||||
}
|
||||
.w-\[6\.5rem\]{
|
||||
width: 6.5rem;
|
||||
}
|
||||
.w-auto{
|
||||
width: auto;
|
||||
}
|
||||
.w-full{
|
||||
width: 100%;
|
||||
}
|
||||
.min-w-\[1\.5rem\]{
|
||||
min-width: 1.5rem;
|
||||
}
|
||||
.min-w-\[10rem\]{
|
||||
min-width: 10rem;
|
||||
}
|
||||
.min-w-\[20rem\]{
|
||||
min-width: 20rem;
|
||||
}
|
||||
.min-w-\[6rem\]{
|
||||
min-width: 6rem;
|
||||
}
|
||||
|
@ -14394,12 +14478,21 @@ html{
|
|||
min-width: -moz-max-content;
|
||||
min-width: max-content;
|
||||
}
|
||||
.max-w-6xl{
|
||||
max-width: 72rem;
|
||||
}
|
||||
.max-w-7xl{
|
||||
max-width: 80rem;
|
||||
}
|
||||
.max-w-\[25rem\]{
|
||||
max-width: 25rem;
|
||||
}
|
||||
.max-w-\[2rem\]{
|
||||
max-width: 2rem;
|
||||
}
|
||||
.max-w-\[32rem\]{
|
||||
max-width: 32rem;
|
||||
}
|
||||
.max-w-\[40rem\]{
|
||||
max-width: 40rem;
|
||||
}
|
||||
|
@ -14422,6 +14515,9 @@ html{
|
|||
.flex-1{
|
||||
flex: 1 1 0%;
|
||||
}
|
||||
.flex-shrink-0{
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.grow{
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
@ -14464,6 +14560,9 @@ html{
|
|||
.cursor-pointer{
|
||||
cursor: pointer;
|
||||
}
|
||||
.grid-cols-1{
|
||||
grid-template-columns: repeat(1, minmax(0, 1fr));
|
||||
}
|
||||
.grid-cols-2{
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
@ -14568,12 +14667,18 @@ html{
|
|||
.overflow-y-hidden{
|
||||
overflow-y: hidden;
|
||||
}
|
||||
.whitespace-nowrap{
|
||||
white-space: nowrap;
|
||||
}
|
||||
.rounded{
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.rounded-\[1rem\]{
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.rounded-full{
|
||||
border-radius: 9999px;
|
||||
}
|
||||
.rounded-lg{
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
|
@ -14613,6 +14718,10 @@ html{
|
|||
border-top-right-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
.rounded-t-\[1rem\]{
|
||||
border-top-left-radius: 1rem;
|
||||
border-top-right-radius: 1rem;
|
||||
}
|
||||
.border{
|
||||
border-width: 1px;
|
||||
}
|
||||
|
@ -14622,6 +14731,9 @@ html{
|
|||
.border-b-2{
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
.border-b-4{
|
||||
border-bottom-width: 4px;
|
||||
}
|
||||
.border-l{
|
||||
border-left-width: 1px;
|
||||
}
|
||||
|
@ -14634,28 +14746,39 @@ html{
|
|||
.border-t{
|
||||
border-top-width: 1px;
|
||||
}
|
||||
.border-none{
|
||||
border-style: none;
|
||||
}
|
||||
.border-gray-200{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(229 231 235 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-300{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(209 213 219 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-400{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(156 163 175 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-indigo-400{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(129 140 248 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-transparent{
|
||||
border-color: transparent;
|
||||
}
|
||||
.border-cyan-600{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(8 145 178 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-red-400{
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(248 113 113 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-transparent{
|
||||
border-color: transparent;
|
||||
}
|
||||
.border-opacity-40{
|
||||
--tw-border-opacity: 0.4;
|
||||
}
|
||||
.bg-gray-100{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-gray-500{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(107 114 128 / var(--tw-bg-opacity));
|
||||
|
@ -14664,6 +14787,10 @@ html{
|
|||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(238 242 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-red-400{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 113 113 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-red-500{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(239 68 68 / var(--tw-bg-opacity));
|
||||
|
@ -14687,13 +14814,12 @@ html{
|
|||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(39 39 42 / var(--tw-bg-opacity));
|
||||
}
|
||||
.bg-cyan-600{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(8 145 178 / var(--tw-bg-opacity));
|
||||
.fill-red-400{
|
||||
fill: #f87171;
|
||||
}
|
||||
.bg-red-400{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 113 113 / var(--tw-bg-opacity));
|
||||
.object-cover{
|
||||
-o-object-fit: cover;
|
||||
object-fit: cover;
|
||||
}
|
||||
.p-2{
|
||||
padding: 0.5rem;
|
||||
|
@ -14727,6 +14853,10 @@ html{
|
|||
padding-left: 1.25rem;
|
||||
padding-right: 1.25rem;
|
||||
}
|
||||
.px-6{
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
.px-8{
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
|
@ -14751,6 +14881,10 @@ html{
|
|||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
}
|
||||
.py-4{
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
.py-6{
|
||||
padding-top: 1.5rem;
|
||||
padding-bottom: 1.5rem;
|
||||
|
@ -14758,6 +14892,9 @@ html{
|
|||
.pb-4{
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
.pb-6{
|
||||
padding-bottom: 1.5rem;
|
||||
}
|
||||
.pl-3{
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
|
@ -14770,6 +14907,9 @@ html{
|
|||
.pt-2{
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
.pt-8{
|
||||
padding-top: 2rem;
|
||||
}
|
||||
.text-left{
|
||||
text-align: left;
|
||||
}
|
||||
|
@ -14782,6 +14922,10 @@ html{
|
|||
.align-middle{
|
||||
vertical-align: middle;
|
||||
}
|
||||
.text-2xl{
|
||||
font-size: 1.5rem;
|
||||
line-height: 2rem;
|
||||
}
|
||||
.text-3xl{
|
||||
font-size: 1.875rem;
|
||||
line-height: 2.25rem;
|
||||
|
@ -14802,6 +14946,10 @@ html{
|
|||
font-size: 0.875rem;
|
||||
line-height: 1.25rem;
|
||||
}
|
||||
.text-xl{
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
.text-xs{
|
||||
font-size: 0.75rem;
|
||||
line-height: 1rem;
|
||||
|
@ -14830,6 +14978,12 @@ html{
|
|||
.leading-5{
|
||||
line-height: 1.25rem;
|
||||
}
|
||||
.leading-7{
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
.tracking-wider{
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
.tracking-widest{
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
@ -14837,6 +14991,10 @@ html{
|
|||
--tw-text-opacity: 1;
|
||||
color: rgb(229 231 235 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-300{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(209 213 219 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-gray-400{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(156 163 175 / var(--tw-text-opacity));
|
||||
|
@ -14873,6 +15031,10 @@ html{
|
|||
--tw-text-opacity: 1;
|
||||
color: rgb(254 202 202 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-red-400{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(248 113 113 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-red-600{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(220 38 38 / var(--tw-text-opacity));
|
||||
|
@ -14885,14 +15047,6 @@ html{
|
|||
--tw-text-opacity: 1;
|
||||
color: rgb(161 161 170 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-cyan-600{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(8 145 178 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-red-400{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(248 113 113 / var(--tw-text-opacity));
|
||||
}
|
||||
.underline{
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
|
@ -14973,6 +15127,11 @@ html{
|
|||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
.transition-colors{
|
||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
.duration-150{
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
|
@ -15038,9 +15197,6 @@ html{
|
|||
.scrollbar-track-zinc-700{
|
||||
--scrollbar-track: #3f3f46 !important;
|
||||
}
|
||||
.scrollbar-thumb-cyan-600{
|
||||
--scrollbar-thumb: #0891b2 !important;
|
||||
}
|
||||
.scrollbar-thumb-red-400{
|
||||
--scrollbar-thumb: #f87171 !important;
|
||||
}
|
||||
|
@ -15084,6 +15240,10 @@ html{
|
|||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(153 27 27 / var(--tw-bg-opacity));
|
||||
}
|
||||
.hover\:bg-zinc-600:hover{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(82 82 91 / var(--tw-bg-opacity));
|
||||
}
|
||||
.hover\:bg-zinc-700:hover{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(63 63 70 / var(--tw-bg-opacity));
|
||||
|
@ -15112,6 +15272,10 @@ html{
|
|||
--tw-text-opacity: 1;
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity));
|
||||
}
|
||||
.hover\:text-red-400:hover{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(248 113 113 / var(--tw-text-opacity));
|
||||
}
|
||||
.hover\:underline:hover{
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
|
@ -15236,6 +15400,10 @@ html{
|
|||
--tw-text-opacity: 1;
|
||||
color: rgb(55 65 81 / var(--tw-text-opacity));
|
||||
}
|
||||
.active\:text-red-400:active{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(248 113 113 / var(--tw-text-opacity));
|
||||
}
|
||||
.active\:text-zinc-700:active{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(63 63 70 / var(--tw-text-opacity));
|
||||
|
@ -15245,6 +15413,11 @@ html{
|
|||
}
|
||||
@media (prefers-color-scheme: dark){
|
||||
|
||||
.dark\:bg-gray-900{
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(17 24 39 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:text-gray-400{
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(156 163 175 / var(--tw-text-opacity));
|
||||
|
@ -15331,6 +15504,10 @@ html{
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
.sm\:justify-start{
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.sm\:justify-between{
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
@ -15352,6 +15529,10 @@ html{
|
|||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
|
||||
.sm\:pt-0{
|
||||
padding-top: 0px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px){
|
||||
|
||||
|
|
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 6.4 KiB |
|
@ -0,0 +1,20 @@
|
|||
<link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="60x60" href="apple-touch-icon-60x60.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76.png" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152.png" />
|
||||
<link rel="icon" type="image/png" href="favicon-196x196.png" sizes="196x196" />
|
||||
<link rel="icon" type="image/png" href="favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
|
||||
<link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16" />
|
||||
<link rel="icon" type="image/png" href="favicon-128.png" sizes="128x128" />
|
||||
<meta name="application-name" content=" "/>
|
||||
<meta name="msapplication-TileColor" content="#FFFFFF" />
|
||||
<meta name="msapplication-TileImage" content="mstile-144x144.png" />
|
||||
<meta name="msapplication-square70x70logo" content="mstile-70x70.png" />
|
||||
<meta name="msapplication-square150x150logo" content="mstile-150x150.png" />
|
||||
<meta name="msapplication-wide310x150logo" content="mstile-310x150.png" />
|
||||
<meta name="msapplication-square310x310logo" content="mstile-310x310.png" />
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 622 B |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 144 KiB |
After Width: | Height: | Size: 377 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |