Pular para conteúdo

Arquivar negócio

O que é

Encerramento terminal e não-conclusão de um negocio: o operador tira o card de circulação porque ele não vai virar venda (desistência, reprovação, recusa etc.). Disponível no menu ⋮ do card em qualquer coluna do kanban-comercial (Comercial ou Mesa).

Como funciona

Dialog "Arquivar negócio" pede um motivo obrigatório, escolhido de uma lista fixa (ou "Outro", com campo de texto livre):

  • Desistência do cliente
  • Análise de crédito reprovada
  • Recusa da Unico (biometria)
  • Sem contato / lead não responde
  • Proposta expirada
  • Recusa do banco / fiduciária
  • Outro (texto livre)

POST /v2/comercial/negocios/:id/arquivar grava o motivo e move o negócio para a coluna virtual Arquivado/Reprovado — terminal em qualquer pipe (ver pipe-e-etapa). O motivo fica visível no card (badge) enquanto arquivado. Arquivamento também acontece automaticamente pelo evento contatos-mesa.recusado quando a análise de crédito é recusada na Mesa (ver analise-de-credito) — nesse caso não passa pelo dialog, o motivo vem do fluxo de recusa.

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 (dialog + MOTIVOS_ARQUIVAMENTO em domains/comercial/negocios/types/index.ts), use-acoes-card.ts (arquivar).
  • API: POST :id/arquivar em negocios.controller.tsapplication/use-cases/arquivar-negocio.use-case.ts.

Relacionado

kanban-comercial · negocio · pipe-e-etapa · analise-de-credito · comercial

Histórico

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