prepare( "UPDATE turnero_turnos SET llamado_recepcion_at = NOW(), recepcion_desk_id = COALESCE(?, recepcion_desk_id) WHERE id = ? AND estado = 'en_recepcion'" ); $stmt->execute([$deskId, $turnoId]); if ($stmt->rowCount() === 0) { jsonError('El turno no está en estado en_recepcion o no existe.', 404); } // Notificar SSE para que las pantallas se actualicen inmediatamente $stmtS = $pdo->prepare('UPDATE turnero_sesiones SET sse_ping_at = NOW() WHERE id = (SELECT sesion_id FROM turnero_turnos WHERE id = ?)'); $stmtS->execute([$turnoId]); // Devolver el turno actualizado para que recepcion.php abra la ficha $stmtT = $pdo->prepare( "SELECT t.*, p.codigo AS prioridad_codigo, p.nombre AS prioridad_nombre, p.color AS prioridad_color FROM turnero_turnos t JOIN turnero_prioridades p ON p.id = t.prioridad_id WHERE t.id = ?" ); $stmtT->execute([$turnoId]); $turno = $stmtT->fetch(PDO::FETCH_ASSOC); jsonOk(['turno' => $turno]);