namespace ScadaLink.DataConnectionLayer;

/// <summary>
/// Configuration options for the Data Connection Layer.
/// </summary>
public class DataConnectionOptions
{
    /// <summary>Fixed interval between reconnect attempts after disconnect.</summary>
    public TimeSpan ReconnectInterval { get; set; } = TimeSpan.FromSeconds(5);

    /// <summary>Interval for retrying failed tag path resolution.</summary>
    public TimeSpan TagResolutionRetryInterval { get; set; } = TimeSpan.FromSeconds(10);

    /// <summary>Timeout for synchronous write operations to devices.</summary>
    public TimeSpan WriteTimeout { get; set; } = TimeSpan.FromSeconds(30);

    /// <summary>
    /// Minimum time a connection must stay up before it is considered stable.
    /// If a connection drops before this threshold, it counts as an unstable
    /// disconnect toward the failover retry count (DataConnectionLayer-009).
    /// </summary>
    public TimeSpan StableConnectionThreshold { get; set; } = TimeSpan.FromSeconds(60);
}
