added correct SLA support
Awaiting Response No qualifying response yet Due Soon SLA is approaching its deadline MET SLA target achieved on time BREACHED SLA target missed
This commit is contained in:
@@ -52,7 +52,7 @@ final class SlaService
|
||||
$respondedAt = now();
|
||||
|
||||
if ($ticket->first_response_at === null) {
|
||||
$this->markFirstResponse($ticket, $respondedAt);
|
||||
$this->markFirstResponse($ticket, $respondedAt, $actor);
|
||||
}
|
||||
|
||||
$ticket->increment('public_replies_count');
|
||||
@@ -76,6 +76,7 @@ final class SlaService
|
||||
->where('ticket_id', $ticket->id)
|
||||
->where('is_internal', false)
|
||||
->whereNull('tombstoned_at')
|
||||
->with('user')
|
||||
->oldest('created_at')
|
||||
->first();
|
||||
|
||||
@@ -83,10 +84,10 @@ final class SlaService
|
||||
return;
|
||||
}
|
||||
|
||||
$this->markFirstResponse($ticket, $firstPublicComment->created_at ?? now());
|
||||
$this->markFirstResponse($ticket, $firstPublicComment->created_at ?? now(), $firstPublicComment->user);
|
||||
}
|
||||
|
||||
private function markFirstResponse(Ticket $ticket, mixed $respondedAt): void
|
||||
private function markFirstResponse(Ticket $ticket, mixed $respondedAt, ?User $actor = null): void
|
||||
{
|
||||
$respondedAt = $respondedAt instanceof \Illuminate\Support\Carbon
|
||||
? $respondedAt
|
||||
@@ -110,6 +111,11 @@ final class SlaService
|
||||
'due_at' => $ticket->sla_first_response_due_at,
|
||||
'occurred_at' => $respondedAt,
|
||||
'breached' => $breached,
|
||||
'meta' => [
|
||||
'actor_id' => $actor?->id,
|
||||
'actor_name' => $actor?->name,
|
||||
'response_seconds' => max(0, ($ticket->created_at ?? $respondedAt)->diffInSeconds($respondedAt)),
|
||||
],
|
||||
],
|
||||
);
|
||||
}
|
||||
@@ -125,6 +131,9 @@ final class SlaService
|
||||
'due_at' => $ticket->sla_resolution_due_at,
|
||||
'occurred_at' => now(),
|
||||
'breached' => $breached,
|
||||
'meta' => [
|
||||
'resolved_seconds' => max(0, ($ticket->created_at ?? now())->diffInSeconds(now())),
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user