$ids) { if (!is_array($ids) || empty($ids)) jsonError("El grupo '$grupo' no tiene tomas seleccionadas."); foreach ($ids as $id) { if (!preg_match('/^[a-zA-Z0-9_]+$/', $id)) jsonError("ID de firma inválido: $id"); } } $pdo = db(); $stmt = $pdo->prepare( "SELECT id, datos_respuestas FROM turnero_consentimientos WHERE token = ? LIMIT 1" ); $stmt->execute([$token]); $tc = $stmt->fetch(PDO::FETCH_ASSOC); if (!$tc) jsonError('Consentimiento no encontrado.', 404); $dr = []; if ($tc['datos_respuestas']) { $d = json_decode($tc['datos_respuestas'], true); if (is_array($d)) $dr = $d; } $dr['_tomas_config'] = $cfg; $pdo->prepare("UPDATE turnero_consentimientos SET datos_respuestas = ? WHERE id = ?") ->execute([json_encode($dr, JSON_UNESCAPED_UNICODE), $tc['id']]); jsonOk([], 'Configuración de tomas guardada.');