<?php
/**
 * Configuración General - Sistema de Eventos Institucionales
 * 
 * Este archivo contiene todas las configuraciones necesarias para el funcionamiento
 * del sistema. Debe ser modificado según el entorno de instalación.
 */

// Producción: true = oculta errores al usuario, false = muestra errores (desarrollo)
define('AMBIENTE_PRODUCCION', true);

// Configuración de Base de Datos
define('DB_HOST', 'localhost');
define('DB_NAME', 'eventosjuanadedi_eventos_unejud');
define('DB_USER', 'eventosjuanadedi_eventosunejud');
define('DB_PASS', 'Unejud#2026');

// URL base del sitio. Descomentar y ajustar para forzar en producción:
// define('BASE_URL', 'https://eventos.juanadedios.com');
// Sin definir: se detecta por dominio

// Configuración de la aplicación
// Si BASE_URL no está definido, detectarlo automáticamente desde la URL actual
if (!defined('BASE_URL')) {
    // Detectar protocolo (http o https)
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
    
    // Obtener host
    $host = $_SERVER['HTTP_HOST'] ?? $_SERVER['SERVER_NAME'] ?? 'localhost';
    
    // Método 1: Usar SCRIPT_NAME para detectar la ruta base
    // Ejemplo: /public/invitacion/index.php -> base vacío para eventos.juanadedios.com
    $scriptPath = $_SERVER['SCRIPT_NAME'] ?? '';
    
    // Eliminar /public/invitacion/index.php o /admin/... para obtener la raíz
    $basePath = $scriptPath;
    
    // Si contiene /public/, eliminar desde /public/ en adelante
    if (strpos($basePath, '/public/') !== false) {
        $basePath = substr($basePath, 0, strpos($basePath, '/public/'));
    }
    // Si contiene /admin/, eliminar desde /admin/ en adelante
    elseif (strpos($basePath, '/admin/') !== false) {
        $basePath = substr($basePath, 0, strpos($basePath, '/admin/'));
    }
    // Si contiene /includes/, eliminar desde /includes/ en adelante
    elseif (strpos($basePath, '/includes/') !== false) {
        $basePath = substr($basePath, 0, strpos($basePath, '/includes/'));
    }
    // Si no coincide con ningún patrón conocido, usar el directorio padre del script
    else {
        $basePath = dirname(dirname($scriptPath));
    }
    
    // Si el path está vacío o es solo "/", usar "/"
    if (empty($basePath) || $basePath === '/' || $basePath === '\\') {
        $basePath = '';
    }
    
    // Normalizar separadores de directorio para web (usar /)
    $basePath = str_replace('\\', '/', $basePath);
    
    // Construir BASE_URL
    define('BASE_URL', $protocol . '://' . $host . $basePath);
}

define('ADMIN_PATH', '/admin');
define('INVITACION_PATH', '/public/invitacion');

// Configuración de email (SMTP)
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);
define('SMTP_USER', '');
define('SMTP_PASS', '');
define('SMTP_FROM_EMAIL', '');
define('SMTP_FROM_NAME', 'Eventos Juan de Dios');

// Configuración de WhatsApp (API de WhatsApp Business)
define('WHATSAPP_API_URL', '');
define('WHATSAPP_API_TOKEN', '');

// Seguridad
define('SESSION_NAME', 'EVENTOS_UNEJUD_SESSION');
define('TOKEN_LENGTH', 32);
define('PASSWORD_MIN_LENGTH', 8);

// Configuración de archivos
define('UPLOAD_DIR', __DIR__ . '/../assets/images/');
define('PDF_DIR', __DIR__ . '/../assets/pdfs/');
define('MAX_FILE_SIZE', 104857600); // 100MB (aumentado para videos grandes)

// Aumentar límites de PHP para subida de archivos grandes (si no están configurados en php.ini o .htaccess)
@ini_set('post_max_size', '100M');
@ini_set('upload_max_filesize', '100M');
@ini_set('max_execution_time', '300');
@ini_set('max_input_time', '300');
@ini_set('memory_limit', '256M');

// Timezone
date_default_timezone_set('America/Lima');

// Configuración de errores
if (AMBIENTE_PRODUCCION) {
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
} else {
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
}

