using System.Collections.Generic;
namespace ZB.MOM.WW.OtOpcUa.Driver.Historian.Wonderware.Backend
{
///
/// Wonderware Historian SDK configuration. Populated from environment variables at
/// sidecar startup (see Program.cs): the supervisor (lmxopcua-side
/// WonderwareHistorianClient) spawns the sidecar with these env vars; UA
/// translation lives on the client side of the TCP IPC, so this surface is
/// kept OPC-UA-free. The legacy v1 Galaxy.Host / Proxy host this lived in retired
/// in PR 7.2.
///
public sealed class HistorianConfiguration
{
/// Gets or sets a value indicating whether Historian integration is enabled.
public bool Enabled { get; set; } = false;
/// Single-node fallback when is empty.
public string ServerName { get; set; } = "localhost";
///
/// Ordered cluster nodes. When non-empty, the data source tries each in order on connect,
/// falling through to the next on failure. A failed node is placed in cooldown for
/// before being re-eligible.
///
public List ServerNames { get; set; } = new();
/// Gets or sets the failure cooldown period in seconds.
public int FailureCooldownSeconds { get; set; } = 60;
/// Gets or sets a value indicating whether to use integrated security.
public bool IntegratedSecurity { get; set; } = true;
/// Gets or sets the user name for authentication.
public string? UserName { get; set; }
/// Gets or sets the password for authentication.
public string? Password { get; set; }
/// Gets or sets the Historian server port.
public int Port { get; set; } = 32568;
/// Gets or sets the command timeout in seconds.
public int CommandTimeoutSeconds { get; set; } = 30;
/// Gets or sets the maximum number of values per read operation.
public int MaxValuesPerRead { get; set; } = 10000;
///
/// Outer safety timeout applied to sync-over-async Historian operations. Must be
/// comfortably larger than .
///
public int RequestTimeoutSeconds { get; set; } = 60;
}
}