<?php
/**
 * Point d'entrée unique — Routeur centralisé.
 *
 * Toutes les requêtes passent par ce fichier via .htaccess.
 * Le bootstrap initialise DB, auth, modules, i18n.
 * Le routeur dispatche vers le contrôleur approprié.
 */
require_once __DIR__ . '/bootstrap.php';

// Autoload controllers from mon-appli/controllers/
spl_autoload_register(function (string $class): void {
    $file = WEBROOT_PATH . '/controllers/' . $class . '.php';
    if (file_exists($file)) require_once $file;
});

$router = new Router();

/* ── Routes core ──────────────────────────────────────────────────────── */
$router->get('/',        [HomeController::class,    'index']);
$router->get('/login',   [LoginController::class,   'showForm']);
$router->post('/login',  [LoginController::class,   'submit']);
$router->any('/logout',  [LoginController::class,   'logout']);
$router->any('/profile', [ProfileController::class, 'show']);
$router->get('/about',   [AboutController::class,   'show']);
$router->get('/doc',             [DocController::class, 'index']);
$router->get('/doc/asset/:slug', [DocController::class, 'asset']);
$router->get('/doc/:slug',       [DocController::class, 'show']);

/* ── Routes legacy (pages existantes non encore migrées) ──────────────
 * Le .htaccess ne redirige vers index.php que si le fichier n'existe pas.
 * Donc les pages legacy (admin/*.php, modules/**\/*.php) continuent de
 * fonctionner directement. Au fur et à mesure de la migration, les routes
 * sont ajoutées ici et les fichiers legacy deviennent des redirections. */

/* ── Dispatch ─────────────────────────────────────────────────────────── */
$router->dispatch(
    $_SERVER['REQUEST_METHOD'],
    $_SERVER['REQUEST_URI']
);
