feat: groups price calculator admin crud, booking/offer flow and api

This commit is contained in:
Björn Fromme committed 2026-08-03 15:25:10 +02:00
1 parent eabed8295a
commit 9d2aa11fdb
258 files changed
+16231 -582

No files matched your search

@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace App\Service;
use App\Exception\AccommodationSessionNotFoundException;
use App\Form\Model\AccommodationBookingDto;
use Symfony\Component\HttpFoundation\Request;
class AccommodationSessionManager
{
// Key kept as accommodation_inquiry for session continuity during the inquiry→booking rename.
public const SESSION_KEY = 'accommodation_inquiry';
public function getDto(Request $request): ?AccommodationBookingDto
{
$session = $request->getSession();
if (!$session->has(self::SESSION_KEY)) {
return null;
}
$dto = $session->get(self::SESSION_KEY);
if (!$dto instanceof AccommodationBookingDto) {
return null;
}
return $dto;
}
public function getOrFail(Request $request): AccommodationBookingDto
{
$dto = $this->getDto($request);
if (null === $dto) {
throw new AccommodationSessionNotFoundException();
}
return $dto;
}
public function save(Request $request, AccommodationBookingDto $dto): void
{
$request->getSession()->set(self::SESSION_KEY, $dto);
}
public function clear(Request $request): void
{
$request->getSession()->remove(self::SESSION_KEY);
}
}