namespace ZB.MOM.WW.MxGateway.Server.Alarms;
///
/// Well-known reason strings carried on the alarm feed's
/// AlarmProviderStatus message. Shared between the producer
/// () and consumers (e.g. the dashboard
/// provider badge) so the two cannot drift on a magic string.
///
public static class AlarmProviderReasons
{
///
/// Reason set when the monitor starts in subtag mode because
/// MxGateway:Alarms:Fallback:Mode is ForceSubtag — a
/// deliberate configuration, not a runtime failover. Lets the dashboard
/// distinguish a forced subtag mode from an unexpected degraded failover.
///
public const string ForcedSubtag = "Forced subtag mode (configuration)";
///
/// Reason prefix set when the effective mode can need the subtag watch-list
/// (Auto or ForceSubtag) but the list resolved to zero targets, so the
/// subtag provider covers no alarms. In Auto this is a warning about the
/// standby, not about the currently-serving alarm manager, which is why the dashboard
/// renders it against the ALARMMGR mode as a coverage badge rather than a failover.
///
public const string SubtagWatchListEmpty =
"Subtag watch-list is empty: the subtag provider covers no alarms";
///
/// Reason prefix set when Galaxy Repository alarm discovery was enabled but failed, so
/// the watch-list carries only what configuration contributed and may be incomplete
/// . Distinct from : discovery failing with a
/// usable config-only list is a completeness warning, not a total loss of coverage.
///
public const string SubtagDiscoveryFailed =
"Galaxy Repository alarm discovery failed: the subtag watch-list may be incomplete";
///
/// Reason prefix set when a re-resolution at the failover edge produced a different
/// watch-list than the one sent at SubscribeAlarms. The worker keeps the
/// list it was given for the life of the subscription, so the difference is reported
/// rather than applied; a monitor restart re-resolves and re-sends.
///
public const string SubtagWatchListStale =
"Subtag watch-list differs from the one the worker is using";
}