<?php
declare(strict_types=1);
namespace App\Event;
use App\Event\OpportunityContactStatusUpdateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use App\Services\Opportunity\OpportunityService;
use App\Services\Contact\ContactSalesActionService;
class OpportunityContactStatusUpdateSubscriber implements EventSubscriberInterface
{
public function __construct(
private OpportunityService $opportunityService,
private ContactSalesActionService $contactSalesActionService
) {
}
public static function getSubscribedEvents()
{
return [
OpportunityContactStatusUpdateEvent::NAME => 'onOpportunityUpdate',
];
}
public function onOpportunityUpdate(OpportunityContactStatusUpdateEvent $event): void
{
$this->opportunityService->updateContactsStatusOnOpportunityUpdate(
$event->getOpportunity()
);
$this->contactSalesActionService->saveOpportunitySalesAction(
$event->getOpportunity()
);
}
}