using System;
namespace ZB.MOM.WW.MxGateway.Worker.MxAccess;
///
/// Single alarm record as emitted by the wnwrapConsumer XML stream.
/// Field names match the captured XML schema (see
/// docs/AlarmClientDiscovery.md "Option A — captured" section).
/// Records are also produced by the subtag synthesis path when
/// is set.
///
public sealed class MxAlarmSnapshotRecord
{
/// Gets or sets the unique alarm identifier.
public Guid AlarmGuid { get; set; }
/// Gets or sets the UTC timestamp of the transition.
public DateTime TransitionTimestampUtc { get; set; }
/// Gets or sets the provider node name.
public string ProviderNode { get; set; } = string.Empty;
/// Gets or sets the provider name.
public string ProviderName { get; set; } = string.Empty;
/// Gets or sets the alarm group.
public string Group { get; set; } = string.Empty;
/// Gets or sets the tag name.
public string TagName { get; set; } = string.Empty;
/// Gets or sets the alarm type.
public string Type { get; set; } = string.Empty;
/// Gets or sets the alarm value.
public string Value { get; set; } = string.Empty;
/// Gets or sets the alarm limit.
public string Limit { get; set; } = string.Empty;
/// Gets or sets the alarm priority.
public int Priority { get; set; }
/// Gets or sets the alarm state.
public MxAlarmStateKind State { get; set; }
/// Gets or sets the operator node name.
public string OperatorNode { get; set; } = string.Empty;
/// Gets or sets the operator name.
public string OperatorName { get; set; } = string.Empty;
/// Gets or sets the alarm comment.
public string AlarmComment { get; set; } = string.Empty;
///
/// Gets or sets a value indicating whether this record was synthesized
/// by the subtag-provider fallback rather than emitted by the native
/// alarmmgr (wnwrap) path. Default preserves
/// parity for the alarmmgr path; the subtag fallback sets it to
/// .
///
public bool Degraded { get; set; }
}