<?php
namespace App\EventSubscriber;
use App\Entity\Reservation;
use App\Event\ReservationStatusChangedEvent;
use App\Service\RequestService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ReservationSubscriber implements EventSubscriberInterface
{
public function __construct(private RequestService $requestService)
{
}
public static function getSubscribedEvents(): array
{
return [
ReservationStatusChangedEvent::class => 'onStatusChanged',
];
}
public function onStatusChanged(ReservationStatusChangedEvent $event): void
{
$reservation = $event->getReservation();
// TDP-2233 - ödemesi alınan rezervasyonlarla ilişkili talepler siliniyor
if ($reservation->getStatus() === Reservation::STATUS_NEW) {
$this->requestService->removeAllByReservation($reservation);
}
}
}