You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

253 lines
7.6 KiB

1 year ago
  1. using GMCabsDriverAssistant.Enums;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Text.Json.Serialization;
  6. namespace GMCabsDriverAssistant.Models
  7. {
  8. public class BookingDto
  9. {
  10. [JsonPropertyName("booking_id")]
  11. public Guid BookingId { get; set; }
  12. [JsonPropertyName("discount")]
  13. public decimal Discount { get; set; }
  14. [JsonPropertyName("start_address")]
  15. public string StartAddress { get; set; }
  16. [JsonPropertyName("start_suburb")]
  17. public string StartSuburb { get; set; }
  18. [JsonPropertyName("end_address")]
  19. public string EndAddress { get; set; }
  20. [JsonPropertyName("end_suburb")]
  21. public string EndSuburb { get; set; }
  22. [JsonPropertyName("future_booking")]
  23. public bool FutureBooking { get; set; }
  24. [JsonPropertyName("next_available")]
  25. public bool NextAvailable { get; set; }
  26. [JsonPropertyName("notes")]
  27. public string Notes { get; set; }
  28. [JsonPropertyName("taxi_type_id")]
  29. public int? TaxiTypeId { get; set; }
  30. [JsonPropertyName("fixed_amount")]
  31. public int? FixedAmount { get; set; }
  32. [JsonPropertyName("min_fare_amount")]
  33. public int? MinFareAmount { get; set; }
  34. [JsonPropertyName("provider_charge_fixed_fare")]
  35. public int? ProviderChargeFixedFare { get; set; }
  36. [JsonPropertyName("provider_charge_meter_fare")]
  37. public int? ProviderChargeMeterFare { get; set; }
  38. [JsonPropertyName("provider_charge_fixed_fare_preferred")]
  39. public int? ProviderChargeFixedFarePreferred { get; set; }
  40. [JsonPropertyName("provider_charge_meter_fare_preferred")]
  41. public int? ProviderChargeMeterFarePreferred { get; set; }
  42. [JsonPropertyName("pre_tip")]
  43. public int? PreTip { get; set; }
  44. [JsonPropertyName("start_time_local")]
  45. public int StartTimeLocal { get; set; }
  46. [JsonPropertyName("start_time_utc")]
  47. public int StartTimeUtc { get; set; }
  48. [JsonPropertyName("luggage_count")]
  49. public int LuggageCount { get; set; }
  50. [JsonPropertyName("passenger_count")]
  51. public int PassengerCount { get; set; }
  52. [JsonPropertyName("service_type_id")]
  53. public int ServiceTypeId { get; set; }
  54. [JsonPropertyName("passenger_phone_number")]
  55. public string PassengerPhoneNumber { get; set; }
  56. [JsonPropertyName("passenger_name")]
  57. public string PassengerName { get; set; }
  58. [JsonPropertyName("voucher_amount")]
  59. public decimal VoucherAmount { get; set; }
  60. [JsonPropertyName("latitude")]
  61. public double Latitude { get; set; }
  62. [JsonPropertyName("longitude")]
  63. public double Longitude { get; set; }
  64. [JsonPropertyName("distance")]
  65. public float Distance { get; set; }
  66. public string FormattedDistance
  67. {
  68. get => (Distance >= 1000) ? $"{Distance / 1000:0.##}k" : $"{(int)Distance}m";
  69. }
  70. [JsonPropertyName("estimate_fare")]
  71. public decimal EstimateFare { get; set; }
  72. [JsonPropertyName("is_corporate")]
  73. public bool IsCorporate { get; set; }
  74. [JsonPropertyName("in_hail")]
  75. public bool InHail { get; set; }
  76. [JsonPropertyName("payment_method_id")]
  77. public Guid? PaymentMethodId { get; set; }
  78. [JsonPropertyName("payment_method_verified")]
  79. public bool? PaymentMethodVerified { get; set; }
  80. [JsonPropertyName("rydo_stars")]
  81. public int RydoStars { get; set; }
  82. [JsonPropertyName("priority_driver")]
  83. public bool PriorityDriver { get; set; }
  84. [JsonPropertyName("end_latitude")]
  85. public double EndLatitude { get; set; }
  86. [JsonPropertyName("end_longitude")]
  87. public double EndLongitude { get; set; }
  88. [JsonPropertyName("start_latitude")]
  89. public double StartLatitude { get; set; }
  90. [JsonPropertyName("start_longitude")]
  91. public double StartLongitude { get; set; }
  92. [JsonPropertyName("payment_type")]
  93. public PaymentType PaymentType { get; set; }
  94. [JsonPropertyName("booking_type")]
  95. public BookingType BookingType { get; set; }
  96. [JsonPropertyName("pickup_time")]
  97. public int PickupTime { get; set; }
  98. [JsonPropertyName("fare_type")]
  99. public FareType FareType { get; set; }
  100. [JsonPropertyName("status_id")]
  101. public int StatusId { get; set; }
  102. [JsonPropertyName("status_code")]
  103. public string StatusCode { get; set; }
  104. [JsonPropertyName("delivered")]
  105. public bool Delivered { get; set; }
  106. [JsonPropertyName("ride_id")]
  107. public Guid? RideId { get; set; }
  108. [JsonPropertyName("fare_amount")]
  109. public int? FareAmount { get; set; }
  110. [JsonPropertyName("end_state")]
  111. public string EndState { get; set; }
  112. [JsonPropertyName("service_id")]
  113. public int ServiceId { get; set; }
  114. [JsonPropertyName("start_state")]
  115. public string StartState { get; set; }
  116. [JsonPropertyName("journey_distance")]
  117. public int JourneyDistance { get; set; }
  118. [JsonPropertyName("reward_points")]
  119. public int RewardPoints { get; set; }
  120. [JsonPropertyName("booking_fee")]
  121. public double BookingFee { get; set; }
  122. [JsonPropertyName("booking_fee_waived")]
  123. public bool BookingFeeWaived { get; set; }
  124. [JsonPropertyName("tip")]
  125. public int? Tip { get; set; }
  126. [JsonPropertyName("driver_number_plate")]
  127. public string DriverNumberPlate { get; set; }
  128. [JsonPropertyName("estimated_arrival_time")]
  129. public int EstimatedArrivalTime { get; set; }
  130. [JsonPropertyName("voucher_id")]
  131. public string VoucherId { get; set; }
  132. [JsonPropertyName("promotion_id")]
  133. public string PromotionId { get; set; }
  134. [JsonPropertyName("stored_cards_available")]
  135. public bool StoredCardsAvailable { get; set; }
  136. [JsonPropertyName("current_stop_number")]
  137. public int? CurrentStopNumber { get; set; }
  138. [JsonPropertyName("stopover_locations")]
  139. public IEnumerable<StopoverLocation> StopoverLocations { get; set; }
  140. public string FormattedPickUpTimeDateOnly
  141. {
  142. get
  143. {
  144. DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
  145. dateTime = dateTime.AddSeconds(PickupTime).ToLocalTime();
  146. return dateTime.ToString("dd/MM/yyyy");
  147. }
  148. }
  149. public string FormattedPickUpTimeTimeOnly
  150. {
  151. get
  152. {
  153. DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
  154. dateTime = dateTime.AddSeconds(PickupTime).ToLocalTime();
  155. return dateTime.ToString("HH:mm ttt");
  156. }
  157. }
  158. public string FormmattedPickUpDateTime
  159. {
  160. get
  161. {
  162. DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
  163. dateTime = dateTime.AddSeconds(PickupTime).ToLocalTime();
  164. return dateTime.ToString("dd/MM/yyyy HH:mm:ss");
  165. }
  166. }
  167. public bool IsSeenBooking { get; set; }
  168. }
  169. public class StopoverLocation
  170. {
  171. [JsonPropertyName("latitude")]
  172. public decimal Latitude { get; set; }
  173. [JsonPropertyName("longitude")]
  174. public decimal Longitude { get; set; }
  175. [JsonPropertyName("address")]
  176. public string Address { get; set; }
  177. [JsonPropertyName("stop_number")]
  178. public decimal StopNumber { get; set; }
  179. }
  180. }