<?php
require_once '../includes/config.php';
require_once '../includes/db.php';

session_start();
// Verificar si el usuario está logueado y es admin
if (!isset($_SESSION['usuario_id']) || empty($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: ../login.php');
    exit;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit('Método no permitido');
}

$db = new Database();
$imagen = $_POST['imagen'] ?? '';
$producto_id = (int)($_POST['producto'] ?? 0);

if (!$imagen || !$producto_id) {
    http_response_code(400);
    exit('Datos inválidos');
}

try {
    // Obtener producto actual
    $producto = $db->query("SELECT imagenes FROM productos WHERE id = ?", [$producto_id])->fetch();
    if (!$producto) {
        throw new Exception('Producto no encontrado');
    }

    // Decodificar array de imágenes
    $imagenes = json_decode($producto['imagenes'] ?? '[]', true);
    
    // Encontrar y eliminar la imagen del array
    $key = array_search($imagen, $imagenes);
    if ($key !== false) {
        unset($imagenes[$key]);
        $imagenes = array_values($imagenes); // Reindexar array
        
        // Actualizar BD
        $db->query("UPDATE productos SET imagenes = ? WHERE id = ?", 
                   [json_encode($imagenes), $producto_id]);
        
        // Eliminar archivo físico
        $rutaImagen = "../uploads/productos/" . $imagen;
        if (file_exists($rutaImagen)) {
            unlink($rutaImagen);
        }
        
        http_response_code(200);
        echo 'Imagen eliminada correctamente';
    } else {
        throw new Exception('Imagen no encontrada');
    }
} catch (Exception $e) {
    http_response_code(500);
    exit($e->getMessage());
}
