<?php
namespace App\BookingProcess\ProcessEventSubscriber;
use App\BookingProcess\ProcessHelper\Company\Cabin\CostaCabinHelper;
use App\Entity\Booking\Quote;
use Crea\ProcessBundle\ProcessEvent\ProcessEvents;
use Crea\ProcessBundle\ProcessEvent\ProcessResponseEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProcessFullwebCostaSubscriber implements EventSubscriberInterface
{
protected CostaCabinHelper $costaCabinHelper;
public function __construct(CostaCabinHelper $costaCabinHelper)
{
$this->costaCabinHelper = $costaCabinHelper;
}
public static function getSubscribedEvents(): array
{
return [
ProcessEvents::PROCESS_RESPONSE => 'processResponse',
];
}
public function processResponse(ProcessResponseEvent $event): void
{
$state = $event->getProcess()->getState();
if (($state->getDisplayStepIndex() === "step-fullweb-costa-cabin" && $state->getOperationStepIndex() === null) ||
($state->getDisplayStepIndex() === "step-fullweb-costa-cabin" && $state->getOperationStepIndex() === "step-fullweb-costa-cabin-ship-view")) {
/** @var Quote $quote */
$quote = $event->getProcess()->getEntity();
$this->costaCabinHelper->initSession($quote);
}
}
}