import type { ITransferBookingRequest } from "@/models/booking-request.model"; export class BRTransferVariables { public readonly transferBookingRequest: ITransferBookingRequest; constructor(transferBookingRequest: ITransferBookingRequest) { this.transferBookingRequest = transferBookingRequest; } public get transferSegmentGroups() { return this.transferBookingRequest.reservationData.DetailResponse?.TransferSegmentGroupItem.sort( (a, b) => a.Items[0]!.GroupId - b.Items[0]!.GroupId, ); } public get isMultiple() { return this.transferSegmentGroups.length > 1; } public get directionInfo() { return !this.isMultiple ? "Tek Yön" : "Gidiş Dönüş"; } public get directions() { try { const transferSegmentGroup = this.transferSegmentGroups[0]?.Items![0]; const [, origin, destination] = transferSegmentGroup!.Name.split(" - "); return { origin, destination }; } catch (_) { return { origin: "", destination: "" }; } } public get dates() { try { const departureTransfer = this.transferSegmentGroups[0]?.Items![0]; const arrivalTransfer = this.transferSegmentGroups[1]?.Items![0]; return { departureDate: departureTransfer!.DepartureTime, arrivalDate: arrivalTransfer!.DepartureTime, }; } catch (_) { return { departureDate: undefined, arrivalDate: undefined, }; } } public get passengerCount() { return this.transferBookingRequest.passengerInformations?.length ?? 0; } }