namespace ZB.MOM.WW.MxGateway.Server.Metrics;

/// <summary>
///     Bounded classification of an alarm-provider switch, used as the low-cardinality
///     <c>reason</c> tag on the <c>mxgateway.alarms.provider_switches</c> counter. The
///     worker supplies a free-text reason (e.g. <c>"primary PollOnce failed"</c>) that
///     stays in the structured log; only this bounded value reaches the metric tag so the
///     time series cannot fan out on operation-specific text.
/// </summary>
public enum AlarmProviderSwitchReason
{
    /// <summary>The switch direction could not be classified.</summary>
    Unknown = 0,

    /// <summary>Switched from the primary (alarmmgr) provider to the subtag standby — degraded.</summary>
    Failover = 1,

    /// <summary>Switched back from the subtag standby to the primary (alarmmgr) provider — recovered.</summary>
    Failback = 2,
}
