<?php
require_once 'conexao.php';
session_start();

// Forçar cabeçalho JSON
header('Content-Type: application/json');

// Verificar se é requisição AJAX
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') {
    http_response_code(403);
    echo json_encode(['success' => false, 'message' => 'Acesso não autorizado']);
    exit;
}

// Verificar método POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['success' => false, 'message' => 'Método não permitido']);
    exit;
}

// Validar CSRF
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== ($_SESSION['csrf_token'] ?? null)) {
    http_response_code(403);
    echo json_encode(['success' => false, 'message' => 'Token CSRF inválido']);
    exit;
}

// Validar ID do produto
if (!isset($_POST['id']) || !is_numeric($_POST['id'])) {
    http_response_code(400);
    echo json_encode(['success' => false, 'message' => 'ID do produto inválido']);
    exit;
}

$produtoId = (int)$_POST['id'];

try {
    // Iniciar transação
    $conn->begin_transaction();

    // Verificar se produto existe na tabela cliente_produtos
    $stmt = $conn->prepare("SELECT id FROM cliente_produtos WHERE id = ?");
    $stmt->bind_param("i", $produtoId);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows === 0) {
        http_response_code(404);
        echo json_encode(['success' => false, 'message' => 'Produto não encontrado']);
        $stmt->close();
        $conn->rollback();
        exit;
    }

    // Excluir produto
    $stmt = $conn->prepare("DELETE FROM cliente_produtos WHERE id = ?");
    $stmt->bind_param("i", $produtoId);
    $stmt->execute();

    // Confirmar transação
    $conn->commit();

    // Definir mensagem de sucesso na sessão para feedback pós-reload
    $_SESSION['mensagem'] = 'Produto excluído com sucesso!';

    echo json_encode([
        'success' => true,
        'message' => 'Produto excluído com sucesso!'
    ]);

} catch (Exception $e) {
    $conn->rollback();
    http_response_code(500);
    error_log("Erro ao excluir produto: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'message' => 'Erro ao excluir produto: ' . $e->getMessage()
    ]);
} finally {
    if (isset($stmt)) {
        $stmt->close();
    }
    $conn->close();
}
