aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs')
-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
+}