Загрузка данных


<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use App\Models\Role;
use App\Models\User;
use App\Models\Car;
use App\Models\Service;
use App\Models\Part;
use App\Models\RepairOrder;

class DatabaseSeeder extends Seeder
{
    public function run(): void
    {
        // 1. Роли
        $userRole = Role::create(['name' => 'user']);
        $adminRole = Role::create(['name' => 'admin']);

        // 2. Услуги
        $servicesList = [
            ['name' => 'Замена масла', 'description' => 'Замена моторного масла', 'price' => 1500],
            ['name' => 'Диагностика двигателя', 'description' => 'Компьютерная диагностика', 'price' => 2000],
            ['name' => 'Ремонт тормозов', 'description' => 'Ремонт тормозной системы', 'price' => 3500],
            ['name' => 'Шиномонтаж', 'description' => 'Сезонная смена шин', 'price' => 2500],
            ['name' => 'Развал-схождение', 'description' => 'Регулировка углов колёс', 'price' => 2000],
        ];
        foreach ($servicesList as $service) {
            Service::create($service);
        }

        // 3. Запчасти
        $partsList = [
            ['name' => 'Масло моторное 5W-40', 'description' => '4л', 'price' => 2500],
            ['name' => 'Фильтр масляный', 'description' => 'Масляный фильтр', 'price' => 500],
            ['name' => 'Фильтр воздушный', 'description' => 'Воздушный фильтр', 'price' => 650],
            ['name' => 'Тормозные колодки', 'description' => 'Передние', 'price' => 1800],
        ];
        foreach ($partsList as $part) {
            Part::create($part);
        }

        // 4. Пользователи
        // Админ
        User::create([
            'first_name' => 'Админ',
            'last_name' => 'Системный',
            'email' => 'admin@test.ru',
            'password' => Hash::make('password'),
            'phone' => '+79991234567',
            'role_id' => $adminRole->id,
        ]);

        // Обычные пользователи с авто
        for ($i = 1; $i <= 10; $i++) {
            $user = User::create([
                'first_name' => "Имя{$i}",
                'last_name' => "Фамилия{$i}",
                'email' => "user{$i}@test.ru",
                'password' => Hash::make('password'),
                'phone' => "+799900000{$i}",
                'role_id' => $userRole->id,
            ]);

            // Автомобиль
            Car::create([
                'user_id' => $user->id,
                'brand' => 'Toyota',
                'model' => 'Camry',
                'year' => 2020,
                'license_plate' => "A{$i}AA{$i}",
                'vin' => null,
            ]);
        }

        $this->command->info('Готово!');
    }
}