aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Helpers
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-04-04 15:44:41 +0200
committerAriel Costas Guerrero <ariel@costas.dev>2026-04-04 15:44:41 +0200
commit97908d274ee12eb2301fadd5fc445d0f79479a56 (patch)
tree04eee0ad547cc68047011dea82549dcad4a0d0d8 /src/Enmarcha.Backend/Helpers
parent1b4f4a674ac533c0b51260ba35ab91dd2cf9486d (diff)
Enhance arrival and transit functionality with new vehicle operation logic and transit kind classification
Diffstat (limited to 'src/Enmarcha.Backend/Helpers')
-rw-r--r--src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs b/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs
new file mode 100644
index 0000000..5caf9fc
--- /dev/null
+++ b/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs
@@ -0,0 +1,38 @@
+using System.Text.Json.Serialization;
+
+namespace Enmarcha.Backend.Helpers;
+
+public class TransitKindClassifier
+{
+ public static TransitKind KindByFeed(string feedId)
+ {
+ return feedId switch
+ {
+ "vitrasa" or "tussa" or "tranvias" or "shuttle" or "ourense" => TransitKind.Bus,
+ "xunta" => TransitKind.Coach,
+ "renfe" or "feve" => TransitKind.Train,
+ _ => TransitKind.Unknown
+ };
+ }
+
+ public static string StringByFeed(string feedId)
+ {
+ var kind = KindByFeed(feedId);
+ return kind switch
+ {
+ TransitKind.Bus => "bus",
+ TransitKind.Coach => "coach",
+ TransitKind.Train => "train",
+ TransitKind.Unknown => "unknown",
+ _ => throw new ArgumentOutOfRangeException(nameof(kind), kind, null)
+ };
+ }
+}
+
+public enum TransitKind
+{
+ [JsonStringEnumMemberName("bus")] Bus,
+ [JsonStringEnumMemberName("coach")] Coach,
+ [JsonStringEnumMemberName("train")] Train,
+ [JsonStringEnumMemberName("unknown")] Unknown
+}