<?php
declare(strict_types=1);
namespace Harmonizely\Service\Subscription\Subscribers;
use FOS\UserBundle\Event\GetResponseUserEvent;
use FOS\UserBundle\FOSUserEvents;
use Harmonizely\Service\Subscription\Contract\ISendTrialStartEmailService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
final class SendTrialStartEmailSubscriber implements EventSubscriberInterface
{
/**
* @var ISendTrialStartEmailService
*/
private ISendTrialStartEmailService $sendTrialStartEmailService;
/**
* @param ISendTrialStartEmailService $sendTrialStartEmailService
*/
public function __construct(
ISendTrialStartEmailService $sendTrialStartEmailService
)
{
$this->sendTrialStartEmailService = $sendTrialStartEmailService;
}
/**
* @return string[]
*/
public static function getSubscribedEvents(): array
{
return [
FOSUserEvents::REGISTRATION_CONFIRM => 'onRegistrationConfirm',
];
}
/**
* @param GetResponseUserEvent $event
* @return void
*/
public function onRegistrationConfirm(GetResponseUserEvent $event): void
{
$user = $event->getUser();
$this->sendTrialStartEmailService->perform($user);
}
}