<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { exit; }

$tipo = $_POST['tipus'] ?? $_POST['tipo'] ?? '';   // 'imagen' o 'video'
$nombre = $_POST['nombre'] ?? '';

// Validar parámetros
if (!$tipo || !$nombre) {
    http_response_code(400);
    echo json_encode(['error' => 'Faltan parámetros']);
    exit;
}

// Evitar path traversal
$nombre = basename($nombre);
if (!$nombre || $nombre === '.' || $nombre === '..') {
    http_response_code(400);
    echo json_encode(['error' => 'Nombre de archivo inválido']);
    exit;
}

$root = realpath(__DIR__ . '/../..');

if ($tipo === 'imagen') {
    $path = $root . '/assets/cstimage/' . $nombre;
} elseif ($tipo === 'video') {
    $path = $root . '/assets/cstvideo/' . $nombre;
} else {
    http_response_code(400);
    echo json_encode(['error' => 'Tipo desconocido']);
    exit;
}

if (!file_exists($path)) {
    http_response_code(404);
    echo json_encode(['error' => 'Archivo no encontrado: ' . $nombre]);
    exit;
}

if (unlink($path)) {
    // Actualizar catálogos JSON si se borra una imagen
    if ($tipo === 'imagen') {
        $jsonFiles = [
            $root . '/admin/catalogo.json',
            $root . '/admin/catalogoservidor.json'
        ];
        $nombreBase = pathinfo($nombre, PATHINFO_FILENAME); // sin extensión
        $partes = explode('_', $nombreBase);
        $codigoBase = count($partes) >= 2 ? $partes[0] . '_' . $partes[1] : '';

        foreach ($jsonFiles as $jsonPath) {
            if (file_exists($jsonPath)) {
                $data = json_decode(file_get_contents($jsonPath), true);
                if (is_array($data)) {
                    $data = array_values(array_filter($data, function($item) use ($nombre, $codigoBase) {
                        $imgMatch = isset($item['imagen']) && $item['imagen'] === $nombre;
                        $codeMatch = $codigoBase && isset($item['codigo']) && $item['codigo'] === $codigoBase;
                        return !$imgMatch && !$codeMatch;
                    }));
                    file_put_contents($jsonPath, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
                }
            }
        }
    }
    echo json_encode(['ok' => true, 'borrado' => $nombre]);
} else {
    http_response_code(500);
    echo json_encode(['error' => 'No se ha podido borrar: ' . $nombre]);
}
?>
