namespace ZB.MOM.WW.OtOpcUa.Commons.Messages.Alerts; /// /// Live alarm transition published on the cluster alerts DistributedPubSub topic. /// Emitted by ScriptedAlarmActor (and future native-alarm bridges) when an alarm condition /// transitions; consumed by AlertSignalRBridge for browser fan-out and by historian /// adapters for durable storage. /// /// Stable condition identity (matches ScriptedAlarm.ScriptedAlarmId for scripted alarms). /// UNS path of the Equipment node the alarm hangs under. Doubles as the SourceNode. /// Operator-visible alarm name. /// Activated / Cleared / Acknowledged / Confirmed / Shelved / Unshelved / Disabled / Enabled / CommentAdded. /// 1–1000 numeric severity (OPC UA convention). /// Fully-rendered message text — template tokens already resolved. /// Operator who triggered the transition. "system" for engine-driven events. /// When the transition occurred. /// OPC UA Part 9 condition subtype name — one of LimitAlarm / DiscreteAlarm / OffNormalAlarm / AlarmCondition (the base type, used as the default). The historian feed maps this onto the durable alarm-type column. /// Operator-supplied comment on ack / confirm / comment transitions; null for engine-driven transitions (Activated / Cleared / Shelved / …) that carry no comment. public sealed record AlarmTransitionEvent( string AlarmId, string EquipmentPath, string AlarmName, string TransitionKind, int Severity, string Message, string User, DateTime TimestampUtc, string AlarmTypeName = "AlarmCondition", string? Comment = null);