<?php
/**
 * ASISMA CRM - Entry Point
 */

require_once __DIR__ . '/config/config.php';

spl_autoload_register(function ($class) {
    $paths = array(
        __DIR__ . '/app/core/'        . $class . '.php',
        __DIR__ . '/app/controllers/' . $class . '.php',
        __DIR__ . '/app/models/'      . $class . '.php',
        __DIR__ . '/app/middleware/'  . $class . '.php',
        __DIR__ . '/app/helpers/'     . $class . '.php',
    );
    foreach ($paths as $file) {
        if (file_exists($file)) {
            require_once $file;
            return;
        }
    }
});

// Leer la ruta desde REQUEST_URI (no necesita mod_rewrite)
$requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';

// Quitar query string y slash inicial
$path = parse_url($requestUri, PHP_URL_PATH);
$route = trim($path, '/');

// Si está vacío, ir al dashboard
if ($route === '' || $route === 'index.php') {
    $route = 'dashboard';
}

try {
    $router = new Router();
    $router->dispatch($route);
} catch (Exception $e) {
    error_log("Dispatch error: " . $e->getMessage());
    if (APP_DEBUG) {
        echo "<h2>Error de Sistema</h2>";
        echo "<p>" . htmlspecialchars($e->getMessage()) . "</p>";
        echo "<pre>" . htmlspecialchars($e->getTraceAsString()) . "</pre>";
    } else {
        header("HTTP/1.1 500 Internal Server Error");
        echo "Ocurrió un error en el servidor. Por favor intente más tarde.";
    }
    exit;
}
