radfusion/database/seeders/UserSeeder.php
2025-01-12 10:45:13 +06:00

87 lines
2.6 KiB
PHP

<?php
namespace Database\Seeders;
use App\Domain\ACL\Role;
use App\Models\Institute;
use App\Models\RadiologistProfile;
use App\Models\User;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run(): void
{
// User::factory(10)->create();
$usr = User::factory()->create([
'first_name' => 'PACS Sync',
'display_name' => 'PACS Sync Agent',
'username' => '$$_pacs_sync_$$',
'password' => bcrypt(fake()->password(20)),
'is_active' => false,
]);
$usr->assignRole(Role::SystemAgent);
$usr = User::factory()->create([
'first_name' => 'Administrator',
'display_name' => 'Admin',
'username' => 'admin',
'email' => 'admin@example.com',
'email_verified_at' => now(),
'phone' => '+8801733938582',
]);
$usr->assignRole(Role::Admin);
$chevron = Institute::where('name', 'Chevron')->first();
$cmch = Institute::where('name', 'CMCH')->first();
User::factory(4)
->create([
'institute_id' => $chevron->id,
])
->each(function ($u, $key) {
$u->assignRole(Role::Technician);
$u->update([
'username' => sprintf('tech%d', $key + 1),
]);
});
User::factory(4)
->create([
'institute_id' => $cmch->id,
])
->each(function ($u, $key) {
$u->assignRole(Role::Technician);
$u->update([
'username' => sprintf('cmctech%d', $key + 1),
]);
});
$images = [
'hossain-saad.png', 'nasir-uddin.png', 'sadrul-amin.png',
'khairul-islam.png', 'rabeya-khatoon.png', 'subash.png',
];
User::factory(9)
->create()
->each(function (User $u, $key) use ($images) {
$u->assignRole(Role::Radiologist);
$u->update([
'display_name' => sprintf('Dr. %s.%d', $u->first_name, $key + 1),
'username' => sprintf('rad%d', $key + 1),
]);
RadiologistProfile::create([
'user_id' => $u->id,
'signature_image_path' => 'signatures/' . fake()->randomElement($images),
]);
});
User::factory(3)
->create()
->each(function ($u) {
$u->assignRole(Role::Guest);
});
}
}