namespace OTSSignsOrchestrator.Core.Models.DTOs;

/// <summary>
/// Holds the IdP metadata extracted from an Authentik SAML provider,
/// used to render the settings-custom.php template.
/// </summary>
public class AuthentikSamlConfig
{
    /// <summary>IdP entity ID from SAML metadata (typically "authentik").</summary>
    public string IdpEntityId { get; set; } = string.Empty;

    /// <summary>Base64-encoded X.509 signing certificate (no BEGIN/END markers).</summary>
    public string IdpX509Cert { get; set; } = string.Empty;

    /// <summary>IdP Single Sign-On URL (HTTP-Redirect binding).</summary>
    public string SsoUrlRedirect { get; set; } = string.Empty;

    /// <summary>IdP Single Sign-On URL (HTTP-POST binding).</summary>
    public string SsoUrlPost { get; set; } = string.Empty;

    /// <summary>IdP Single Logout URL (HTTP-Redirect binding).</summary>
    public string SloUrlRedirect { get; set; } = string.Empty;

    /// <summary>IdP Single Logout URL (HTTP-POST binding).</summary>
    public string SloUrlPost { get; set; } = string.Empty;

    /// <summary>Authentik provider primary key (for audit/debugging).</summary>
    public int ProviderId { get; set; }

    /// <summary>Slug used in Authentik application URLs.</summary>
    public string ApplicationSlug { get; set; } = string.Empty;
}
