using System;

namespace ZB.MOM.WW.MxGateway.Worker.MxAccess;

/// <summary>
///     One transition emitted by the consumer's snapshot diff. Pairs the
///     latest record with its previous state so the proto layer can decide
///     whether the transition is a Raise / Acknowledge / Clear.
/// </summary>
public sealed class MxAlarmTransitionEvent : EventArgs
{
    /// <summary>Gets or sets the latest alarm snapshot record.</summary>
    public MxAlarmSnapshotRecord Record { get; set; } = new MxAlarmSnapshotRecord();

    /// <summary>
    ///     The state on the consumer's previous polled snapshot, or
    ///     <see cref="MxAlarmStateKind.Unspecified"/> when this is the
    ///     first time the GUID has been observed.
    /// </summary>
    public MxAlarmStateKind PreviousState { get; set; }
}
