feat: add shift management functionality

This commit is contained in:
2026-08-26 18:53:15 +03:30
parent 2d96978c38
commit aeef95339d
34 changed files with 1953 additions and 15 deletions
+10 -3
View File
@@ -10,15 +10,19 @@ use App\Models\Document;
use App\Models\Pet;
use App\Models\User;
use App\Services\FileStorageService;
use App\Services\Shift\ShiftScheduleService;
use Illuminate\Support\Facades\DB;
class FastRequestService
{
protected FileStorageService $fileStorageService;
public function __construct(FileStorageService $fileStorageService)
protected ShiftScheduleService $shiftScheduleService;
public function __construct(FileStorageService $fileStorageService, ShiftScheduleService $shiftScheduleService)
{
$this->fileStorageService = $fileStorageService;
$this->shiftScheduleService = $shiftScheduleService;
}
public function create(User $requester, array $data, array $historyFiles = [], array $scanFiles = []): Document
@@ -38,9 +42,12 @@ class FastRequestService
$this->attachFiles($document, $historyFiles, MediaCollectionEnum::History);
$this->attachFiles($document, $scanFiles, MediaCollectionEnum::Primary);
if (!empty($data['doctor_id'])) {
$doctorId = $data['doctor_id']
?? $this->shiftScheduleService->autoSelectDoctor(now())?->id;
if (!empty($doctorId)) {
$document->assignments()->create([
'user_id' => $data['doctor_id'],
'user_id' => $doctorId,
'role' => 'رادیولوژیست',
]);
}