Files
WMS/Modules/Helpdesk/Services/CannedResponseRenderer.php
T
2026-06-15 13:47:58 +01:00

31 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Services;
use App\Models\User;
use Modules\Helpdesk\Models\Ticket;
final class CannedResponseRenderer
{
public function render(string $template, Ticket $ticket, ?User $actor = null): string
{
$ticket->loadMissing(['owner', 'agent', 'status', 'priority', 'category', 'project', 'team']);
return strtr($template, [
'{{ ticket.reference }}' => $ticket->reference,
'{{ ticket.subject }}' => $ticket->subject,
'{{ ticket.status }}' => (string) ($ticket->status?->name ?? ''),
'{{ ticket.priority }}' => (string) ($ticket->priority?->name ?? ''),
'{{ ticket.category }}' => (string) ($ticket->category?->name ?? ''),
'{{ ticket.project }}' => (string) ($ticket->project?->title ?? ''),
'{{ ticket.team }}' => (string) ($ticket->team?->name ?? ''),
'{{ requester.name }}' => (string) ($ticket->owner?->name ?? ''),
'{{ agent.name }}' => (string) ($ticket->agent?->name ?? ''),
'{{ actor.name }}' => (string) ($actor?->name ?? ''),
'{{ ticket.url }}' => route('helpdesk.tickets.show', ['ticket' => $ticket->getKey()]),
]);
}
}