src/Invoice/EventSubscriber/UpdateInvoiceStatusEventSubscriber.php line 44
<?phpdeclare(strict_types=1);/*** Copyright (c) 2020 TECLA Consulting Group oü.* All rights reserved.** This unpublished material is proprietary to TECLA Consulting Group oü.* All rights reserved. The methods and* techniques described herein are considered trade secrets* and/or confidential. Reproduction or distribution, in whole* or in part, is forbidden except by express written permission* of TECLA Consulting Group oü.** @author Matúš Sýkorjak <matus@tecla.no>* @copyright 2020 TECLA Consulting Group oü*/namespace App\Invoice\EventSubscriber;use App\Invoice\Enum\InvoiceStatus;use App\Invoice\Event\InvoiceEmailSentEvent;use App\Invoice\Service\InvoiceServiceInterface;use JetBrains\PhpStorm\ArrayShape;use Symfony\Component\EventDispatcher\EventSubscriberInterface;final class UpdateInvoiceStatusEventSubscriber implements EventSubscriberInterface{private InvoiceServiceInterface $invoiceService;public function __construct(InvoiceServiceInterface $invoiceService){$this->invoiceService = $invoiceService;}#[ArrayShape([InvoiceEmailSentEvent::class => 'string'])]public static function getSubscribedEvents(): array{return [InvoiceEmailSentEvent::class => 'onInvoiceEmailSentEvent',];}public function onInvoiceEmailSentEvent(InvoiceEmailSentEvent $event): void{$invoice = $event->getEmail()->getInvoice();if (true === InvoiceStatus::CREATED()->equals($invoice->getStatus())) {$this->invoiceService->updateStatus($invoice, InvoiceStatus::SENT());}}}