namespace Admin.NET.Plugin.AiDOP.Infrastructure.S8; /// /// 异常状态合法流转(与 S8 方案文档 3.5 节一致)。 /// public static class S8StatusRules { private static readonly HashSet<(string From, string To)> Edges = new() { ("NEW", "ASSIGNED"), ("NEW", "REJECTED"), ("ASSIGNED", "IN_PROGRESS"), ("ASSIGNED", "ESCALATED"), ("ASSIGNED", "REJECTED"), ("IN_PROGRESS", "RESOLVED"), ("IN_PROGRESS", "PENDING_VERIFICATION"), ("PENDING_VERIFICATION", "RESOLVED"), ("PENDING_VERIFICATION", "IN_PROGRESS"), ("IN_PROGRESS", "ESCALATED"), ("IN_PROGRESS", "REJECTED"), ("RESOLVED", "CLOSED"), ("RESOLVED", "IN_PROGRESS"), ("ESCALATED", "ASSIGNED"), ("ESCALATED", "IN_PROGRESS"), ("REJECTED", "NEW"), }; public static bool IsAllowedTransition(string from, string to) => Edges.Contains((from, to)); public static bool IsTerminal(string status) => status == "CLOSED"; }