namespace ZB.MOM.WW.LmxProxy.Host.Configuration
{
    /// <summary>MxAccess connection settings.</summary>
    public class ConnectionConfiguration
    {
        /// <summary>Auto-reconnect check interval in seconds. Default: 5.</summary>
        public int MonitorIntervalSeconds { get; set; } = 5;

        /// <summary>Initial connection timeout in seconds. Default: 30.</summary>
        public int ConnectionTimeoutSeconds { get; set; } = 30;

        /// <summary>Per-read operation timeout in seconds. Default: 5.</summary>
        public int ReadTimeoutSeconds { get; set; } = 5;

        /// <summary>Per-write operation timeout in seconds. Default: 5.</summary>
        public int WriteTimeoutSeconds { get; set; } = 5;

        /// <summary>Semaphore limit for concurrent MxAccess operations. Default: 10.</summary>
        public int MaxConcurrentOperations { get; set; } = 10;

        /// <summary>Enable auto-reconnect loop. Default: true.</summary>
        public bool AutoReconnect { get; set; } = true;

        /// <summary>MxAccess node name (optional).</summary>
        public string? NodeName { get; set; }

        /// <summary>MxAccess galaxy name (optional).</summary>
        public string? GalaxyName { get; set; }
    }
}
