<?php
namespace App\Utils\OrderCreator\Event\Handler;
use App\Event\OrderPlacedEvent;
use App\Message\Order\UniqskillsOrderPlacedEvent;
use App\Utils\OrderCreator\Event\OrderPlacingFinished;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Messenger\MessageBusInterface;
#[AsEventListener(event: OrderPlacingFinished::class)]
final class LegacyEventsDispatcherHandler
{
public function __construct(
private readonly EventDispatcherInterface $eventDispatcher,
private readonly MessageBusInterface $messageBus,
){
}
public function __invoke(OrderPlacingFinished $event): void
{
$order = $event->getOrderCreationContext()->getOrder();
$this->eventDispatcher->dispatch(new OrderPlacedEvent($order->getId()), OrderPlacedEvent::ORDER_PLACED);
if (!$order->getUniqskillsProducts()->isEmpty()) {
$this->messageBus->dispatch(new UniqskillsOrderPlacedEvent($order->getId()));
}
}
}