<?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('Готово!');
}
}