feat: selectable drop-offs for inbound bus travel

This commit is contained in:
Björn Fromme
2026-03-16 12:03:00 +01:00
parent f8a56b7de2
commit f795a3ea21
31 changed files with 701 additions and 200 deletions
+25 -5
View File
@@ -41,8 +41,8 @@ class Booking
public array $transportationServices = [];
public array $additionalServices = [];
public array $rooms = [];
public array $pickupsOutbound = [];
public array $pickupsInbound = [];
public array $pickups = [];
public array $dropOffs = [];
public array $surcharges = [];
public array $insurances = [];
public ?int $invoiceNumber = null;
@@ -136,8 +136,7 @@ class Booking
* Retrieves pickup service for a specific participant.
*
* Finds the pickup service assigned to the specified participant
* from the outbound pickup services. The API only supports pickups
* when outbound transportation is bus.
* from the pickup services.
*
* @param int $participantIndex The participant index to search for
*
@@ -145,7 +144,7 @@ class Booking
*/
public function getPickupForParticipant(int $participantIndex): ?Pickup
{
foreach ($this->pickupsOutbound as $pickup) {
foreach ($this->pickups as $pickup) {
if (in_array($participantIndex, $pickup->mapping)) {
return $pickup;
}
@@ -154,6 +153,27 @@ class Booking
return null;
}
/**
* Retrieves drop-off service for a specific participant.
*
* Finds the drop-off service assigned to the specified participant
* from the drop-off services (inbound/return direction).
*
* @param int $participantIndex The participant index to search for
*
* @return Pickup|null The matching drop-off service or null if not found
*/
public function getDropOffForParticipant(int $participantIndex): ?Pickup
{
foreach ($this->dropOffs as $dropOff) {
if (in_array($participantIndex, $dropOff->mapping)) {
return $dropOff;
}
}
return null;
}
/**
* Gets the insurance assigned to a specific participant.
*