<?php
// /config/paths.php

// --- DETECCIÓN DE ENTORNO Y CONFIGURACIÓN DE RUTAS ---

// 1. Determinar si estamos en un entorno seguro (HTTPS)
$is_secure = (
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ||
    (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) ||
    (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
);
$protocol = $is_secure ? 'https://' : 'http://';

// 2. Obtener el host (dominio o localhost)
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';

// 3. Construir la URL base de forma robusta y universal.
// Esta lógica es la más fiable para entornos de hosting compartido, ya que no depende
// del script que se esté ejecutando. Compara la ruta física del proyecto con la raíz del servidor.
$project_root_path = str_replace('\\', '/', dirname(__DIR__));
$document_root = str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']);

// La ruta base es la parte de la ruta del proyecto que viene después de la raíz del servidor.
$base_path = str_replace($document_root, '', $project_root_path);

// Definir la constante BASE_URL que se usará en toda la aplicación
define('BASE_URL', rtrim($protocol . $host . $base_path, '/') . '/');

// 4. Definir la ruta raíz del proyecto en el servidor
// __DIR__ es la ruta del directorio actual (/opt/lampp/htdocs/GGEE_PROYECTO_LOCAL/config)
// dirname() sube un nivel.
define('ROOT_PATH', dirname(__DIR__));

// 5. Función de ayuda para generar URLs de assets (CSS, JS, imágenes)
// Esto asegura que las rutas a los assets siempre sean correctas.
if (!function_exists('asset')) {
    function asset($path, $add_version = false)
    {
        // Eliminar barras iniciales del path para evitar URLs dobles (//)
        $url = BASE_URL . 'assets/' . ltrim($path, '/');
        if ($add_version) {
            $file_path = ROOT_PATH . '/assets/' . ltrim($path, '/');
            if (file_exists($file_path)) {
                $url .= '?v=' . filemtime($file_path);
            }
        }
        return $url;
    }
}

// 6. Función de ayuda para generar URLs a otras partes de la aplicación
if (!function_exists('url')) {
    function url($path = '')
    {
        // La función ya no necesita ltrim si BASE_URL siempre termina en /
        return BASE_URL . $path;
    }
}

// 7. Funciones de ayuda para rutas a directorios específicos
if (!function_exists('view')) {
    function view($path)
    {
        return url('views/' . $path);
    }
}
if (!function_exists('src')) {
    function src($path)
    {
        return url('src/' . $path);
    }
}
