using System;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using Ablera.Serdica.Authentication.Models.Oidc;

namespace Ablera.Serdica.Authority.Models;

public record OidcServerSettings : OidcSettingsBase
{
    public Endpoints Endpoints { get; init; } = null!;
    public required string IssuerUrl { get; init; } = null!;
    public bool? RequireHttps { get; set; } = false;
    public required string CookieName { get; init; } = "oauth2-authorization";
    public required int CookieExpirationInMinutes { get; init; } = 2;
    public required int AuthorizationTokenDurationInMinutes { get; init; } = 5;
    public RegisteredClient[] RegisteredClients { get; init; } = Array.Empty<RegisteredClient>();
    public string[] Claims { get; init; } = Array.Empty<string>();   
    public string[] Scopes { get; init; } = Array.Empty<string>();
}
