feat: refactor to cards

This commit is contained in:
Björn Fromme
2025-10-15 18:31:10 +02:00
parent ead2c092da
commit 49b7a3fe34
40 changed files with 2639 additions and 3097 deletions
@@ -110,12 +110,85 @@ class BookingDataProcessor
$room = $booking->getRoomForParticipant($index);
$participantData->assignedRoomId = $room?->id;
// Enrich services with data from travel (especially prices)
$this->enrichParticipantServicesFromTravel($participantData, $travel);
$dto->participants[$index] = $participantData;
}
return $dto;
}
/**
* Enriches participant service selections with data from travel model.
*
* Services extracted from booking API responses might not include all necessary data
* (especially prices). This method looks up each service in the travel data and copies
* over missing properties to ensure proper pricing calculations.
*
* @param ParticipantDto $participant The participant with service selections
* @param Travel $travel The travel data containing full service information
*/
private function enrichParticipantServicesFromTravel(ParticipantDto $participant, Travel $travel): void
{
// Enrich courses
foreach ($participant->courses as $key => $course) {
if (isset($travel->additionalServices[$course->id])) {
$participant->courses[$key] = $travel->additionalServices[$course->id];
}
}
// Enrich ski pass
if (null !== $participant->skiPass && isset($travel->additionalServices[$participant->skiPass->id])) {
$participant->skiPass = $travel->additionalServices[$participant->skiPass->id];
}
// Enrich additional services
foreach ($participant->additionalServices as $key => $service) {
if (isset($travel->additionalServices[$service->id])) {
$participant->additionalServices[$key] = $travel->additionalServices[$service->id];
}
}
// Enrich board
foreach ($participant->board as $key => $board) {
if (isset($travel->additionalServices[$board->id])) {
$participant->board[$key] = $travel->additionalServices[$board->id];
}
}
// Enrich rentals
foreach ($participant->rentals as $key => $rental) {
if (isset($travel->additionalServices[$rental->id])) {
$participant->rentals[$key] = $travel->additionalServices[$rental->id];
}
}
// Enrich rental insurance
if (null !== $participant->rentalInsurance && isset($travel->additionalServices[$participant->rentalInsurance->id])) {
$participant->rentalInsurance = $travel->additionalServices[$participant->rentalInsurance->id];
}
// Enrich transportation services
if (null !== $participant->transportationOutbound && isset($travel->transportationServices[$participant->transportationOutbound->id])) {
$participant->transportationOutbound = $travel->transportationServices[$participant->transportationOutbound->id];
}
if (null !== $participant->transportationInbound && isset($travel->transportationServices[$participant->transportationInbound->id])) {
$participant->transportationInbound = $travel->transportationServices[$participant->transportationInbound->id];
}
// Enrich pickup
if (null !== $participant->pickup && isset($travel->pickupsOutbound[$participant->pickup->id])) {
$participant->pickup = $travel->pickupsOutbound[$participant->pickup->id];
}
// Enrich insurance
if (null !== $participant->insurance && isset($travel->insurances[$participant->insurance->id])) {
$participant->insurance = $travel->insurances[$participant->insurance->id];
}
}
/**
* Creates an update request payload for the BusProNet API from booking form data.
*