5, 'window_seconds' => 60], ['max' => 20, 'window_seconds' => 3600], ]); define('RATE_LIMIT_AUTH_REGISTER', [ ['max' => 3, 'window_seconds' => 600], ]); define('RATE_LIMIT_AI', [ ['max' => 10, 'window_seconds' => 60], ['max' => 100, 'window_seconds' => 3600], ]); // ═══════════════════════════════════════════════════════════════════════════ // AI (ANTHROPIC) // ═══════════════════════════════════════════════════════════════════════════ define('ANTHROPIC_API_KEY', Env::get('ANTHROPIC_API_KEY', '')); define('ANTHROPIC_MODEL', Env::get('ANTHROPIC_MODEL', 'claude-sonnet-4-5-20250929')); define('ANTHROPIC_MAX_TOKENS', Env::int('ANTHROPIC_MAX_TOKENS', 4096)); // ═══════════════════════════════════════════════════════════════════════════ // CERTISOURCE (atti-service.php) // ═══════════════════════════════════════════════════════════════════════════ define('CERTISOURCE_API_URL', Env::get('CERTISOURCE_API_URL', 'https://certisource.it/atti-service.php')); define('CERTISOURCE_API_KEY', Env::get('CERTISOURCE_API_KEY', '')); // cs_pat_... define('CERTISOURCE_POLL_MAX', Env::int('CERTISOURCE_POLL_MAX', 30)); // max tentativi polling define('CERTISOURCE_POLL_SEC', Env::int('CERTISOURCE_POLL_SEC', 3)); // secondi tra poll // ═══════════════════════════════════════════════════════════════════════════ // FEEDBACK & SEGNALAZIONI // ═══════════════════════════════════════════════════════════════════════════ define('FEEDBACK_RESOLVE_PASSWORD', Env::get('FEEDBACK_RESOLVE_PASSWORD', '')); define('FEEDBACK_WORKER_LOG', Env::get('FEEDBACK_WORKER_LOG', '/var/log/nis2/feedback-worker.log')); // ═══════════════════════════════════════════════════════════════════════════ // TIMEZONE // ═══════════════════════════════════════════════════════════════════════════ date_default_timezone_set('Europe/Rome');