feat(commons): IsMesReportable on TemplateAlarm, ResolvedAlarm; IsMesReportableOverride on InstanceAlarmOverride

Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB
This commit is contained in:
Joseph Doherty
2026-09-11 09:52:34 -04:00
parent 73f2a032e0
commit b07394447f
3 changed files with 14 additions and 0 deletions
@@ -43,6 +43,11 @@ public class InstanceAlarmOverride
/// </summary>
public int? PriorityLevelOverride { get; set; }
/// <summary>
/// Replaces the alarm's <c>IsMesReportable</c> flag when set. <c>null</c> = keep inherited.
/// </summary>
public bool? IsMesReportableOverride { get; set; }
/// <summary>
/// Initializes a new alarm override for the specified alarm.
/// </summary>
@@ -16,6 +16,13 @@ public class TemplateAlarm
public int PriorityLevel { get; set; }
/// <summary>When true, this alarm is locked and cannot be overridden in derived templates.</summary>
public bool IsLocked { get; set; }
/// <summary>
/// When true, the alarm is reported to MES by the alarm-status API
/// (<c>IsFlaggedForMES</c> on the legacy contract). Default false. Overridable per
/// instance via <see cref="ZB.MOM.WW.ScadaBridge.Commons.Entities.Instances.InstanceAlarmOverride.IsMesReportableOverride"/>
/// unless the alarm is locked.
/// </summary>
public bool IsMesReportable { get; set; }
/// <summary>Type of trigger condition that activates this alarm.</summary>
public AlarmTriggerType TriggerType { get; set; }
/// <summary>JSON-serialized trigger configuration specific to the <see cref="TriggerType"/>.</summary>
@@ -123,6 +123,8 @@ public sealed record ResolvedAlarm
public int PriorityLevel { get; init; }
/// <summary>Gets whether the alarm is locked.</summary>
public bool IsLocked { get; init; }
/// <summary>Gets whether the alarm is reported to MES (template value after any instance override).</summary>
public bool IsMesReportable { get; init; }
/// <summary>Gets the trigger type.</summary>
public string TriggerType { get; init; } = string.Empty;