<?php
/**
 * SAC 2025 - DELETE POLL ENGINE
 * Elimina físicamente una Carta Consulta y todos sus votos relacionados.
 */
require_once 'config.php';

// Verificación de seguridad: Solo admin, junta o programador
checkAccess(['admin', 'programmer', 'board']);

$data = json_decode(file_get_contents("php://input"), true);

if (!isset($data['id'])) {
    response(["error" => "ID de consulta no proporcionado"], 400);
}

$pollId = $data['id'];

try {
    $pdo->beginTransaction();

    // 1. Obtener información previa para el log antes de borrar
    $stmtInfo = $pdo->prepare("SELECT title FROM polls WHERE id = ?");
    $stmtInfo->execute([$pollId]);
    $pollTitle = $stmtInfo->fetchColumn();

    if (!$pollTitle) {
        throw new Exception("La consulta seleccionada no existe en el sistema.");
    }

    // 2. Eliminar primero las respuestas (votos) por restricción de clave foránea
    $stmtRes = $pdo->prepare("DELETE FROM poll_responses WHERE poll_id = ?");
    $stmtRes->execute([$pollId]);

    // 3. Eliminar la cabecera de la consulta
    $stmtPoll = $pdo->prepare("DELETE FROM polls WHERE id = ?");
    $stmtPoll->execute([$pollId]);

    // 4. Registrar en Auditoría
    logSystemAction("ELIMINÓ permanentemente Carta Consulta: " . $pollTitle, "CARTA CONSULTA");

    $pdo->commit();
    response(["success" => true, "message" => "Consulta eliminada exitosamente del historial."]);

} catch (Exception $e) {
    if ($pdo->inTransaction()) $pdo->rollBack();
    response(["error" => "Fallo al eliminar: " . $e->getMessage()], 500);
}
?>