From bee85bf92aab84087798ffa9f3f16336acef2fce Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Thu, 19 Mar 2026 18:56:34 +0100 Subject: Basic backoffice for alert management --- src/Enmarcha.Backend/Data/Models/AlertSelector.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/Enmarcha.Backend/Data/Models/AlertSelector.cs (limited to 'src/Enmarcha.Backend/Data/Models/AlertSelector.cs') diff --git a/src/Enmarcha.Backend/Data/Models/AlertSelector.cs b/src/Enmarcha.Backend/Data/Models/AlertSelector.cs new file mode 100644 index 0000000..34b2de3 --- /dev/null +++ b/src/Enmarcha.Backend/Data/Models/AlertSelector.cs @@ -0,0 +1,19 @@ +namespace Enmarcha.Backend.Data.Models; + +/// +/// Defines the scope of an alert (e.g., "stop#vitrasa:1400", "route#xunta:123"). +/// This follows a URI-like pattern for easy parsing and matching. +/// +public class AlertSelector +{ + public string Raw { get; set; } = string.Empty; + + public string Type => Raw.Split('#').FirstOrDefault() ?? string.Empty; + public string Id => Raw.Split('#').ElementAtOrDefault(1) ?? string.Empty; + + public static AlertSelector FromStop(string feedId, string stopId) => new() { Raw = $"stop#{feedId}:{stopId}" }; + public static AlertSelector FromRoute(string feedId, string routeId) => new() { Raw = $"route#{feedId}:{routeId}" }; + public static AlertSelector FromAgency(string feedId) => new() { Raw = $"agency#{feedId}" }; + + public override string ToString() => Raw; +} -- cgit v1.3