<?php
/**
 * modules/turnero/api/quitar_consentimiento.php
 * POST {consent_id, motivo} → elimina un consentimiento con auditoría
 */
require_once __DIR__ . '/_helpers.php';
require_once __DIR__ . '/../../../classes/lab/ActividadAdmin.php';

requireTurnero();
requireMethod('POST');

$input     = inputJson();
$consentId = (int)($input['consent_id'] ?? 0);
$motivo    = trim($input['motivo'] ?? '');

if (!$consentId) jsonError('consent_id requerido');
if ($motivo === '') jsonError('Debe ingresar un motivo para quitar el consentimiento');

$pdo = db();

// Leer datos antes de borrar (para el log)
$row = $pdo->prepare(
    "SELECT tc.id, tc.turno_id, tc.formulario_id, tc.estado,
            lf.nombre AS formulario_nombre,
            t.codigo  AS turno_codigo
       FROM turnero_consentimientos tc
       JOIN lab_formularios lf ON lf.id = tc.formulario_id
       JOIN turnero_turnos   t  ON t.id  = tc.turno_id
      WHERE tc.id = ? LIMIT 1"
);
$row->execute([$consentId]);
$consent = $row->fetch(PDO::FETCH_ASSOC);

if (!$consent) jsonError('Consentimiento no encontrado', 404);

$pdo->prepare('DELETE FROM turnero_consentimientos WHERE id = ?')->execute([$consentId]);

(new ActividadAdmin())->registrar(
    adminId(),
    'turnero_config',
    'quitar_consentimiento',
    $consentId,
    [
        'turno_codigo'      => $consent['turno_codigo'],
        'turno_id'          => $consent['turno_id'],
        'formulario_id'     => $consent['formulario_id'],
        'formulario_nombre' => $consent['formulario_nombre'],
        'estado_previo'     => $consent['estado'],
        'motivo'            => $motivo,
    ]
);

jsonOk([], 'Consentimiento quitado');
