aboutsummaryrefslogtreecommitdiff
path: root/src/Costasdev.Busurbano.Backend/Types
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2025-11-06 00:29:25 +0100
committerAriel Costas Guerrero <ariel@costas.dev>2025-11-06 00:29:25 +0100
commit236d760d20a5ade402f8e4e4da92332a09f0bcde (patch)
tree75598c091dc46616bab593a42617fd243cf5fade /src/Costasdev.Busurbano.Backend/Types
parent234d069f74499872a1d6612dc1c3dff418c52f20 (diff)
Begin (poorly) implementing merging scheduled and real-time data
Diffstat (limited to 'src/Costasdev.Busurbano.Backend/Types')
-rw-r--r--src/Costasdev.Busurbano.Backend/Types/VigoSchedules.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Types/VigoSchedules.cs b/src/Costasdev.Busurbano.Backend/Types/VigoSchedules.cs
new file mode 100644
index 0000000..d6012e5
--- /dev/null
+++ b/src/Costasdev.Busurbano.Backend/Types/VigoSchedules.cs
@@ -0,0 +1,38 @@
+using System.Text.Json.Serialization;
+
+namespace Costasdev.Busurbano.Backend.Types;
+
+public class ScheduledStop
+{
+ [JsonPropertyName("line")] public required Line Line { get; set; }
+ [JsonPropertyName("trip")] public required Trip Trip { get; set; }
+ [JsonPropertyName("route_id")] public required string RouteId { get; set; }
+ [JsonPropertyName("departure_time")] public required string DepartureTime { get; set; }
+
+ public DateTime DepartureDateTime()
+ {
+ var dt = DateTime.Today + TimeOnly.Parse(DepartureTime).ToTimeSpan();
+ return dt.AddSeconds(60 - dt.Second);
+ }
+
+ [JsonPropertyName("stop_sequence")] public required int StopSequence { get; set; }
+
+ [JsonPropertyName("shape_dist_traveled")]
+ public required float ShapeDistTraveled { get; set; }
+
+ [JsonPropertyName("next_streets")] public required string[] NextStreets { get; set; }
+}
+
+public class Line
+{
+ [JsonPropertyName("name")] public required string Name { get; set; }
+ [JsonPropertyName("colour")] public required string Colour { get; set; }
+}
+
+public class Trip
+{
+ [JsonPropertyName("id")] public required string Id { get; set; }
+ [JsonPropertyName("service_id")] public required string ServiceId { get; set; }
+ [JsonPropertyName("headsign")] public required string Headsign { get; set; }
+ [JsonPropertyName("direction_id")] public required int DirectionId { get; set; }
+}