<?php
namespace App\EventSubscriber;
use App\Entity\Event;
use App\Event\QuotationChangeManagerEvent;
use App\Service\Subscription\SubscriptionService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class QuotationChangeManagerEventSubscriber implements EventSubscriberInterface
{
private SubscriptionService $subscriptionService;
public function __construct(
SubscriptionService $subscriptionService
)
{
$this->subscriptionService = $subscriptionService;
}
public static function getSubscribedEvents(): array
{
return [
QuotationChangeManagerEvent::CHANGED => [
['quotationManagerChangedNotify'],
['createManagerSubscriptions'],
// ['clearPreviousManagerSubs'] todo
],
];
}
public function createManagerSubscriptions(QuotationChangeManagerEvent $event)
{
$this->subscriptionService->generateSubscriptions($event->getQuotation(), $event->getQuotation()->getManager());
}
public function quotationManagerChangedNotify(QuotationChangeManagerEvent $event)
{
$this->subscriptionService->proceedEvent(
Event::MANAGER_CHANGED,
$event->getQuotation(),
[
'data' => [
'uuid' => $event->getQuotation()->getUuid()
],
'action_name' => 'quotationManagerChangedNotify',
]
);
}
}