'admin@carrepairs.com'], [ 'name' => 'Shop Manager', 'email_verified_at' => now(), 'password' => bcrypt('password'), ] ); // Create additional users User::factory(3)->create(); // Create technicians Technician::factory(8)->create(); // Create customers with vehicles Customer::factory(50) ->has(Vehicle::factory()->count(rand(1, 3))) ->create(); // Create common parts $commonParts = [ ['name' => 'Engine Oil Filter', 'part_number' => 'OF-001', 'category' => 'engine', 'cost_price' => 12.50, 'sell_price' => 18.99], ['name' => 'Air Filter', 'part_number' => 'AF-001', 'category' => 'engine', 'cost_price' => 8.75, 'sell_price' => 14.99], ['name' => 'Brake Pads - Front', 'part_number' => 'BP-F001', 'category' => 'brakes', 'cost_price' => 45.00, 'sell_price' => 79.99], ['name' => 'Brake Pads - Rear', 'part_number' => 'BP-R001', 'category' => 'brakes', 'cost_price' => 38.00, 'sell_price' => 69.99], ['name' => 'Spark Plugs (Set of 4)', 'part_number' => 'SP-001', 'category' => 'engine', 'cost_price' => 25.00, 'sell_price' => 44.99], ['name' => 'Cabin Air Filter', 'part_number' => 'CAF-001', 'category' => 'hvac', 'cost_price' => 15.00, 'sell_price' => 24.99], ['name' => 'Windshield Wipers', 'part_number' => 'WW-001', 'category' => 'exterior', 'cost_price' => 12.00, 'sell_price' => 19.99], ['name' => 'Coolant (1 Gallon)', 'part_number' => 'CL-001', 'category' => 'cooling', 'cost_price' => 8.50, 'sell_price' => 16.99], ['name' => 'Transmission Fluid', 'part_number' => 'TF-001', 'category' => 'transmission', 'cost_price' => 22.00, 'sell_price' => 34.99], ['name' => 'Battery', 'part_number' => 'BAT-001', 'category' => 'electrical', 'cost_price' => 85.00, 'sell_price' => 149.99], ]; foreach ($commonParts as $part) { Part::firstOrCreate( ['part_number' => $part['part_number']], array_merge($part, [ 'description' => "High quality {$part['name']} for various vehicle makes and models", 'manufacturer' => 'OEM', 'quantity_on_hand' => rand(10, 100), 'minimum_stock_level' => 5, 'location' => 'A' . rand(1, 5) . '-' . rand(1, 10), 'status' => 'active', ]) ); } // Create some service orders with realistic data $vehicles = Vehicle::all(); $technicians = Technician::where('status', 'active')->get(); foreach ($vehicles->random(min(30, $vehicles->count())) as $vehicle) { ServiceOrder::factory()->create([ 'customer_id' => $vehicle->customer_id, 'vehicle_id' => $vehicle->id, 'assigned_technician_id' => $technicians->random()->id, 'status' => collect(['pending', 'in_progress', 'completed', 'waiting_parts'])->random(), ]); } $this->command->info('Database seeded successfully with car repair shop data!'); } }