feat: extract room grouping from booking service

This commit is contained in:
Björn Fromme
2026-04-11 18:28:32 +02:00
parent 8b72f8c277
commit f31ac660d2
8 changed files with 120 additions and 136 deletions
@@ -10,6 +10,7 @@ use App\Form\BookingCreateStep1Type;
use App\Form\Model\BookingDto;
use App\Htmx\HxTrait;
use App\Service\BookingService;
use App\Service\BookingRoomSelectionService;
use App\Service\BookingSessionService;
use App\Service\BookingSummaryDataService;
use App\Service\RoomPricingCalculator;
@@ -32,6 +33,7 @@ class Step1Controller extends AbstractController
public function __construct(
private readonly BookingService $bookingService,
private readonly BookingRoomSelectionService $roomSelectionService,
private readonly BookingSessionService $bookingSessionService,
private readonly BookingSummaryDataService $summaryDataService,
) {
@@ -84,7 +86,7 @@ class Step1Controller extends AbstractController
$summaryData = $this->summaryDataService->getSummaryData($bookingCreateDto, RoomPricingCalculator::PRICING_MODE_SELECTION);
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedRooms = $this->bookingService->groupRoomsBySelectionType($availableRooms);
$groupedRooms = $this->roomSelectionService->groupRoomsBySelectionType($availableRooms);
return $this->render('booking/create/step_1.html.twig', [
'bookingCreateDto' => $bookingCreateDto,
@@ -116,7 +118,7 @@ class Step1Controller extends AbstractController
// Get complete summary data (pricing, rooms, CMS data)
$summaryData = $this->summaryDataService->getSummaryData($bookingCreateDto, RoomPricingCalculator::PRICING_MODE_SELECTION);
$availableRooms = $bookingCreateDto->travel->getAvailableRooms();
$groupedRooms = $this->bookingService->groupRoomsBySelectionType($availableRooms);
$groupedRooms = $this->roomSelectionService->groupRoomsBySelectionType($availableRooms);
// The DTO is now updated with the latest selection.
// We can now render the blocks with the fresh data.