42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Resources\Client;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
class CaseResource extends JsonResource
|
|
{
|
|
public function toArray(Request $request): array
|
|
{
|
|
return [
|
|
'id' => $this->id,
|
|
'code' => $this->code,
|
|
'status' => $this->status,
|
|
'modality' => $this->modality,
|
|
'requester' => optional($this->requester)->fullname,
|
|
'submitted_at' => $this->submitted_at ? verta($this->submitted_at)->format('%Y/%m/%d - H:i') : null,
|
|
'processing_deadline' => $this->deadlineLabel(),
|
|
];
|
|
}
|
|
|
|
protected function deadlineLabel(): ?string
|
|
{
|
|
if (!$this->processing_deadline) {
|
|
return null;
|
|
}
|
|
|
|
if (now()->greaterThanOrEqualTo($this->processing_deadline)) {
|
|
return 'اتمام فرصت رسیدگی';
|
|
}
|
|
|
|
$minutes = (int) now()->diffInMinutes($this->processing_deadline, true);
|
|
|
|
if ($minutes < 60) {
|
|
return $minutes . ' دقیقه';
|
|
}
|
|
|
|
return 'کمتر از ' . (int) ceil($minutes / 60) . ' ساعت';
|
|
}
|
|
}
|