diff --git a/app/Http/Controllers/Api/WorkOrderController.php b/app/Http/Controllers/Api/WorkOrderController.php index 8910fdb..b1755e9 100644 --- a/app/Http/Controllers/Api/WorkOrderController.php +++ b/app/Http/Controllers/Api/WorkOrderController.php @@ -44,6 +44,8 @@ public function show(WorkOrder $workOrder): JsonResponse { $workOrder->load(['module', 'host']); + $workOrder->markAsRead(); + return $this->success($workOrder); } diff --git a/app/Models/WorkOrder/WorkOrder.php b/app/Models/WorkOrder/WorkOrder.php index 0bc6230..5c361fa 100644 --- a/app/Models/WorkOrder/WorkOrder.php +++ b/app/Models/WorkOrder/WorkOrder.php @@ -136,11 +136,33 @@ public function isClosed(): bool return $this->status === 'closed'; } + public function isWaitingForResponse(): bool + { + return $this->status === 'replied' || $this->status === 'user_replied'; + } + public function isPlatform(): bool { return $this->module_id === null && $this->host_id === null; } + public function markAsRead(): bool + { + if (! $this->isWaitingForResponse()) { + return false; + } + + if (auth('admin')) { + $this->status = 'read'; + } else { + $this->status = 'user_read'; + } + + $this->save(); + + return true; + } + /** * @throws CommonException */