convertTripToTimeline static method
Implementation
static List<TimelineModel> convertTripToTimeline(BookingDetails history, List<options.Flights> flights, bool isDeparture) {
final tripFlights = flights.where((flight) => flight.flightType == (isDeparture ? 'departure': 'return')).toList();
if (tripFlights.isEmpty) {
return [];
}
final numFlights = tripFlights.length;
final timeline = <TimelineModel>[];
for (int i = 0; i < numFlights; i++) {
timeline.add(
TimelineModel(
departureDate: tripFlights[i].departureDate ?? '',
departureTime: tripFlights[i].departureTime ?? '',
departureAirport: tripFlights[i].fromAirport?.first.display1 ?? '',
arrivalDate: tripFlights[i].arrivalDate ?? '',
arrivalTime: tripFlights[i].arrivalTime ?? '',
arrivalAirport: tripFlights[i].toAirport?.first.display1 ?? '',
travelTime: convertMinutesIntoHourTime(int.tryParse(tripFlights[i].travelTime ?? '') ?? 0),
layoverAirport: i == numFlights - 1 ? null : tripFlights[i + 1].fromAirport?.first.name ?? '',
layoverDuration: i == numFlights - 1 ? null : convertMinutesIntoHourTime(tripFlights[i + 1].layoverDuration ?? 0),
),
);
}
return timeline;
}