feat: centralize create/edit flow contexts, extract edit submit service
This commit is contained in:
@@ -14,10 +14,10 @@ use App\Form\BookingCreateStep4Type;
|
||||
use App\Form\Model\BookingDto;
|
||||
use App\Htmx\HxTrait;
|
||||
use App\Entity\User;
|
||||
use App\Service\BookingCreateContextFactory;
|
||||
use App\Service\BookingPriceCalculatorService;
|
||||
use App\Service\BookingService;
|
||||
use App\Service\BookingSessionService;
|
||||
use App\Service\BookingSummaryDataService;
|
||||
use App\Service\Newsletter\MailjetNewsletterService;
|
||||
use App\Service\Newsletter\NewsletterDoubleOptInService;
|
||||
use Psr\Log\LoggerInterface;
|
||||
@@ -40,7 +40,7 @@ class Step4Controller extends AbstractController
|
||||
public function __construct(
|
||||
private readonly BookingService $bookingService,
|
||||
private readonly BookingSessionService $bookingSessionService,
|
||||
private readonly BookingSummaryDataService $summaryDataService,
|
||||
private readonly BookingCreateContextFactory $createContextFactory,
|
||||
private readonly BookingPriceCalculatorService $priceCalculator,
|
||||
private readonly ApiClient $apiClient,
|
||||
private readonly CacheInterface $cache,
|
||||
@@ -134,9 +134,9 @@ class Step4Controller extends AbstractController
|
||||
}
|
||||
|
||||
// Success: Store booking data in flash for conversion tracking
|
||||
$summaryData = $this->summaryDataService->getSummaryData($bookingCreateDto);
|
||||
$bookingCreateContext = $this->createContextFactory->createWithParticipantPrices($bookingCreateDto);
|
||||
$this->addFlash('booking_number', $bookingResponse->bookingNumber);
|
||||
$this->addFlash('booking_total', $summaryData->payableAmount);
|
||||
$this->addFlash('booking_total', $bookingCreateContext->summaryData->payableAmount);
|
||||
$this->addFlash('booking_travel_name', $bookingCreateDto->travel->label);
|
||||
$this->clearTravelDataCache($bookingCreateDto);
|
||||
$this->bookingSessionService->clearBookingDto($request, BookingDto::MODE_CREATE);
|
||||
@@ -182,14 +182,11 @@ class Step4Controller extends AbstractController
|
||||
?string $newsletterTargetEmail,
|
||||
): Response
|
||||
{
|
||||
// Get complete summary data (pricing, rooms, CMS data)
|
||||
$summaryData = $this->summaryDataService->getSummaryData($bookingCreateDto);
|
||||
$bookingCreateContext = $this->createContextFactory->createWithParticipantPrices($bookingCreateDto);
|
||||
|
||||
return $this->render('booking/create/step_4.html.twig', [
|
||||
'bookingCreateDto' => $bookingCreateDto,
|
||||
'bookingCreateContext' => $bookingCreateContext,
|
||||
'form' => $form->createView(),
|
||||
'summaryData' => $summaryData,
|
||||
'participantPrices' => $this->priceCalculator->calculateAllParticipantIndividualPrices($bookingCreateDto),
|
||||
'newsletterOptInVisible' => $newsletterOptInVisible,
|
||||
'newsletterTargetEmail' => $newsletterTargetEmail,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user