feat: refactor to cards
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user