namespace NexusShell.Models;

public sealed class LockdownConfig
{
    public bool LockdownMode { get; set; } = true;
    public bool AllowWindowsEscape { get; set; }
    public bool DeveloperConsoleEnabled { get; set; } = true;
    public string DeveloperKeyChord { get; set; } = "Ctrl+Shift+Alt+N";
    public List<string> AllowedApps { get; set; } = [];
    public List<string> BlockedApps { get; set; } = [];
}

public sealed class DeveloperPocConfig
{
    public List<string> MasterUsernames { get; set; } = [];
    public bool VerifyViaIdentityApi { get; set; } = true;
    public int MaxFailedAttempts { get; set; } = 5;
    public int RateLimitWindowMinutes { get; set; } = 15;
    public int UnlockSessionMinutes { get; set; } = 30;
}

public sealed class LockdownAuditEntry
{
    public DateTimeOffset Timestamp { get; init; }
    public string EventType { get; init; } = string.Empty;
    public string Actor { get; init; } = string.Empty;
    public string Detail { get; init; } = string.Empty;
    public bool Success { get; init; }
}
