namespace Tiku.Api.Options;

public sealed class ApiRateLimitOptions
{
    public const string SectionName = "RateLimiting";

    public bool Enabled { get; set; } = true;

    [System.ComponentModel.DataAnnotations.Range(1, 100_000)]
    public int PermitLimit { get; set; } = 600;

    [System.ComponentModel.DataAnnotations.Range(1, 86_400)]
    public int WindowSeconds { get; set; } = 60;

    [System.ComponentModel.DataAnnotations.Range(0, 10_000)]
    public int QueueLimit { get; set; }
}
