<?php

// Configurar la zona horaria a Madrid
date_default_timezone_set("Europe/Madrid");

//header("Access-Control-Allow-Headers: Content-Type");

// Permitir acceso desde cualquier origen
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
header("Content-Type: application/json"); // Importante para respuestas JSON

// Rutas del servidor
$documentRoot = $_SERVER['DOCUMENT_ROOT'];
$directorio = $documentRoot . "/assets/cstimage/";

// Archivo JSON maestro
$catalogoFile = $documentRoot . "/admin/catalogo.json";
//////////////////////////////////

// Cargar JSON existente
$catalogo = [];
if (file_exists($catalogoFile)) {
    $catalogo = json_decode(file_get_contents($catalogoFile), true);
    if (!is_array($catalogo)) {
        $catalogo = [];
    }
}

// Función para generar un ID único estable (solo si no existe antes)
function generarId() {
    return bin2hex(random_bytes(8)); // 16 caracteres hex
}

// Convertir el catálogo en un mapa indexado por "codigo"
$mapa = [];
foreach ($catalogo as $item) {
    $mapa[$item['codigo']] = $item;
}

// Escanear carpeta de archivos
$archivos = scandir($directorio);
foreach ($archivos as $archivo) {
    if ($archivo === "." || $archivo === "..") continue;

    if (str_contains($archivo, "not_found")) {
        continue;
    }

    $ruta = $directorio . "/" . $archivo;
    if (!is_file($ruta)) continue;

    $extension = strtolower(pathinfo($archivo, PATHINFO_EXTENSION));
    $nombreBase = pathinfo($archivo, PATHINFO_FILENAME);

    // Solo nos interesan imágenes y videos
    if (!in_array($extension, ["jpg", "jpeg", "png"])) {
        //if (!in_array($extension, ["mp4", "jpg", "jpeg", "png"])) {
        continue;
    }

    // El prefijo/codigo es la parte "112_a06" (todo antes del primer "_")
    // OJO: si tu formato cambia, ajustamos aquí
    $partes = explode("_", $nombreBase);

    if (count($partes) < 2) continue;

    $longitud = strlen($archivo);
    //if ($longitud > 11)
    {
        $codigo = $partes[0] . "_" . $partes[1];
        $extmp4 = ".mp4";
        $nombre = substr($archivo, 8, -4);
        $newimg = substr($archivo, 8, $longitud);
        $texto_limpio = ucwords(strtolower(str_replace("_", " ", $nombre)));
        // Si el código ya existe, actualizamos
        if (!isset($mapa[$codigo])) {
            $mapa[$codigo] = [
                "id"     => generarId(),
                "codigo" => $codigo,
                "imagen" => null,
                "nombre" => null,
                "cl"  => $codigo,
                "ca" => $texto_limpio,
                "es" => $texto_limpio
            ];
            //$mapa[$codigo]["imagen"] = $archivo;
        }
        // Guardar el nombre actual de imagen o video
        
        $mapa[$codigo]["imagen"] = $archivo;
        $mapa[$codigo]["nombre"] = $texto_limpio;
        //if ($longitud > 11) 
        {
            //$mapa[$codigo]["ca"] = $mapa[$codigo]["ca"]
            //$mapa[$codigo]["es"] = $mapa[$codigo]["ca"]
        }
    }
}

// Eliminar entradas cuya imagen ya no existe en el servidor
foreach ($mapa as $codigo => $item) {
    if (empty($item['imagen']) || !file_exists($directorio . $item['imagen'])) {
        unset($mapa[$codigo]);
    }
}

// Guardar catálogo actualizado
file_put_contents(
    $catalogoFile,
    json_encode(array_values($mapa), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
);

die("✅ Catálogo actualizado en $catalogoFile ");
echo "<a href='panel.php'> Volver </a>";
exit;
?>
