using Npgsql; namespace pgLabII.PgUtils.ConnectionStrings; /// /// Canonical, format-agnostic representation of a PostgreSQL connection. /// Keep minimal fields for broad interoperability; store extras in Properties. /// public sealed class ConnectionDescriptor { // Primary hosts (support multi-host). If empty, implies localhost default. public IReadOnlyList Hosts { get; init; } = new List(); public string? Database { get; init; } public string? Username { get; init; } public string? Password { get; init; } public SslMode? SslMode { get; init; } // Common optional fields public string? ApplicationName { get; init; } public int? TimeoutSeconds { get; init; } // connect_timeout // Additional parameters preserved across conversions public IReadOnlyDictionary Properties { get; init; } = new Dictionary(); }