first(); if (!$admin) { $admin = User::factory()->create([ 'email' => 'admin@radical.dev', 'username' => 'admin_dev', 'level' => UserEnum::Admin->value, 'fullname' => 'مدیر سیستم', ]); } $supervisor = User::factory()->create([ 'email' => 'supervisor@radical.dev', 'username' => 'supervisor', 'level' => UserEnum::Supervisor->value, 'fullname' => 'سرپرست بخش', ]); $doctor = User::factory()->create([ 'email' => 'doctor@radical.dev', 'username' => 'doctor', 'level' => UserEnum::Doctor->value, 'fullname' => 'دکتر رادیولوژی', ]); $owner = User::factory()->create([ 'email' => 'owner@radical.dev', 'username' => 'owner', 'level' => UserEnum::Supervisor->value, 'fullname' => 'صاحب حیوان', ]); $dog = Pet::factory()->dog()->male()->create([ 'name' => 'رکس', 'owner_id' => $owner->id, ]); $cat = Pet::factory()->cat()->female()->create([ 'name' => 'میمی', 'owner_id' => $owner->id, ]); $urgentDocument = Document::factory()->urgent()->create([ 'pet_id' => $dog->id, 'requester_id' => $owner->id, ]); $completedDocument = Document::factory()->completed()->create([ 'pet_id' => $cat->id, 'requester_id' => $owner->id, 'finalized_by' => $supervisor->id, ]); DocumentAssignment::factory()->radiologist()->create([ 'document_id' => $urgentDocument->id, 'user_id' => $doctor->id, ]); DocumentAssignment::factory()->supervisor()->create([ 'document_id' => $urgentDocument->id, 'user_id' => $supervisor->id, ]); $imageFile = Medium::factory()->image()->public()->create([ 'filename' => 'xray_dog.jpg', ]); $documentFile = Medium::factory()->document()->create([ 'filename' => 'medical_history.pdf', ]); MediaAssignment::factory()->forDocument()->primary()->create([ 'media_id' => $imageFile->id, 'mediable_id' => $urgentDocument->id, 'mediable_type' => Document::class, ]); MediaAssignment::factory()->forDocument()->history()->create([ 'media_id' => $documentFile->id, 'mediable_id' => $urgentDocument->id, 'mediable_type' => Document::class, ]); Report::factory()->draft()->create([ 'document_id' => $urgentDocument->id, 'doctor_id' => $doctor->id, ]); $approvedReport = Report::factory()->approved()->create([ 'document_id' => $completedDocument->id, 'doctor_id' => $doctor->id, ]); $reportImage = Medium::factory()->image()->create([ 'filename' => 'report_attachment.jpg', ]); MediaAssignment::factory()->forReport()->attachments()->create([ 'media_id' => $reportImage->id, 'mediable_id' => $approvedReport->id, 'mediable_type' => Report::class, ]); } }