getRemainingTime method

int getRemainingTime(
  1. BookingHistory item
)

Implementation

int getRemainingTime(BookingHistory item) {
  final now = DateTime.now();
  if (item.isRateConfirmed || item.isSaved) {
    DateTime departureDate = DateTime.tryParse(item.departureDate ?? '') ?? DateTime(1971);
    List<String> departureTime = (item.departureTime ?? '00:00').split(':');
    int hours = int.parse(departureTime[0]);
    int minutes = int.parse(departureTime[1]);

    DateTime combinedDateTime = DateTime(
      departureDate.year,
      departureDate.month,
      departureDate.day,
      hours,
      minutes,
    ).subtract(const Duration(hours: 12));
    final elapsedTime = combinedDateTime.difference(now);
    return elapsedTime.inSeconds;
  } else {
    final elapsedTime = now.difference(DateTime.tryParse(((item.isDiscountedFlight??false) && item.isRoundTrip)? FlightSearchUtils().convertUnixTimestampSecondsToDateTime(item.approvedAt ?? 0).toString() : item.createdAt ?? '') ?? DateTime(1971));
    return (Duration(minutes:  item.isNonDiscounted ? 8 : 15) - elapsedTime).inSeconds;
  }
}