namespace FileAccessAgent.TestSite.Models;

public sealed class TestSiteAuthOptions
{
    public const string SectionName = "MemberCenter";

    public string Authority { get; set; } = "http://localhost:7850/";
    public string WebBaseUrl { get; set; } = "http://localhost:5080/";
    public string? MetadataAddress { get; set; }
    public string ClientId { get; set; } = string.Empty; // web_login client
    public string? ClientSecret { get; set; } // web_login client secret (optional for public client)
    public string CallbackPath { get; set; } = "/auth/callback";
    public string SignedOutCallbackPath { get; set; } = "/signout-callback-oidc";
    public string Scopes { get; set; } = "openid email profile"; // web_login scopes
    public bool RequireHttpsMetadata { get; set; } = false;

    public string ServiceClientId { get; set; } = string.Empty; // file_api client
    public string ServiceClientSecret { get; set; } = string.Empty;
    public string ServiceScopes { get; set; } = "files:upload.write files:metadata.read files:delete files:download.delegate";
    public string ServiceTokenEndpointPath { get; set; } = "oauth/token";
    public string DelegatedDownloadTokenEndpointPath { get; set; } = "file-access/download-tokens";
}
