using ScadaLink.Commons.Messages.Health;

namespace ScadaLink.HealthMonitoring;

/// <summary>
/// Provides cluster node status information for health reporting.
/// Implemented by the Host project which has access to the Akka.NET actor system.
/// </summary>
public interface IClusterNodeProvider
{
    IReadOnlyList<NodeStatus> GetClusterNodes();

    /// <summary>
    /// True when this node is currently the cluster leader (Primary) for the
    /// provider's role scope. Used by the central report loop to decide which
    /// node should generate the "central" health report.
    /// </summary>
    bool SelfIsPrimary { get; }
}
