namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Models;

/// <summary>
///     Information about the current OPC UA session.
/// </summary>
public sealed class ConnectionInfo
{
    public ConnectionInfo(
        string endpointUrl,
        string serverName,
        string securityMode,
        string securityPolicyUri,
        string sessionId,
        string sessionName)
    {
        EndpointUrl = endpointUrl;
        ServerName = serverName;
        SecurityMode = securityMode;
        SecurityPolicyUri = securityPolicyUri;
        SessionId = sessionId;
        SessionName = sessionName;
    }

    /// <summary>The endpoint URL of the connected server.</summary>
    public string EndpointUrl { get; }

    /// <summary>The server application name.</summary>
    public string ServerName { get; }

    /// <summary>The security mode in use (e.g., "None", "Sign", "SignAndEncrypt").</summary>
    public string SecurityMode { get; }

    /// <summary>The security policy URI (e.g., "http://opcfoundation.org/UA/SecurityPolicy#None").</summary>
    public string SecurityPolicyUri { get; }

    /// <summary>The session identifier.</summary>
    public string SessionId { get; }

    /// <summary>The session name.</summary>
    public string SessionName { get; }
}