<?php
// ../../Controlador/Ctrl_Administrador/MySQL_Listar_Rutas_DT.php
declare(strict_types=1);

// ---- Cabeceras para evitar caché en navegadores y proxies ----
header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Expires: 0');;

require_once __DIR__ . '/../Utilidades/Conexion_BD.php';
require_once __DIR__ . '/MySQL_Mostrar_Rutas.php';

try {
    $conn = new Conexion_BD();
    $MostrarRutas = new MostrarRutas($conn);

    // Debe retornar un array de arrays asociativos con estas claves:
    // id, nombre_ruta, km_estimado, descripcion, enlace_mapa
    $rutas = $MostrarRutas->ObtenerTodasLasRutas();

    // Sanitiza mínimamente tipos (opcional)
    $out = [];
    foreach ($rutas as $r) {
        $out[] = [
            'id'           => (int)$r['id'],
            'nombre_ruta'  => (string)($r['nombre_ruta'] ?? ''),
            'km_estimado'  => is_null($r['km_estimado']) ? '' : (string)$r['km_estimado'],
            'descripcion'  => (string)($r['descripcion'] ?? ''),
            'enlace_mapa'  => (string)($r['enlace_mapa'] ?? ''),
        ];
    }

    echo json_encode($out, JSON_UNESCAPED_UNICODE);
} catch (Throwable $e) {
    http_response_code(500);
    echo json_encode([
        'error' => true,
        'message' => 'Error al listar rutas',
        'detail' => $e->getMessage(),
    ], JSON_UNESCAPED_UNICODE);
} finally {
    if (isset($conn)) {
        $conn->closeConnection();
    }
}
