<?php
/**
 * Application Configuration
 */

// Database Configuration - Moved from db.php to avoid conflicts

// Application Settings
define('APP_NAME', 'Bolsa de Trabajo');

// URL dinámica: detecta automáticamente si estás en local o en producción (cPanel)
if (!defined('APP_URL')) {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
    $host     = $_SERVER['HTTP_HOST'] ?? 'localhost';
    // Detectar el subdirectorio base de la aplicación (e.g., /bolsa2 o vacío si está en root)
    $scriptDir = dirname($_SERVER['SCRIPT_NAME'] ?? '');
    // Subir un nivel si el script está dentro de una subcarpeta (admin, student, etc.)
    // Asegura que APP_URL apunte siempre a la raíz del proyecto
    $basePath  = rtrim(str_replace(['\\', '/admin', '/student', '/graduate', '/teacher', '/company', '/includes'], '', $scriptDir), '/');
    define('APP_URL', $protocol . '://' . $host . $basePath);
}

// Debugging - Remove these lines once the 500 error is solved
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Security Settings
define('SESSION_LIFETIME', 3600); // 1 hour
define('CSRF_TOKEN_LIFETIME', 3600); // 1 hour (increased from 30 minutes)
define('ENCRYPTION_KEY', 'bolsa-trabajo-encryption-key-256-bits-secure'); // Change in production
// Auto-detect HTTPS: true en producción (cPanel/HTTPS), false en localhost
if (!defined('SESSION_SECURE')) {
    define('SESSION_SECURE', (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443));
}
define('SESSION_HTTPONLY', true);
define('SESSION_SAMESITE', 'Lax'); // Changed from Strict to Lax for better compatibility

// Rate Limiting
define('RATE_LIMIT_REQUESTS', 10);
define('RATE_LIMIT_WINDOW', 60); // seconds
define('MAX_LOGIN_ATTEMPTS', 5);
define('ACCOUNT_LOCKOUT_TIME', 900); // 15 minutes

// Admin Alert Settings
define('ADMIN_EMAIL', 'admin@bolsa-trabajo.com');

// File Upload Settings
define('MAX_FILE_SIZE', 2 * 1024 * 1024); // 2MB
define('ALLOWED_IMAGE_TYPES', ['image/jpeg', 'image/png', 'image/gif']);

// Logging Settings
define('LOG_LEVEL', 'DEBUG'); // DEBUG, INFO, WARNING, ERROR, CRITICAL

// CDN Settings - DISABLED for local development
// define('CDN_BASE_URL', 'https://cdn.example.com');

// Cache Settings
define('CACHE_TTL_DEFAULT', 300); // 5 minutes
define('CACHE_TTL_LONG', 3600); // 1 hour
define('CACHE_TTL_SHORT', 60); // 1 minute

// Environment Settings
define('APP_ENV', 'development'); // 'development', 'staging', 'production'
?>