<?php
ob_start();

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

function enviarJson($success, $mensaje) {
    if (ob_get_length()) ob_clean();
    header('Content-Type: application/json');
    die(json_encode(['success' => $success, 'message' => $mensaje]));
}

session_start();

// Verificar permisos
if (!isset($_SESSION['usuario_id']) || 
    empty($_SESSION['usuario_id']) || 
    !in_array($_SESSION['rol'], ['admin', 'registrador_de_productos'])) {
    enviarJson(false, 'No tiene permisos para realizar esta acción');
}

if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    try {
        parse_str(file_get_contents("php://input"), $_DELETE);
        $id = isset($_DELETE['id']) ? intval($_DELETE['id']) : 0;

        if ($id <= 0) {
            enviarJson(false, 'ID de producto no válido');
        }

        $db = new Database();
        
        // Verificar existencia del producto
        $producto = $db->query("SELECT imagenes FROM productos WHERE id = ?", [$id])->fetch();
        if (!$producto) {
            enviarJson(false, 'El producto no existe');
        }

        // Eliminar el producto
        $resultado = $db->query("DELETE FROM productos WHERE id = ?", [$id]);
        
        if ($resultado === false) {
            enviarJson(false, 'No se pudo eliminar el producto');
        }

        // Eliminar imágenes
        if (!empty($producto['imagenes'])) {
            $imagenes = json_decode($producto['imagenes'], true);
            if (is_array($imagenes)) {
                foreach ($imagenes as $imagen) {
                    $ruta = '../uploads/productos/' . $imagen;
                    if (file_exists($ruta)) {
                        @unlink($ruta);
                    }
                }
            }
        }

        enviarJson(true, 'Producto eliminado correctamente');

    } catch (Exception $e) {
        enviarJson(false, 'Error al eliminar el producto');
    }
}
