<?php
namespace App\EventSubscriber\App;
use App\Event\ProfileInvoiceEmailAddressEditedEvent;
use App\Service\Membership\MembershipService;
use JanusHercules\DatawarehouseIntegration\Domain\Entity\BusinessEvent;
use JanusHercules\DatawarehouseIntegration\Domain\Service\BusinessEventDomainService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProfileInvoiceEmailAddressEditedEventSubscriber implements EventSubscriberInterface
{
public function __construct(
private readonly BusinessEventDomainService $businessEventDomainService,
private readonly MembershipService $membershipService
) {
}
public static function getSubscribedEvents(): array
{
return [
ProfileInvoiceEmailAddressEditedEvent::class => 'onProfileInvoiceEmailAddressEditedEvent'
];
}
public function onProfileInvoiceEmailAddressEditedEvent(
ProfileInvoiceEmailAddressEditedEvent $event
): void {
$this->membershipService->changeMembershipEmailAddress($event->getJoboffererProfile(), $event->getPreviousJoboffererProfile());
$this->businessEventDomainService->writeNewEvent(BusinessEvent::EVENT_TYPE_INVOICE_EMAIL_EDITED);
}
}