aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-03-16 16:44:43 +0100
committerAriel Costas Guerrero <ariel@costas.dev>2026-03-16 16:44:43 +0100
commitfbcf5ecb762b3cff314b9339aec3314bb813a3fe (patch)
tree7a4237ddb06188decf35aedd60f13c5c078429dc /src/Enmarcha.Backend
parentac626a9c2edc2e528eb0b39002c836a747b2fc16 (diff)
Display operator name on xunta arrivals
Diffstat (limited to 'src/Enmarcha.Backend')
-rw-r--r--src/Enmarcha.Backend/Controllers/ArrivalsController.cs3
-rw-r--r--src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs2
-rw-r--r--src/Enmarcha.Backend/Types/Arrivals/Arrival.cs13
3 files changed, 17 insertions, 1 deletions
diff --git a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
index 861038f..8ce63f7 100644
--- a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
+++ b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
@@ -146,6 +146,8 @@ public partial class ArrivalsController : ControllerBase
var tz = TimeZoneInfo.FindSystemTimeZoneById("Europe/Madrid");
var nowLocal = TimeZoneInfo.ConvertTime(DateTime.UtcNow, tz);
+ var feedId = id.Split(':')[0];
+
var requestContent = ArrivalsAtStopContent.Query(new ArrivalsAtStopContent.Args(id, reduced || nano));
var request = new HttpRequestMessage(HttpMethod.Post, $"{_config.OpenTripPlannerBaseUrl}/gtfs/v1");
@@ -192,6 +194,7 @@ public partial class ArrivalsController : ControllerBase
Minutes = minutesToArrive,
Precision = departureTime < nowLocal.AddMinutes(-1) ? ArrivalPrecision.Past : ArrivalPrecision.Scheduled
},
+ Operator = feedId == "xunta" ? item.Trip.Route.Agency?.Name : null,
RawOtpTrip = item
});
}
diff --git a/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs b/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs
index 84e0d0f..6a76fe3 100644
--- a/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs
+++ b/src/Enmarcha.Backend/Services/Processors/NextStopsProcessor.cs
@@ -94,7 +94,7 @@ public class NextStopsProcessor : IArrivalsProcessor
if (!seenConcellos.Contains(concello))
{
seenConcellos.Add(concello);
- item += $" ({concello})";
+ item = $"({concello}) {item}";
}
items.Add(item);
diff --git a/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs b/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs
index a07c988..bdcae07 100644
--- a/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs
+++ b/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs
@@ -20,6 +20,9 @@ public class Arrival
[JsonPropertyName("currentPosition")] public Position? CurrentPosition { get; set; }
+ [JsonPropertyName("operator")] public string? Operator { get; set; }
+ [JsonPropertyName("operation")] public VehicleOperation Operation { get; set; } = VehicleOperation.PickupDropoff;
+
[JsonPropertyName("vehicleInformation")]
public VehicleBadge? VehicleInformation { get; set; }
@@ -35,6 +38,16 @@ public class Arrival
[JsonIgnore] public bool Delete { get; set; }
}
+public enum VehicleOperation
+{
+ [JsonStringEnumMemberName("pickup_dropoff")]
+ PickupDropoff = 0,
+ [JsonStringEnumMemberName("pickup_only")]
+ PickupOnly = 1,
+ [JsonStringEnumMemberName("dropoff_only")]
+ DropoffOnly = 2
+}
+
public class RouteInfo
{
[JsonPropertyName("gtfsId")] public required string GtfsId { get; set; }