using ZB.MOM.WW.OtOpcUa.Core.Abstractions;

namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime;

/// <summary>
///     Driver-side handle returned by <see cref="GalaxyDriver.SubscribeAlarmsAsync"/>.
///     The driver doesn't multiplex alarm transitions per handle — every active handle
///     observes the gateway's alarm-event stream — but the handle is needed for
///     symmetric Unsubscribe and for the server-side AlarmConditionService to
///     correlate transitions with the originating subscription.
/// </summary>
internal sealed class GalaxyAlarmSubscriptionHandle : IAlarmSubscriptionHandle
{
    /// <summary>Initializes a new instance of the GalaxyAlarmSubscriptionHandle class.</summary>
    /// <param name="diagnosticId">The diagnostic ID for the subscription.</param>
    public GalaxyAlarmSubscriptionHandle(string diagnosticId)
    {
        DiagnosticId = diagnosticId;
    }

    /// <inheritdoc />
    public string DiagnosticId { get; }
}
