Pular para conteúdo

Mover negócio (override manual)

O que é

A única exceção ao princípio de board-read-only-orientado-a-eventos: "Mover para…" no menu ⋮ do card muda a etapa do negocio diretamente, sem passar por uma ação de negócio real e sem esperar um evento. Existe para destravar um card preso — quando o evento que deveria ter movido o negócio falhou, ficou perdido, ou a etapa real diverge do sistema.

Como funciona

  • Submenu "Mover para…" lista as outras etapas do mesmo pipe em que o card está (não cruza para o outro pipe — isso é "Transitar", endpoint separado usado internamente pelos fluxos automáticos, sem UI própria de card).
  • POST /v2/comercial/negocios/:id/mover — aceita qualquer usuário logado (só exige AuthGuard, não passa por RequerKanban/RBAC granular do Kanban). É deliberadamente mais aberto que as outras ações porque é uma ferramenta de destravar operação, não uma etapa do fluxo de negócio.
  • Permite regressão (voltar etapa), diferente das transições por evento (que em geral só avançam — aceite de proposta é forward-only, ver pipe-e-etapa).
  • Gera uma movimentação do tipo manual no histórico do card (ver notas-e-historico-do-negocio), distinguível de movimentações automatica.

Regras de negócio

⚠️ A documentar. Esta tela ainda não tem as regras de negócio levantadas do código.

O que entra aqui: invariante (o que nunca pode acontecer), permissão (quem pode fazer o quê), bloqueio (o que impede a ação e a mensagem que o usuário vê), cálculo (fórmula e arredondamento) e efeito colateral (o que mais muda quando isso acontece).

Regra só entra aqui com origem no código — arquivo e linha. Regra que alguém "acha que é assim" é pior que seção vazia, porque vira decisão de produto baseada em memória.

Onde vive no código

  • Front: pages/comercial/kanban/components/CardMenu.tsx (submenu "Mover para…"), use-acoes-card.ts (mover), api/negocios-api.ts (mover).
  • API: POST :id/mover em negocios.controller.tsapplication/use-cases/mover-etapa-negocio.use-case.ts.

Relacionado

kanban-comercial · board-read-only-orientado-a-eventos · negocio · pipe-e-etapa · notas-e-historico-do-negocio · comercial

Histórico

  • 2026-07-10: primeira ingestão, a partir do código atual (CardMenu.tsx + controller).