From b07394447fe9667dc23784f1378f3bb14c09b586 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 11 Sep 2026 09:52:34 -0400 Subject: [PATCH] feat(commons): IsMesReportable on TemplateAlarm, ResolvedAlarm; IsMesReportableOverride on InstanceAlarmOverride Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB --- .../Entities/Instances/InstanceAlarmOverride.cs | 5 +++++ .../Entities/Templates/TemplateAlarm.cs | 7 +++++++ .../Types/Flattening/FlattenedConfiguration.cs | 2 ++ 3 files changed, 14 insertions(+) diff --git a/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Instances/InstanceAlarmOverride.cs b/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Instances/InstanceAlarmOverride.cs index b07eedeb..71650a90 100644 --- a/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Instances/InstanceAlarmOverride.cs +++ b/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Instances/InstanceAlarmOverride.cs @@ -43,6 +43,11 @@ public class InstanceAlarmOverride /// public int? PriorityLevelOverride { get; set; } + /// + /// Replaces the alarm's IsMesReportable flag when set. null = keep inherited. + /// + public bool? IsMesReportableOverride { get; set; } + /// /// Initializes a new alarm override for the specified alarm. /// diff --git a/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Templates/TemplateAlarm.cs b/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Templates/TemplateAlarm.cs index baa80c3f..60413577 100644 --- a/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Templates/TemplateAlarm.cs +++ b/src/ZB.MOM.WW.ScadaBridge.Commons/Entities/Templates/TemplateAlarm.cs @@ -16,6 +16,13 @@ public class TemplateAlarm public int PriorityLevel { get; set; } /// When true, this alarm is locked and cannot be overridden in derived templates. public bool IsLocked { get; set; } + /// + /// When true, the alarm is reported to MES by the alarm-status API + /// (IsFlaggedForMES on the legacy contract). Default false. Overridable per + /// instance via + /// unless the alarm is locked. + /// + public bool IsMesReportable { get; set; } /// Type of trigger condition that activates this alarm. public AlarmTriggerType TriggerType { get; set; } /// JSON-serialized trigger configuration specific to the . diff --git a/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Flattening/FlattenedConfiguration.cs b/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Flattening/FlattenedConfiguration.cs index 6f468538..934a9a75 100644 --- a/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Flattening/FlattenedConfiguration.cs +++ b/src/ZB.MOM.WW.ScadaBridge.Commons/Types/Flattening/FlattenedConfiguration.cs @@ -123,6 +123,8 @@ public sealed record ResolvedAlarm public int PriorityLevel { get; init; } /// Gets whether the alarm is locked. public bool IsLocked { get; init; } + /// Gets whether the alarm is reported to MES (template value after any instance override). + public bool IsMesReportable { get; init; } /// Gets the trigger type. public string TriggerType { get; init; } = string.Empty;