using ZB.MOM.WW.OtOpcUa.Commons.Types;

namespace ZB.MOM.WW.OtOpcUa.Commons.Interfaces;

public sealed record DriverInstanceDiagnostics(
    Guid DriverInstanceId,
    string Name,
    string State,
    int ConnectedDevices,
    int FaultedDevices,
    DateTime LastChangeUtc);

/// <summary>
/// Per-node diagnostics returned by <c>IFleetDiagnosticsClient</c>. Populated by the node's
/// local <c>DriverHostActor</c> via a request/response over Akka.
/// </summary>
public sealed record NodeDiagnosticsSnapshot(
    NodeId NodeId,
    RevisionHash? CurrentRevision,
    IReadOnlyList<DriverInstanceDiagnostics> Drivers,
    DateTime AsOfUtc);
