diff --git a/tickets/TicketMessageCreatedListener.php b/tickets/TicketMessageCreatedListener.php index 9ad1323..c286518 100644 --- a/tickets/TicketMessageCreatedListener.php +++ b/tickets/TicketMessageCreatedListener.php @@ -4,6 +4,7 @@ namespace App\Listeners; use App\Events\TicketMessage\Created; use App\Helpers\NotificationHelper; +use App\Models\User; class TicketMessageCreatedListener { @@ -20,6 +21,26 @@ class TicketMessageCreatedListener } else { // Update ticket status $event->ticketMessage->ticket->update(['status' => 'open']); + // Get all users with ticket viewing permission + $admins = User::whereHas('role', function ($query) { + $query->whereJsonContains('permissions', 'admin.tickets.viewAny') + ->orWhereJsonContains('permissions', '*'); + })->get(); + + // Send notification to each admin + foreach ($admins as $admin) { + NotificationHelper::sendSystemEmailNotification( + '[Ticket #' . $event->ticketMessage->ticket->id . '] New Reply from Customer', + "The customer has replied to the ticket.\n\n" . + "Ticket ID: #" . $event->ticketMessage->ticket->id . "\n" . + "Subject: " . $event->ticketMessage->ticket->subject . "\n" . + "User: " . $event->ticketMessage->ticket->user->name . " (" . $event->ticketMessage->ticket->user->email . ")\n" . + "Message:\n" . $event->ticketMessage->message . "\n" . + "Replied at: " . $event->ticketMessage->created_at->format('Y-m-d H:i:s'), + [], + $admin->email + ); + } } } }