<?php

namespace App\Settings;

use Spatie\LaravelSettings\Settings;

class SecuritySettings extends Settings
{
    // Authentication Settings
    public bool $enable_two_factor_auth;
    public int $session_timeout_minutes;
    public int $password_expiry_days;
    public int $max_login_attempts;
    public int $lockout_duration_minutes;

    // Password Requirements
    public int $min_password_length;
    public bool $require_uppercase;
    public bool $require_lowercase;
    public bool $require_numbers;
    public bool $require_special_characters;

    // Data Protection
    public bool $enable_data_encryption;
    public bool $enable_audit_logging;
    public int $audit_log_retention_days;
    public bool $enable_backup_alerts;

    // API Security
    public bool $enable_api_rate_limiting;
    public int $api_requests_per_minute;
    public array $allowed_ip_addresses;

    // Customer Data Access
    public bool $allow_customer_portal;
    public bool $allow_customer_data_download;
    public int $customer_session_timeout_minutes;

    public static function group(): string
    {
        return 'security';
    }
}
