<?php
/**
 * Configuration definitions for BotFend Anti-Bot Firewall
 *
 * @package BotFend\Config
 * @version 4.8.3 - External services disabled by default for GDPR compliance
 */

namespace BotFend\Config;

defined('ABSPATH') || exit;

/**
 * Return configuration definitions array
 * 
 * @return array
 */
function get_definitions() {
    return [
        
        // ============================================
        // TAB 1: GENERAL SETTINGS
        // ============================================
        'botfend_enabled' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_enable_adaptive' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_adaptive_mode' => [
            'type' => 'string',
            'default' => 'balanced',
            'allowed' => ['learning', 'balanced', 'aggressive', 'emergency'],
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_block_proxy' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_log_only' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_notify_admin' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_allow_unblock' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_debug_mode' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_rate_limit' => [
            'type' => 'int',
            'default' => 100,
            'min' => 1,
            'max' => 200,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_perpetual_enabled' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_perpetual_threshold' => [
            'type' => 'int',
            'default' => 3,
            'min' => 2,
            'max' => 10,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_perpetual_window' => [
            'type' => 'int',
            'default' => 30,
            'min' => 7,
            'max' => 365,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_block_duration' => [
            'type' => 'int',
            'default' => 24,
            'min' => 0,
            'max' => 720,
            'autoload' => true,
            'tab' => 'general',
        ],
        'botfend_firewall_enabled' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'general',
        ],

        // ============================================
        // TAB 2: SESSION & API SETTINGS
        // ============================================
        'botfend_api_detection' => [
            'type' => 'string',
            'default' => 'balanced',
            'allowed' => ['conservative', 'balanced', 'aggressive'],
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_disable_sessions' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_force_sessions' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_required_patterns' => [
            'type' => 'string',
            'default' => "/wp-admin/\n/wp-login.php\n/dashboard/\n/wp-admin/admin-ajax.php",
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_custom_api_patterns' => [
            'type' => 'string',
            'default' => "/api/\n/rest/\n/graphql\n/v1/\n/v2/",
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_regenerate' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_timeout' => [
            'type' => 'int',
            'default' => 1800,
            'min' => 300,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_bind_ip' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_bind_useragent' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_secure_cookie' => [
            'type' => 'bool',
            'default' => null,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_httponly' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_samesite' => [
            'type' => 'string',
            'default' => 'Lax',
            'allowed' => ['Lax', 'Strict', 'None'],
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_bot_detection_sensitivity' => [
            'type' => 'string',
            'default' => 'medium',
            'allowed' => ['low', 'medium', 'high', 'custom'],
            'autoload' => true,
            'tab' => 'session_api',
        ],
        'botfend_session_storage' => [
            'type' => 'string',
            'default' => 'files',
            'allowed' => ['files', 'database', 'memcached', 'redis'],
            'autoload' => true,
            'tab' => 'session_api',
        ],

        // ============================================
        // TAB 3: DETECTION SETTINGS (Generic Bot Detection Only)
        // ============================================
        'botfend_score_empty_ua' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_suspicious_ua' => [
            'type' => 'int',
            'default' => 2,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_crawler_impersonation' => [
            'type' => 'int',
            'default' => 7,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_high_rate' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_ctr_anomaly' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_proxy' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_suspicious_headers' => [
            'type' => 'int',
            'default' => 2,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_enable_tls_detection' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_weak_tls' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_enable_threat_intel' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_known_attacker' => [
            'type' => 'int',
            'default' => 8,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_high_risk_countries' => [
            'type' => 'string',
            'default' => 'CN,RU,UA,BR,IN,VN,ID,TH,IR,PK,NL,FR,DE,AU,KR',
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_score_high_risk_country' => [
            'type' => 'int',
            'default' => 4,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'detection',
        ],
        'botfend_blocked_countries' => [
            'type' => 'string',
            'default' => 'CN,IR,KP',
            'autoload' => true,
            'tab' => 'detection',
        ],

        // ============================================
        // TAB 4: TOR SYSTEM SETTINGS
        // ============================================
        'botfend_enable_tor_detection' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'tor_system',
        ],
        'botfend_score_tor' => [
            'type' => 'int',
            'default' => 4,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'tor_system',
        ],
        'botfend_tor_action' => [
            'type' => 'string',
            'default' => 'challenge',
            'allowed' => ['log_only', 'challenge', 'block', 'add_score'],
            'autoload' => true,
            'tab' => 'tor_system',
        ],
        'botfend_tor_update_frequency' => [
            'type' => 'string',
            'default' => 'daily',
            'allowed' => ['hourly', 'daily', 'weekly'],
            'autoload' => true,
            'tab' => 'tor_system',
        ],
        'botfend_tor_last_update' => [
            'type' => 'int',
            'default' => 0,
            'autoload' => true,
            'tab' => 'tor_system',
        ],

        // ============================================
        // TAB 5: 404 SYSTEM SETTINGS
        // ============================================
        'botfend_enable_advanced_404' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => '404_system',
        ],
        'botfend_max_404s' => [
            'type' => 'int',
            'default' => 10,
            'min' => 0,
            'max' => 100,
            'autoload' => true,
            'tab' => '404_system',
        ],
        'botfend_score_404_abuse' => [
            'type' => 'int',
            'default' => 5,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => '404_system',
        ],
        'botfend_score_advanced_404' => [
            'type' => 'int',
            'default' => 4,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => '404_system',
        ],
        'botfend_advanced_404_block_threshold' => [
            'type' => 'int',
            'default' => 5,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => '404_system',
        ],

        // ============================================
        // TAB 6: THIRD PARTY SETTINGS
        // ============================================
        'botfend_enable_iphub' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_iphub_api_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_iphub_mode' => [
            'type' => 'string',
            'default' => 'moderate',
            'allowed' => ['strict', 'moderate', 'lenient'],
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_allow_crawlers' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_enable_abuseipdb' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_abuseipdb_api_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_abuseipdb_confidence' => [
            'type' => 'int',
            'default' => 80,
            'min' => 0,
            'max' => 100,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_abuseipdb_action' => [
            'type' => 'string',
            'default' => 'block',
            'allowed' => ['block', 'challenge', 'add_score', 'log_only'],
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_enable_crawler_verification' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_allow_legacy_crawlers' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_enable_reverse_dns' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_enable_external_tor_check' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        
        // IP GEOLOCATION SETTINGS
'botfend_enable_geolocation' => [
    'type' => 'bool',
    'default' => false,
    'autoload' => true,
    'tab' => 'third_party',
],

'botfend_geolocation_service' => [
    'type' => 'string',
    'default' => 'local',
    'allowed' => ['local', 'ip-api', 'ipapi', 'ipwhois', 'auto'],
    'autoload' => true,
    'tab' => 'third_party',
],

'botfend_geolocation_cache_ttl' => [
    'type' => 'int',
    'default' => 7,
    'min' => 1,
    'max' => 30,
    'autoload' => true,
    'tab' => 'third_party',
],
        'botfend_enable_recaptcha' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_version' => [
            'type' => 'string',
            'default' => 'v3',
            'allowed' => ['v3', 'v2'],
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_v3_site_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_v3_secret_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_v3_threshold' => [
            'type' => 'float',
            'default' => 0.5,
            'min' => 0.1,
            'max' => 1.0,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_v2_site_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_v2_secret_key' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'sensitive' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_on_login' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_on_registration' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_on_lostpassword' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_enable_comment_recaptcha' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_comment_recaptcha_loggedin' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],
        'botfend_recaptcha_bypass_whitelist' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'third_party',
        ],

        // ============================================
        // TAB 7: WAF SETTINGS
        // ============================================
        'botfend_enable_waf' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_action_mode' => [
            'type' => 'string',
            'default' => 'score',
            'allowed' => ['score', 'block', 'challenge', 'log_only'],
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_block_threshold' => [
            'type' => 'int',
            'default' => 15,
            'min' => 5,
            'max' => 20,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_immediate_block' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_integrate_scoring' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_context_aware' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_max_scan_time' => [
            'type' => 'float',
            'default' => 0.5,
            'min' => 0.1,
            'max' => 2.0,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_rate_limit' => [
            'type' => 'int',
            'default' => 10,
            'min' => 1,
            'max' => 100,
            'autoload' => true,
            'tab' => 'waf',
        ],
        'botfend_waf_wp_rules' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'waf',
        ],

        // ============================================
        // TAB 8: WORDPRESS PROTECTION SETTINGS
        // ============================================
        'botfend_enable_wp_protection' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_wp_protection_threshold' => [
            'type' => 'int',
            'default' => 10,
            'min' => 1,
            'max' => 50,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_block_wp_attacks' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_wp_attack_block_duration' => [
            'type' => 'int',
            'default' => 24,
            'min' => 0,
            'max' => 720,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_disable_xmlrpc' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_restrict_rest_api' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_max_login_attempts' => [
            'type' => 'int',
            'default' => 10,
            'min' => 1,
            'max' => 50,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_max_login_failures' => [
            'type' => 'int',
            'default' => 5,
            'min' => 1,
            'max' => 20,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_login_failure_window' => [
            'type' => 'int',
            'default' => 900,
            'min' => 60,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_login_block_duration' => [
            'type' => 'int',
            'default' => 15,
            'min' => 0,
            'max' => 1440,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_brute_force_block_duration' => [
            'type' => 'int',
            'default' => 24,
            'min' => 0,
            'max' => 720,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_login_delay_suspicious' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_enable_comment_protection' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_block_author_scan' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_disable_pingbacks' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_add_security_headers' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_enable_wpcontent_protection' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_enable_country_whitelist' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_whitelist_countries' => [
            'type' => 'array',
            'default' => [],
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_whitelist_max_score' => [
            'type' => 'int',
            'default' => 8,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_enable_auto_unblock' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'wordpress',
        ],
        'botfend_auto_unblock_interval' => [
            'type' => 'int',
            'default' => 24,
            'min' => 1,
            'max' => 168,
            'autoload' => true,
            'tab' => 'wordpress',
        ],

        // ============================================
        // TAB 9: ADVANCED SETTINGS
        // ============================================
        'botfend_enable_threat_intel' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_threat_feed_blocklist_de' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_threat_feed_firehol_level1' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_threat_feed_emerging_threats' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default (opt-in required)
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_weight_blocklist_de' => [
            'type' => 'int',
            'default' => 8,
            'min' => 1,
            'max' => 10,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_weight_firehol_level1' => [
            'type' => 'int',
            'default' => 9,
            'min' => 1,
            'max' => 10,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_weight_emerging_threats' => [
            'type' => 'int',
            'default' => 7,
            'min' => 1,
            'max' => 10,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_performance_tracking' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_auto_optimization' => [
            'type' => 'bool',
            'default' => false,  // CHANGED: Disabled by default
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_cache_enabled' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_cache_duration' => [
            'type' => 'int',
            'default' => 3600,
            'min' => 300,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_feed_retry_attempts' => [
            'type' => 'int',
            'default' => 3,
            'min' => 0,
            'max' => 10,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_enable_signatures' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_enable_connection_fp' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_enable_intelligent_session' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_enable_behavioral_analysis' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_min_requests' => [
            'type' => 'int',
            'default' => 5,
            'min' => 3,
            'max' => 20,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_time_window' => [
            'type' => 'int',
            'default' => 300,
            'min' => 60,
            'max' => 3600,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_block_threshold' => [
            'type' => 'int',
            'default' => 10,
            'min' => 5,
            'max' => 20,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_penalty_enabled' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_max_penalty' => [
            'type' => 'int',
            'default' => 5,
            'min' => 1,
            'max' => 10,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_penalty_ttl' => [
            'type' => 'int',
            'default' => 3600,
            'min' => 300,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_admins' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_editors' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_logged_in' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_ajax' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_api' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_exempt_paths' => [
            'type' => 'string',
            'default' => "/wp-admin/*\n/wp-login.php\n/wp-json/*\n/wp-cron.php",
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_sensitivity' => [
            'type' => 'string',
            'default' => 'medium',
            'allowed' => ['low', 'medium', 'high'],
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_max_tracking' => [
            'type' => 'int',
            'default' => 100,
            'min' => 10,
            'max' => 1000,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_behavior_tracking_ttl' => [
            'type' => 'int',
            'default' => 3600,
            'min' => 300,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'advanced',
        ],
        'botfend_enable_smart_duration' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'advanced',
        ],

        // ============================================
        // TAB 10: CHALLENGES SETTINGS
        // ============================================
        'botfend_enable_js_challenge' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_enable_honeypot' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_probability' => [
            'type' => 'int',
            'default' => 30,
            'min' => 0,
            'max' => 100,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_rate_limit' => [
            'type' => 'int',
            'default' => 5,
            'min' => 1,
            'max' => 50,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_rate_window' => [
            'type' => 'int',
            'default' => 300,
            'min' => 60,
            'max' => 3600,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_expiry' => [
            'type' => 'int',
            'default' => 86400,
            'min' => 3600,
            'max' => 604800,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_bypass_crawlers' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_honeypot_block_duration' => [
            'type' => 'int',
            'default' => 24,
            'min' => 0,
            'max' => 720,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_honeypot_progressive_blocking' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_honeypot_urls' => [
            'type' => 'string',
            'default' => "/wp-admin.bak\n/wp-login.php.bak\n/license.txt\n/readme.html\n/xmlrpc.php.bak\n/admin.php\n/administrator/index.php\n/wp-content/uploads/.htaccess.bak\n/.env\n/config.php.bak\n/phpinfo.php\n/test.php",
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_block_headless_browsers' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_headless_block_duration' => [
            'type' => 'int',
            'default' => 24,
            'min' => 0,
            'max' => 720,
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_challenge_logging' => [
            'type' => 'string',
            'default' => 'normal',
            'allowed' => ['minimal', 'normal', 'verbose'],
            'autoload' => true,
            'tab' => 'challenges',
        ],
        'botfend_whitelisted_paths' => [
            'type' => 'string',
            'default' => "/.well-known/traffic-advice\n/.well-known/security.txt\n/.well-known/assetlinks.json\n/.well-known/apple-app-site-association\n/.well-known/dnt-policy.txt\n/.well-known/pki-validation/\n/robots.txt\n/favicon.ico\n/sitemap.xml\n/sitemap_index.xml\n/humans.txt\n/ads.txt",
            'autoload' => true,
            'tab' => 'challenges',
        ],

        // ============================================
        // TAB 11: PATHS SETTINGS
        // ============================================
        'botfend_whitelist_ips' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'tab' => 'paths',
        ],
        'botfend_permanent_blocklist' => [
            'type' => 'string',
            'default' => '',
            'autoload' => true,
            'tab' => 'paths',
        ],

        // ============================================
        // TAB 12: SYSTEM SETTINGS
        // ============================================
        'botfend_enable_cache' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_ttl' => [
            'type' => 'int',
            'default' => 3600,
            'min' => 0,
            'max' => 86400,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_use_object_cache' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_max_memory_items' => [
            'type' => 'int',
            'default' => 500,
            'min' => 100,
            'max' => 5000,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_performance_logging' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_slow_request_threshold' => [
            'type' => 'int',
            'default' => 200,
            'min' => 50,
            'max' => 1000,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_ip_validation_mode' => [
            'type' => 'string',
            'default' => 'balanced',
            'allowed' => ['strict', 'balanced', 'permissive'],
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_trusted_proxies' => [
            'type' => 'array',
            'default' => [
                '173.245.48.0/20',
                '103.21.244.0/22',
                '103.22.200.0/22',
                '103.31.4.0/22',
                '141.101.64.0/18',
                '108.162.192.0/18',
                '190.93.240.0/20',
                '188.114.96.0/20',
                '197.234.240.0/22',
                '198.41.128.0/17',
                '162.158.0.0/15',
                '104.16.0.0/13',
                '104.24.0.0/14',
                '172.64.0.0/13',
                '131.0.72.0/22',
                '2400:cb00::/32',
                '2606:4700::/32',
                '2803:f800::/32',
                '2405:b500::/32',
                '2405:8100::/32',
                '2a06:98c0::/29',
                '2c0f:f248::/32',
            ],
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_ip_headers' => [
            'type' => 'array',
            'default' => [
                'HTTP_CF_CONNECTING_IP',
                'HTTP_X_FORWARDED_FOR',
                'HTTP_X_REAL_IP',
                'HTTP_CLIENT_IP',
                'REMOTE_ADDR'
            ],
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_enable_centralized_logging' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_log_throttle_seconds' => [
            'type' => 'int',
            'default' => 10,
            'min' => 1,
            'max' => 3600,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_log_deduplication_window' => [
            'type' => 'int',
            'default' => 300,
            'min' => 30,
            'max' => 3600,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_remove_data_on_uninstall' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_enable_smart_aggregation' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_max_detailed_logs' => [
            'type' => 'int',
            'default' => 300,
            'min' => 100,
            'max' => 10000,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_aggregate_after_hours' => [
            'type' => 'int',
            'default' => 24,
            'min' => 1,
            'max' => 720,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_keep_aggregates_days' => [
            'type' => 'int',
            'default' => 90,
            'min' => 7,
            'max' => 365,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_log_sampling_rate' => [
            'type' => 'float',
            'default' => 0.1,
            'min' => 0.01,
            'max' => 1.0,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_critical_score_threshold' => [
            'type' => 'int',
            'default' => 7,
            'min' => 1,
            'max' => 10,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_admin_rate_limit' => [
            'type' => 'int',
            'default' => 60,
            'min' => 10,
            'max' => 500,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_editor_rate_limit' => [
            'type' => 'int',
            'default' => 45,
            'min' => 10,
            'max' => 500,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_rate_limit_window' => [
            'type' => 'int',
            'default' => 60,
            'min' => 10,
            'max' => 300,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_rate_limit_block_duration' => [
            'type' => 'int',
            'default' => 30,
            'min' => 5,
            'max' => 300,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_bypass_admin_rate_limit' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_logs_auto_refresh' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_logs_refresh_interval' => [
            'type' => 'int',
            'default' => 30000,
            'min' => 5000,
            'max' => 60000,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_logs_items_per_page' => [
            'type' => 'int',
            'default' => 100,
            'min' => 10,
            'max' => 500,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_date_format' => [
            'type' => 'string',
            'default' => 'Y-m-d',
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_time_format' => [
            'type' => 'string',
            'default' => 'H:i:s',
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_unblock_items_per_page' => [
            'type' => 'int',
            'default' => 50,
            'min' => 10,
            'max' => 200,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_unblock_auto_refresh' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_unblock_refresh_interval' => [
            'type' => 'int',
            'default' => 30000,
            'min' => 5000,
            'max' => 60000,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_enable_unblock_export' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_dashboard_auto_refresh' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_dashboard_refresh_interval' => [
            'type' => 'int',
            'default' => 30,
            'min' => 10,
            'max' => 300,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_disable_admin_checks' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_disable_editor_checks' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_cache_blocklist' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],
        'botfend_skip_ajax_checks' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'system',
        ],

        // ============================================
        // TAB 13: FILE GUARD SETTINGS
        // ============================================
        'botfend_protect_uploads' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_scan_uploads' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_blocked_upload_extensions' => [
            'type' => 'array',
            'default' => ['php', 'phtml', 'php3', 'php4', 'php5', 'php7', 'phps', 'pht', 'phtm', 'htaccess', 'htpasswd', 'ini', 'log', 'sql'],
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_disable_file_editors' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_disable_file_mods' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_monitor_permissions' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_auto_fix_permissions' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],
        'botfend_alert_on_file_change' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'file_guard',
        ],

        // ============================================
        // TAB 14: EXPORT/IMPORT SETTINGS
        // ============================================
        'botfend_enable_export' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'export_import',
        ],
        'botfend_enable_import' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'export_import',
        ],
        'botfend_export_format' => [
            'type' => 'string',
            'default' => 'json',
            'allowed' => ['json', 'xml', 'csv'],
            'autoload' => true,
            'tab' => 'export_import',
        ],
        'botfend_export_include_sensitive' => [
            'type' => 'bool',
            'default' => false,
            'autoload' => true,
            'tab' => 'export_import',
        ],
        'botfend_import_merge_strategy' => [
            'type' => 'string',
            'default' => 'merge',
            'allowed' => ['merge', 'replace', 'skip'],
            'autoload' => true,
            'tab' => 'export_import',
        ],
        'botfend_import_backup_first' => [
            'type' => 'bool',
            'default' => true,
            'autoload' => true,
            'tab' => 'export_import',
        ],

		// ==============  Cloudflare ===========
'botfend_cf_enabled' => [
    'type' => 'bool',
    'default' => false,
    'autoload' => true,
],
'botfend_cf_auth_method' => [
    'type' => 'string',
    'default' => 'token',
    'allowed' => ['token', 'key'],
    'autoload' => true,
],
'botfend_cf_api_token' => [
    'type' => 'string',
    'default' => '',
    'autoload' => true,
    'sensitive' => true,
],
'botfend_cf_email' => [
    'type' => 'string',
    'default' => '',
    'autoload' => true,
],
'botfend_cf_api_key' => [
    'type' => 'string',
    'default' => '',
    'autoload' => true,
    'sensitive' => true,
],
'botfend_cf_zone_id' => [
    'type' => 'string',
    'default' => '',
    'autoload' => true,
],
'botfend_cf_account_id' => [
    'type' => 'string',
    'default' => '',
    'autoload' => true,
],
'botfend_cf_sync_blocks' => [
    'type' => 'bool',
    'default' => true,
    'autoload' => true,
],
'botfend_cf_sync_direction' => [
    'type' => 'string',
    'default' => 'bidirectional',
    'allowed' => ['bidirectional', 'to_cloudflare', 'from_cloudflare'],
    'autoload' => true,
],
'botfend_cf_min_block_score' => [
    'type' => 'int',
    'default' => 5,
    'min' => 1,
    'max' => 10,
    'autoload' => true,
],
'botfend_cf_challenge_action' => [
    'type' => 'string',
    'default' => 'challenge',
    'allowed' => ['challenge', 'js_challenge', 'block'],
    'autoload' => true,
],
'botfend_cf_auto_cleanup' => [
    'type' => 'bool',
    'default' => true,
    'autoload' => true,
],
'botfend_cf_cleanup_days' => [
    'type' => 'int',
    'default' => 30,
    'min' => 1,
    'max' => 365,
    'autoload' => true,
],
'botfend_cf_rate_limit_enabled' => [
    'type' => 'bool',
    'default' => false,
    'autoload' => true,
],
'botfend_cf_rate_limit_per_min' => [
    'type' => 'int',
    'default' => 100,
    'min' => 10,
    'max' => 10000,
    'autoload' => true,
        ],
    ];
}