53 lines
1.6 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Spatie\Permission\Models\Role;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// Pobieramy istniejące role
$adminRole = Role::where('name', 'admin')->first();
$kierownikRole = Role::where('name', 'kierownik')->first();
$pracownikRole = Role::where('name', 'pracownik')->first();
// 1. Domyślne konta testowe
$admin = User::factory()->create([
'name' => 'Jan',
'surname' => 'Admin',
'email' => 'a@a.com',
'password' => Hash::make('123'),
]);
$admin->assignRole($adminRole);
$kierownik = User::factory()->create([
'name' => 'Krzysztof',
'surname' => 'Kierownik',
'email' => 'k@k.com',
'password' => Hash::make('123'),
]);
$kierownik->assignRole($kierownikRole);
$pracownik = User::factory()->create([
'name' => 'Piotr',
'surname' => 'Pracownik',
'email' => 'p@p.com',
'password' => Hash::make('123'),
]);
$pracownik->assignRole($pracownikRole);
// 2. Generowanie dodatkowych 30 losowych użytkowników z rolami (password = 'password')
User::factory(30)->create()->each(function ($user) use ($pracownikRole, $kierownikRole) {
$role = rand(1, 100) <= 80 ? $pracownikRole : $kierownikRole;
$user->assignRole($role);
});
}
}