<?php
namespace App\EventListener;
use App\Controller\Company\SupportTicket\Event\MessageEvent;
use App\Controller\Company\SupportTicket\Event\TicketEvent;
use App\Message\SupportTicket\SupportAnswerMessage;
use App\Message\SupportTicket\SupportTicketMessage;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\MessageBusInterface;
class TicketEventSubscriber implements EventSubscriberInterface
{
public function __construct(private MessageBusInterface $messageBus)
{
}
public static function getSubscribedEvents()
{
return [
TicketEvent::CREATE_SUPPORT_TICKET_EVENT_NAME => 'onNewTicket',
MessageEvent::CREATE_SUPPORT_TICKET_MESSAGE_EVENT_NAME => 'onNewMessage',
];
}
public function onNewTicket(TicketEvent $event): void
{
$this->messageBus->dispatch(
new SupportTicketMessage($event->getSupportTicket()->getId())
);
}
public function onNewMessage(MessageEvent $event)
{
$this->messageBus->dispatch(
new SupportAnswerMessage($event->getMessage()->getId())
);
}
}