This commit is contained in:
Masroor Ehsan 2025-01-08 20:32:01 +06:00
parent 53da38c6f5
commit 6104f1735e

View File

@ -3,6 +3,7 @@
namespace App\Models;
use App\Casts\Compressed;
use App\Domain\Report\ReportStatus;
use Illuminate\Database\Eloquent\Concerns\HasTimestamps;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
@ -20,12 +21,38 @@ public function radiologist(): BelongsTo
return $this->belongsTo(User::class, 'read_by_id');
}
public function updateStatus(ReportStatus $status, User|int|null $user = null): void
{
$user_id = me($user)->id;
$params = ['report_status' => $status->value, 'read_by_id' => $user_id];
$this->update($params);
$params = ['report_status' => $status->value];
switch ($status) {
case ReportStatus::Finalized:
$params['reporting_physician_id'] = $user_id;
$params['reported_at'] = now();
break;
case ReportStatus::Approved:
if ($this->study->reporting_physician_id === null) {
$params['reporting_physician_id'] = $user_id;
$params['reported_at'] = now();
}
$params['approving_physician_id'] = $user_id;
$params['approved_at'] = now();
break;
}
$this->study->update($params);
}
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'report_status' => ReportStatus::class,
'content' => Compressed::class,
];
}