*/ class VehicleFactory extends Factory { /** * Define the model's default state. * * @return array */ public function definition(): array { $makes = ['Toyota', 'Honda', 'Ford', 'Chevrolet', 'Nissan', 'BMW', 'Mercedes-Benz', 'Audi', 'Volkswagen', 'Hyundai']; $models = [ 'Toyota' => ['Camry', 'Corolla', 'RAV4', 'Highlander', 'Prius'], 'Honda' => ['Civic', 'Accord', 'CR-V', 'Pilot', 'Odyssey'], 'Ford' => ['F-150', 'Explorer', 'Focus', 'Mustang', 'Edge'], 'Chevrolet' => ['Silverado', 'Tahoe', 'Malibu', 'Equinox', 'Corvette'], 'Nissan' => ['Altima', 'Sentra', 'Rogue', 'Pathfinder', '370Z'], ]; $make = $this->faker->randomElement($makes); $model = $this->faker->randomElement($models[$make] ?? ['Sedan', 'SUV', 'Coupe']); return [ 'customer_id' => Customer::factory(), 'vin' => strtoupper($this->faker->bothify('?????????########')), 'make' => $make, 'model' => $model, 'year' => $this->faker->numberBetween(2010, 2024), 'color' => $this->faker->colorName(), 'license_plate' => $this->faker->optional(0.8)->bothify('???-####'), 'engine_type' => $this->faker->randomElement(['4-Cylinder', 'V6', 'V8', 'Hybrid', 'Electric']), 'transmission' => $this->faker->randomElement(['Manual', 'Automatic', 'CVT']), 'mileage' => $this->faker->numberBetween(5000, 150000), 'notes' => $this->faker->optional(0.3)->paragraph(), 'status' => $this->faker->randomElement(['active', 'inactive']), 'last_service_date' => $this->faker->optional(0.7)->dateTimeBetween('-1 year', 'now'), ]; } }