src/EventSubscriber/Order/NotifyAdminPrinterCancelOrErrorRequestSubscriber.php line 26
<?phpdeclare(strict_types=1);namespace App\EventSubscriber\Order;use App\Entity\Order\Order;use App\Message\SendOrderEmailMessage;use App\OrderProductionStates;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\Messenger\MessageBusInterface;use Symfony\Component\Workflow\Event\Event;use Webmozart\Assert\Assert;/*** When a printer requests cancel/error, queue an admin notification (async).* Customer cancel email is sent only after admin confirms (canceled/errored).*/final class NotifyAdminPrinterCancelOrErrorRequestSubscriber implements EventSubscriberInterface{public function __construct(private MessageBusInterface $messageBus,) {}public function onEnter(Event $event): void{/** @var Order $order */$order = $event->getSubject();Assert::isInstanceOf($order, Order::class);$orderId = $order->getId();if (null === $orderId) {return;}$this->messageBus->dispatch(new SendOrderEmailMessage($orderId,SendOrderEmailMessage::TYPE_ADMIN_CANCEL_OR_ERROR_REQUEST,$order->getProductionState() ?? OrderProductionStates::STATE_CANCEL_PENDING,));}public static function getSubscribedEvents(): array{return ['workflow.order_production.entered.cancel_pending' => 'onEnter','workflow.order_production.entered.error_pending' => 'onEnter',];}}