From 97908d274ee12eb2301fadd5fc445d0f79479a56 Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Sat, 4 Apr 2026 15:44:41 +0200 Subject: Enhance arrival and transit functionality with new vehicle operation logic and transit kind classification --- .../Helpers/TransitKindClassifier.cs | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs (limited to 'src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs') 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 +} -- cgit v1.3