radfusion/database/seeders/UserSeeder.php
2025-01-22 18:57:12 +06:00

97 lines
2.9 KiB
PHP

<?php
namespace Database\Seeders;
use App\Domain\ACL\Role;
use App\Models\Department;
use App\Models\Organization;
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 = Organization::where('name', 'Chevron')->first();
$cmch = Organization::where('name', 'CMCH')->first();
$chev_xr = Department::where('organization_id', $chevron->id)->first();
User::factory(4)
->create([
'organization_id' => $chevron->id,
])
->each(function ($u, $key) {
$u->assignRole(Role::Technician);
$u->update([
'username' => sprintf('tech%d', $key + 1),
]);
});
User::factory(4)
->create([
'organization_id' => $chevron->id,
'department_id' => $chev_xr->id,
])
->each(function ($u, $key) {
$u->assignRole(Role::Technician);
$u->update([
'username' => sprintf('xrt%d', $key + 1),
]);
});
User::factory(4)
->create([
'organization_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),
'signature_image_path' => 'signatures/' . fake()->randomElement($images),
]);
});
User::factory(3)
->create()
->each(function ($u) {
$u->assignRole(Role::Guest);
});
}
}