<?php

header("Content-Type: application/json");

$destinos_dir = "destinos"; // Carpeta principal
$destinos_array = [];

// OpenStreetMap solo permite uso con UserAgent. Indicamos que somos linuxeros...
function obtenerCoordenadas($nombre_destino) {
    $url = "https://nominatim.openstreetmap.org/search?format=json&q=" . urlencode($nombre_destino);    

    // Iniciar sesión cURL
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0");    

    // Ejecutar y obtener respuesta
    $datos = curl_exec($ch);
    curl_close($ch);

    // Decodificar JSON
    $resultado = json_decode($datos, true);

    if (!empty($resultado)) {
        return [
            "latitud" => $resultado[0]["lat"],
            "longitud" => $resultado[0]["lon"]
        ];
    } else {
        return null; // No se encontraron coordenadas
    }
}


// Recorrer todas las carpetas dentro de "destinos"
foreach (scandir($destinos_dir) as $carpeta) {
    if ($carpeta === "." || $carpeta === "..") continue;

    $json_path = "$destinos_dir/$carpeta/destino.json"; // Ruta del JSON dentro de cada carpeta
    if (!file_exists($json_path)) continue;

    // Leer datos del JSON
    $json_data = file_get_contents($json_path);
    $destino_info = json_decode($json_data, true);

    // Obtener coordenadas si no existen
    if (!isset($destino_info["Latitud"], $destino_info["Longitud"])) {
        $coordenadas = obtenerCoordenadas($destino_info["Destino"]);
        if ($coordenadas) {
            $destino_info["Latitud"] = $coordenadas["latitud"];
            $destino_info["Longitud"] = $coordenadas["longitud"];
        }
    }

    // Agregar destino al array final
    if (isset($destino_info["Latitud"], $destino_info["Longitud"])) {
        $destinos_array[] = [
            "nombre" => $destino_info["Destino"],
            "lat" => $destino_info["Latitud"],
            "lng" => $destino_info["Longitud"]
        ];
    }
}

// Convertir datos a JSON y enviarlos al frontend
echo json_encode($destinos_array);
?>
