namespace ZB.MOM.WW.LmxProxy.Client.Domain;

/// <summary>
/// OPC-style quality codes for SCADA data values.
/// Byte value matches OPC DA quality low byte for direct round-trip.
/// </summary>
public enum Quality : byte
{
    // ─────────────── Bad family (0-31) ───────────────
    Bad = 0,
    Bad_ConfigError = 4,
    Bad_NotConnected = 8,
    Bad_DeviceFailure = 12,
    Bad_SensorFailure = 16,
    Bad_LastKnownValue = 20,
    Bad_CommFailure = 24,
    Bad_OutOfService = 28,
    Bad_WaitingForInitialData = 32,

    // ──────────── Uncertain family (64-95) ───────────
    Uncertain = 64,
    Uncertain_LowLimited = 65,
    Uncertain_HighLimited = 66,
    Uncertain_Constant = 67,
    Uncertain_LastUsable = 68,
    Uncertain_LastUsable_LL = 69,
    Uncertain_LastUsable_HL = 70,
    Uncertain_LastUsable_Cnst = 71,
    Uncertain_SensorNotAcc = 80,
    Uncertain_SensorNotAcc_LL = 81,
    Uncertain_SensorNotAcc_HL = 82,
    Uncertain_SensorNotAcc_C = 83,
    Uncertain_EuExceeded = 84,
    Uncertain_EuExceeded_LL = 85,
    Uncertain_EuExceeded_HL = 86,
    Uncertain_EuExceeded_C = 87,
    Uncertain_SubNormal = 88,
    Uncertain_SubNormal_LL = 89,
    Uncertain_SubNormal_HL = 90,
    Uncertain_SubNormal_C = 91,

    // ─────────────── Good family (192-219) ────────────
    Good = 192,
    Good_LowLimited = 193,
    Good_HighLimited = 194,
    Good_Constant = 195,
    Good_LocalOverride = 216,
    Good_LocalOverride_LL = 217,
    Good_LocalOverride_HL = 218,
    Good_LocalOverride_C = 219
}
