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)); // ═══════════════════════════════════════════════════════════════════════════ // TIMEZONE // ═══════════════════════════════════════════════════════════════════════════ date_default_timezone_set('Europe/Rome');