|null null when no accommodation or dates are set */ public function compute(AccommodationBooking $booking): ?array { $accommodation = $booking->getAccommodation(); $dateFrom = $booking->getDateFrom(); $dateTo = $booking->getDateTo(); if (null === $accommodation || null === $dateFrom || null === $dateTo) { return null; } $prices = $this->priceRepo->findByHotelCodeAndDateRange( $accommodation->getCalendarCode() ?? '', $dateFrom, $dateTo, ); return $this->priceCalculator->calculateFromSnapshots( $booking->getPaxCount(), $booking->getMinorsCount(), $booking->getNights(), $dateFrom, $dateTo, $prices, $booking->getBoardServicePrice(), $booking->getAdditionalServices(), $accommodation->getCurrency(), ); } }