|
2 | 2 |
|
3 | 3 | namespace App\Domains\Ticket\Controllers; |
4 | 4 |
|
| 5 | +use App\Domains\Core\Models\User; |
5 | 6 | use App\Domains\Ticket\Models\Ticket; |
6 | 7 | use App\Domains\Ticket\Models\TicketWatcher; |
7 | 8 | use App\Http\Controllers\Controller; |
8 | | -use App\Domains\Core\Models\User; |
9 | 9 | use Illuminate\Http\Request; |
10 | 10 | use Illuminate\Support\Facades\DB; |
11 | 11 | use Illuminate\Support\Facades\Validator; |
@@ -82,8 +82,8 @@ public function index(Request $request) |
82 | 82 | ->orderBy('name') |
83 | 83 | ->get(); |
84 | 84 |
|
85 | | - $statuses = ['new', 'open', 'in_progress', 'pending', 'resolved', 'closed']; |
86 | | - $priorities = ['Low', 'Medium', 'High', 'Critical']; |
| 85 | + $statuses = Ticket::getAvailableStatuses(); |
| 86 | + $priorities = Ticket::getAvailablePriorities(); |
87 | 87 |
|
88 | 88 | // Get assignment statistics |
89 | 89 | $stats = $this->getAssignmentStats(); |
@@ -477,8 +477,8 @@ public function getWorkloadReport(Request $request) |
477 | 477 | return [ |
478 | 478 | 'assignee' => $assignee ? $assignee->name : 'Unassigned', |
479 | 479 | 'total_tickets' => $tickets->count(), |
480 | | - 'open_tickets' => $tickets->whereIn('status', ['new', 'open', 'in_progress'])->count(), |
481 | | - 'closed_tickets' => $tickets->where('status', 'closed')->count(), |
| 480 | + 'open_tickets' => $tickets->whereIn('status', [Ticket::STATUS_NEW, Ticket::STATUS_OPEN, Ticket::STATUS_IN_PROGRESS])->count(), |
| 481 | + 'closed_tickets' => $tickets->where('status', Ticket::STATUS_CLOSED)->count(), |
482 | 482 | 'avg_resolution_time' => $this->calculateAvgResolutionTime($tickets), |
483 | 483 | 'priority_breakdown' => $tickets->groupBy('priority')->map->count(), |
484 | 484 | 'status_breakdown' => $tickets->groupBy('status')->map->count(), |
@@ -508,11 +508,11 @@ public function getTeamOverview(Request $request) |
508 | 508 | ->withCount([ |
509 | 509 | 'assignedTickets', |
510 | 510 | 'assignedTickets as open_tickets_count' => function ($q) { |
511 | | - $q->whereIn('status', ['new', 'open', 'in_progress']); |
| 511 | + $q->whereIn('status', [Ticket::STATUS_NEW, Ticket::STATUS_OPEN, Ticket::STATUS_IN_PROGRESS]); |
512 | 512 | }, |
513 | 513 | 'assignedTickets as overdue_tickets_count' => function ($q) { |
514 | 514 | $q->where('due_date', '<', now()) |
515 | | - ->whereNotIn('status', ['closed', 'resolved']); |
| 515 | + ->whereNotIn('status', [Ticket::STATUS_CLOSED, Ticket::STATUS_RESOLVED]); |
516 | 516 | }, |
517 | 517 | ]) |
518 | 518 | ->get(); |
@@ -720,7 +720,7 @@ private function getTeamMemberIds(): array |
720 | 720 | */ |
721 | 721 | private function calculateAvgResolutionTime($tickets) |
722 | 722 | { |
723 | | - $resolvedTickets = $tickets->whereIn('status', ['resolved', 'closed']) |
| 723 | + $resolvedTickets = $tickets->whereIn('status', [Ticket::STATUS_RESOLVED, Ticket::STATUS_CLOSED]) |
724 | 724 | ->filter(function ($ticket) { |
725 | 725 | return $ticket->resolved_at; |
726 | 726 | }); |
|
0 commit comments