aboutsummaryrefslogtreecommitdiff
path: root/src/Costasdev.Busurbano.Backend/Types
diff options
context:
space:
mode:
Diffstat (limited to 'src/Costasdev.Busurbano.Backend/Types')
-rw-r--r--src/Costasdev.Busurbano.Backend/Types/Arrivals/Arrival.cs82
-rw-r--r--src/Costasdev.Busurbano.Backend/Types/Arrivals/StopArrivalsResponse.cs15
-rw-r--r--src/Costasdev.Busurbano.Backend/Types/Otp/OtpModels.cs4
-rw-r--r--src/Costasdev.Busurbano.Backend/Types/Planner/PlannerResponse.cs (renamed from src/Costasdev.Busurbano.Backend/Types/Planner/PlannerModels.cs)0
4 files changed, 99 insertions, 2 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Types/Arrivals/Arrival.cs b/src/Costasdev.Busurbano.Backend/Types/Arrivals/Arrival.cs
new file mode 100644
index 0000000..c813ccf
--- /dev/null
+++ b/src/Costasdev.Busurbano.Backend/Types/Arrivals/Arrival.cs
@@ -0,0 +1,82 @@
+using System.Text.Json.Serialization;
+
+namespace Costasdev.Busurbano.Backend.Types.Arrivals;
+
+public class Arrival
+{
+ [JsonPropertyName("route")]
+ public required RouteInfo Route { get; set; }
+
+ [JsonPropertyName("headsign")]
+ public required HeadsignInfo Headsign { get; set; }
+
+ [JsonPropertyName("estimate")]
+ public required ArrivalDetails Estimate { get; set; }
+
+ [JsonPropertyName("delay")]
+ public DelayBadge? Delay { get; set; }
+
+ [JsonPropertyName("shift")]
+ public ShiftBadge? Shift { get; set; }
+}
+
+public class RouteInfo
+{
+ [JsonPropertyName("shortName")]
+ public required string ShortName { get; set; }
+
+ [JsonPropertyName("colour")]
+ public required string Colour { get; set; }
+
+ [JsonPropertyName("textColour")]
+ public required string TextColour { get; set; }
+}
+
+public class HeadsignInfo
+{
+ [JsonPropertyName("badge")]
+ public string? Badge { get; set; }
+
+ [JsonPropertyName("destination")]
+ public required string Destination { get; set; }
+
+ [JsonPropertyName("marquee")]
+ public string? Marquee { get; set; }
+}
+
+public class ArrivalDetails
+{
+ [JsonPropertyName("minutes")]
+ public required int Minutes { get; set; }
+
+ [JsonPropertyName("precission")]
+ public ArrivalPrecission Precission { get; set; } = ArrivalPrecission.Scheduled;
+}
+
+[JsonConverter(typeof(JsonStringEnumConverter))]
+public enum ArrivalPrecission
+{
+ [JsonStringEnumMemberName("confident")]
+ Confident = 0,
+ [JsonStringEnumMemberName("unsure")]
+ Unsure = 1,
+ [JsonStringEnumMemberName("scheduled")]
+ Scheduled = 2,
+ [JsonStringEnumMemberName("past")]
+ Past = 3
+}
+
+public class DelayBadge
+{
+ [JsonPropertyName("minutes")]
+ public int Minutes { get; set; }
+}
+
+public class ShiftBadge
+{
+ [JsonPropertyName("shiftName")]
+ public string ShiftName { get; set; }
+
+ [JsonPropertyName("shiftTrip")]
+ public string ShiftTrip { get; set; }
+}
diff --git a/src/Costasdev.Busurbano.Backend/Types/Arrivals/StopArrivalsResponse.cs b/src/Costasdev.Busurbano.Backend/Types/Arrivals/StopArrivalsResponse.cs
new file mode 100644
index 0000000..8c5438c
--- /dev/null
+++ b/src/Costasdev.Busurbano.Backend/Types/Arrivals/StopArrivalsResponse.cs
@@ -0,0 +1,15 @@
+using System.Text.Json.Serialization;
+
+namespace Costasdev.Busurbano.Backend.Types.Arrivals;
+
+public class StopArrivalsResponse
+{
+ [JsonPropertyName("stopCode")]
+ public required string StopCode { get; set; }
+
+ [JsonPropertyName("stopName")]
+ public required string StopName { get; set; }
+
+ [JsonPropertyName("arrivals")]
+ public List<Arrival> Arrivals { get; set; } = [];
+}
diff --git a/src/Costasdev.Busurbano.Backend/Types/Otp/OtpModels.cs b/src/Costasdev.Busurbano.Backend/Types/Otp/OtpModels.cs
index 1c47a4a..b67663d 100644
--- a/src/Costasdev.Busurbano.Backend/Types/Otp/OtpModels.cs
+++ b/src/Costasdev.Busurbano.Backend/Types/Otp/OtpModels.cs
@@ -98,7 +98,7 @@ public class OtpLeg
public OtpGeometry? LegGeometry { get; set; }
[JsonPropertyName("steps")]
- public List<OtpWalkStep> Steps { get; set; } = new();
+ public List<OtpWalkStep> Steps { get; set; } = [];
[JsonPropertyName("headsign")]
public string? Headsign { get; set; }
@@ -113,7 +113,7 @@ public class OtpLeg
public string? RouteTextColor { get; set; }
[JsonPropertyName("intermediateStops")]
- public List<OtpPlace> IntermediateStops { get; set; } = new();
+ public List<OtpPlace> IntermediateStops { get; set; } = [];
}
public class OtpPlace
diff --git a/src/Costasdev.Busurbano.Backend/Types/Planner/PlannerModels.cs b/src/Costasdev.Busurbano.Backend/Types/Planner/PlannerResponse.cs
index c31d12a..c31d12a 100644
--- a/src/Costasdev.Busurbano.Backend/Types/Planner/PlannerModels.cs
+++ b/src/Costasdev.Busurbano.Backend/Types/Planner/PlannerResponse.cs