namespace SIGCM2.Application.Audit;

/// Bound from appsettings section "Audit".
/// Extensibility model: ADDITIVE via `IConfiguration` array binding. Setting
/// `Audit:SanitizedKeys:N` at indices beyond the defaults APPENDS custom keys;
/// indices 0..10 OVERWRITE the defaults. To fully replace, use a `PostConfigure`
/// in DI. This mirrors the standard .NET array-binding quirk intentionally —
/// the default keys are security-critical and should not be silently dropped.
public sealed class AuditOptions
{
    public const string SectionName = "Audit";

    public string[] SanitizedKeys { get; set; } =
    [
        "password",
        "passwordHash",
        "token",
        "refreshToken",
        "accessToken",
        "cvv",
        "card",
        "cardNumber",
        "secret",
        "apiKey",
        "privateKey",
    ];
}
