prepare( "SELECT tc.id, tc.turno_id, tc.estado, tc.firmado_at, t.sesion_id, t.codigo, f.nombre AS formulario FROM turnero_consentimientos tc JOIN turnero_turnos t ON t.id = tc.turno_id JOIN lab_formularios f ON f.id = tc.formulario_id WHERE tc.token = ? LIMIT 1" ); $stmt->execute([$token]); $tc = $stmt->fetch(PDO::FETCH_ASSOC); if (!$tc) jsonError('Consentimiento no encontrado.', 404); $pdo->prepare( "UPDATE turnero_consentimientos SET estado = 'enviado', firma_svg = NULL, firmado_at = NULL, firma_profesional_svg = NULL, firmado_profesional_at = NULL WHERE token = ?" )->execute([$token]); notificarSSE((int)$tc['sesion_id']); // Esta acción descarta una firma ya hecha, así que tiene que dejar constancia: // se anota qué documento era, en qué estado estaba y si tenía firma. try { (new ActividadAdmin())->registrar( adminId(), 'turnero', 'resetear_consentimiento', (int)$tc['id'], [ 'turno_id' => (int)$tc['turno_id'], 'turno_codigo' => $tc['codigo'], 'formulario_nombre' => $tc['formulario'], 'estado_previo' => $tc['estado'], 'tenia_firma' => !empty($tc['firmado_at']), ] ); } catch (\Throwable $e) { error_log('[resetear_consentimiento] auditoría: ' . $e->getMessage()); } jsonOk([], 'Consentimiento reiniciado correctamente.');