Skip to content

Mapa de Features do Front-end (Vue SPA)

Mapa vivo, derivado de uma varredura ponta a ponta de contrasync-vue-spa/src/modules/** (28 módulos, ~88 páginas, 18 routers) em 2026-06-13. Granularidade: domínio → feature/página → fluxo/seção → ação/sub-ação. Ex.: Contratos → Adicionar novo contrato → Fluxo de partes → Adicionar parte pela busca por CPF.

Objetivo

Dar à equipe (e à base neural do Agente) um inventário navegável de tudo que o usuário pode fazer no front-end, organizado por domínio, com as rotas e os gates de papel/permissão relevantes. Não descreve implementação — para isso ver Routing, Estrutura do projeto e os specs em docs/features/.

Como ler os diagramas

  • Cada diagrama é um domínio (módulo) do front. A raiz fica à esquerda; cada nível à direita é mais granular.
  • Entre parênteses, o nome da rota (route-name) quando existe.
  • Gates de acesso aparecem no texto da seção (ex.: borrower, requer contracts:create).
  • Os blocos usam sintaxe Mermaid (renderiza no GitHub e em IDEs; no site VitePress requer o plugin Mermaid).

Cobertura (domínio → módulo → rota raiz)

DomínioMódulo (src/modules/)Rota raiz
Contratoscontracts/company/:id/contracts
Contratos legadoscontracts/legacy/company/:id/contracts/legacy
Aditivos e distratoscontract-amendmentsdentro de contracts
Negociaçãonegotiationdentro de contracts + public/negotiation/:token
Fluxos de revisãorevision-workflows/company/:id/workflows/revision
Templatestemplates/company/:id/templates
Workflowsworkflows/company/:id/workflows
Compliancecompliance/company/:id/compliance
Equipe (prestadores)team/company/:id/team
Área do prestadorproviderrotas de provider
Financeirofinancial/company/:id/financial
Notas fiscaisinvoices/company/:id/invoices
Relatóriosreports/company/:id/report
Assinatura (plano)subscriptions/company/:id/subscriptions
Autenticaçãoauth/auth/*
Empresacompany/company/*
Usuáriosuser (+ user/onboarding)/company/:id/user
Perfilprofile/company/:id/profile
Fluxos públicosexternal/public/*
Dashboarddashboard/company/:id/dashboard
Agente (Zelor)agentonipresente (painel)
Notificaçõesnotificationspainel transversal
Busca globalsearchmodal transversal
Suportesupport/company/:id/support
Endereço (CEP)addresscomponente reutilizável
Shell da aplicaçãoapplayout/header/sidebar
Monitoramento de horasmonitoringredireciona p/ team

1. Contratos (contracts)

Domínio principal. roles: [provider, borrower], requer contracts:view. Criação/edição é borrower.

1.1 Listagem de contratos (list-contract)

mermaid
flowchart LR
  R["Contratos · Listagem (list-contract)"]
  R --> F["Filtros"]
  F --> F1["Buscar por nome"]
  F --> F2["Filtrar por status"]
  F --> F3["Filtrar por progresso"]
  R --> RA["Ações por linha"]
  RA --> RA1["Ver contrato"]
  RA --> RA2["Editar contrato"]
  RA --> RA3["Excluir contrato"]
  R --> B["Ações de topo"]
  B --> B1["Novo contrato (new-contract)"]
  B --> B2["Abrir timeline (contract-timeline)"]
  B --> B3["Menu de automações (Agente)"]
  R --> M["Seleção em massa (checkboxes)"]

1.2 Adicionar / editar contrato — fluxo multistep (new-contract / edit-contract)

Requer contracts:create (novo) ou contracts:edit. Mesmo motor para criar e editar.

mermaid
flowchart LR
  R["Adicionar novo contrato (new-contract)"]

  R --> P["Fluxo de partes"]
  P --> P1["Adicionar contratante (PJ)"]
  P --> P2["Adicionar prestador"]
  P2 --> P2a["Buscar por CPF"]
  P2 --> P2b["Buscar por CNPJ"]
  P2 --> P2c["Validar documento (CPF/CNPJ)"]
  P2 --> P2d["Listar prestadores com contrato ativo"]
  P --> P3["Adicionar parte manualmente"]
  P3 --> P3a["Formulário Pessoa Física"]
  P3 --> P3b["Formulário Pessoa Jurídica"]
  P --> P4["Gerenciar lista de partes"]
  P4 --> P4a["Salvar / carregar lista"]
  P4 --> P4b["Limpar lista"]

  R --> MO["Etapa Modelo"]
  MO --> MO1["Selecionar template"]
  MO --> MO2["Atribuir variáveis"]
  MO2 --> MO2a["Variáveis do contrato (valor, frequência)"]
  MO2 --> MO2b["Variáveis das partes (auto-atribuição)"]
  MO2 --> MO2c["Valores personalizados (manual)"]
  MO --> MO3["Criar grupos de partes"]
  MO --> MO4["Editar documento (cópia A4)"]
  MO --> MO5["Regenerar do template"]

  R --> DO["Etapa Documentos"]
  DO --> DO1["Adicionar documento p/ download"]
  DO --> DO2["Adicionar documento p/ upload pela parte"]
  DO2 --> DO2a["Formatos permitidos / tamanho máx"]
  DO2 --> DO2b["Instruções de upload"]
  DO --> DO3["Editar / remover documento"]

  R --> RE["Etapa Revisão"]
  RE --> RE1["Gerenciar revisores (adicionar / reenviar)"]
  RE --> RE2["Comentar em trecho selecionado"]
  RE2 --> RE2a["Editar / excluir / resolver"]
  RE2 --> RE2b["Responder comentário"]
  RE --> RE3["Sugestões do Agente (jurídico)"]
  RE3 --> RE3a["Aplicar / aplicar manualmente"]
  RE3 --> RE3b["Recusar / refazer análise"]
  RE --> RE4["Aprovar / rejeitar (com motivo)"]
  RE --> RE5["Histórico de versões / restaurar"]

  R --> PR["Etapa Prestador (onboarding)"]
  PR --> PR1["Enviar / reenviar formulário"]
  PR --> PR2["Aprovar / rejeitar respostas"]
  PR --> PR3["Acompanhar upload de documentos"]
  PR3 --> PR3a["Aprovar / rejeitar / baixar"]
  PR3 --> PR3b["Lembrete de upload"]

  R --> SG["Etapa Assinatura"]
  SG --> SG1["Assinantes internos (tomador)"]
  SG --> SG2["Assinantes externos (prestador)"]
  SG --> SG3["Posicionar campos no documento"]
  SG --> SG4["Definir ordem de assinatura"]

  R --> TB["Toolbar"]
  TB --> TB1["Título do contrato"]
  TB --> TB2["Selecionar fluxo (workflow)"]
  TB --> TB3["Vigência (início/fim · indeterminado)"]
  TB --> TB4["Histórico de alterações"]
  TB --> TB5["Salvar rascunho"]
  TB --> TB6["Salvar como template"]
  TB --> TB7["Excluir / cancelar contrato"]

  R --> FA["Ações de fluxo (por status)"]
  FA --> FA1["Iniciar / encerrar negociação"]
  FA --> FA2["Enviar para revisão"]
  FA --> FA3["Iniciar onboarding do prestador"]
  FA --> FA4["Configurar / liberar assinaturas"]
  FA --> FA5["Concluir contrato (auto ao assinar)"]
  FA --> FA6["Reverter para edição"]

1.3 Detalhe do contrato — timeline (contract-detail / contract-timeline)

borrower-only, layout sidebar.

mermaid
flowchart LR
  R["Detalhe do contrato (contract-detail)"]
  R --> TL["Linha do tempo"]
  TL --> TL1["Agrupar por contrato / por prestador"]
  TL --> TL2["Zoom Dia / Mês / Ano"]
  TL --> TL3["Marca do dia atual · scroll sincronizado"]
  R --> SB["Sidebar com abas"]
  SB --> SB1["Informações (dados, status, partes)"]
  SB --> SB2["Compliance (anexar, aprovar/rejeitar)"]
  SB --> SB3["Aditivos e distratos (ver / criar)"]
  R --> AC["Ações"]
  AC --> AC1["Abrir negociação"]
  AC --> AC2["Cancelar contrato (confirmação)"]

1.4 Contratos em risco e renovação (contracts-at-risk / contract-renewal)

mermaid
flowchart LR
  AR["Contratos em risco (contracts-at-risk)"]
  AR --> AR1["Filtro de janela (30/60/90 dias)"]
  AR --> AR2["Snapshot de métricas"]
  AR2 --> AR2a["Vigência estruturada %"]
  AR2 --> AR2b["Vencendo / renovando / vencidos"]
  AR2 --> AR2c["Garantias vencendo"]
  AR --> AR3["Abrir contrato → config. de renovação"]

  RN["Config. de renovação (contract-renewal)"]
  RN --> RN1["Estratégia"]
  RN1 --> RN1a["Sem renovação"]
  RN1 --> RN1b["Mesmos termos"]
  RN1 --> RN1c["Reajuste por índice (IPCA/IGPM/INPC)"]
  RN1 --> RN1d["Negociar"]
  RN --> RN2["Dias de aviso (notice)"]
  RN --> RN3["Renovação automática (toggle)"]
  RN --> RN4["Nível de autonomia (0-3) · teto de valor"]
  RN --> RN5["Simular renovação"]
  RN --> RN6["Rescisão programada"]

1.5 Contratos legados (contracts/legacy)

Importação/incorporação de contratos pré-existentes. Requer legacyDocuments:view.

mermaid
flowchart LR
  R["Contratos legados (legacy)"]
  R --> L["Listagem (legacy-documents)"]
  L --> L1["Filtros (nome, status)"]
  L --> L2["Abrir detalhe / descartar"]
  L --> L3["Reprocessar OCR (individual / todos)"]
  L --> L4["Escanear com IA"]
  L --> L5["Importação em massa (modal + progresso)"]
  R --> I["Incorporar (legacy-incorporate)"]
  I --> I1["Wizard multi-contrato (timeline)"]
  I --> I2["Pré-visualizar documento"]
  I --> I3["Metadados (nome, tipo, valor, vigência, tags)"]
  I --> I4["Partes extraídas (add/remover, validar doc+e-mail)"]
  I --> I5["Submeter incorporação"]
  R --> D["Detalhe (legacy-document-detail)"]
  D --> D1["Baixar original / dados extraídos"]
  D --> D2["Incorporar como novo contrato"]
  D --> D3["Converter em template"]
  D --> D4["Reprocessar OCR / escanear IA / descartar"]

2. Aditivos e distratos (contract-amendments)

Aditivo/distrato/substituição como contrato-filho (reusa o fluxo de contrato, partes herdadas).

mermaid
flowchart LR
  R["Aditivos e distratos (contract-amendments)"]
  R --> L["Listar acordos do contrato"]
  L --> L1["Filtrar por tipo (aditivo/distrato/substituição)"]
  L --> L2["Status: rascunho/ativo/pendente/aplicado/cancelado"]
  L --> L3["Abrir original / abrir acordo"]
  R --> C["Criar novo acordo"]
  C --> C1["Selecionar tipo"]
  C1 --> C1a["Aditivo"]
  C1 --> C1b["Distrato"]
  C1 --> C1c["Substituição"]
  C --> C2["Fluxo multistep (partes fixas/herdadas)"]
  C2 --> C2a["Revisar partes (somente leitura)"]
  C2 --> C2b["Revisar template + variáveis"]
  C2 --> C2c["Revisar documentos"]
  C2 --> C2d["Revisar assinaturas"]
  C --> C3["Toolbar"]
  C3 --> C3a["Nome (sugestão automática)"]
  C3 --> C3b["Tipo de acordo"]
  C3 --> C3c["Vigência (indeterminado bloqueado p/ distrato)"]
  C3 --> C3d["Salvar rascunho / Criar acordo"]

3. Negociação (negotiation)

Interna (dentro de edit-contract) e pública (public/negotiation/:token).

mermaid
flowchart LR
  R["Negociação (negotiation-detail)"]
  R --> O["Abrir negociação"]
  O --> O1["Gerar link público p/ contraparte"]
  O --> O2["Tempo de disponibilidade (dias)"]
  R --> DOC["Documento (modo paper)"]
  DOC --> DOC1["Outline navegável de cláusulas"]
  DOC --> DOC2["Selecionar trecho → propor alteração"]
  R --> PROP["Propor alteração (popover)"]
  PROP --> PROP1["Nova redação"]
  PROP --> PROP2["Motivo"]
  PROP --> PROP3["Remover trecho"]
  R --> SUG["Painel de sugestões"]
  SUG --> SUG1["Sugestões humanas (aceitar/recusar/responder)"]
  SUG --> SUG2["Sugestões do Agente (jurídico)"]
  SUG2 --> SUG2a["Analisar / reanalisar"]
  SUG2 --> SUG2b["Aceitar / recusar (motivo) / desfazer"]
  R --> DISC["Discussão (drawer de replies)"]
  R --> SH["Compartilhar com as partes (copiar link / notificar)"]
  R --> CL["Encerrar negociação"]
  R --> HV["Histórico de versões / restaurar"]

4. Fluxos de revisão (revision-workflows)

Editor visual de fluxo de aprovação por nós. borrower, requer workflows:view.

mermaid
flowchart LR
  R["Fluxos de revisão (revision-workflows)"]
  R --> L["Listagem"]
  L --> L1["Buscar por nome"]
  L --> L2["Ações: editar / duplicar / excluir"]
  L --> L3["Novo fluxo de revisão"]
  R --> E["Editor (criar/editar)"]
  E --> E1["Timeline de nós (arrastar p/ ordenar)"]
  E --> E2["Adicionar nó"]
  E2 --> E2a["Início / Fim"]
  E2 --> E2b["Revisor (usuário)"]
  E2 --> E2c["Revisor (grupo)"]
  E --> E3["Propriedades do nó (drawer)"]
  E3 --> E3a["Revisor / grupo + mín. de revisões"]
  E3 --> E3b["SLA (horas) + escalonamento"]
  E3 --> E3c["Modo: sequencial / paralelo / condicional"]
  E3c --> E3c1["Condicional: variável + operador + valor"]
  E --> E4["Informações (nome, descrição, validação)"]
  E --> E5["Salvar rascunho / publicar / excluir"]

5. Templates (templates)

borrower, requer templates:view. Editor HTML + editor estrutural.

mermaid
flowchart LR
  R["Templates (templates)"]
  R --> L["Listagem (list-template)"]
  L --> L1["Filtros (status, busca)"]
  L --> L2["Ações: editar / duplicar / excluir"]
  R --> C["Criar / editar (new/edit-template)"]
  C --> C1["Upload DOC/DOCX ou em branco"]
  C --> C2["Editor HTML"]
  C2 --> C2a["Selecionar texto → inserir variável"]
  C2 --> C2b["Painel de variáveis (comuns/detectadas/custom)"]
  C2 --> C2c["Origem da variável (tomador/prestador/manual)"]
  C --> C3["Abas laterais (info / preview / variáveis / assinaturas)"]
  C3 --> C3a["Assinantes internos (grupo + membro)"]
  C3 --> C3b["Inserir campo de assinatura/rubrica"]
  C --> C4["Salvar rascunho / publicar / excluir"]
  R --> SBLD["Editor estrutural (template-structure-builder)"]
  SBLD --> S1["Árvore capítulo/seção/cláusula"]
  S1 --> S1a["Adicionar capítulo / filho"]
  S1 --> S1b["Reordenar / remover"]
  SBLD --> S2["Variáveis globais (chave, rótulo, tipo, origem)"]
  SBLD --> S3["Biblioteca de cláusulas"]
  S3 --> S3a["Gerar com IA (prompt)"]
  S3 --> S3b["Buscar / pré-visualizar / arrastar"]
  SBLD --> S4["Editar cláusula (rich text + placeholders)"]
  S4 --> S4a["Condições de exibição (variável == valor)"]
  SBLD --> S5["Bloco de assinaturas (posicionamento)"]
  SBLD --> S6["Validação de pendências"]
  SBLD --> S7["Publicar (semver: major/minor/patch + notas)"]
  SBLD --> S8["Histórico / comparar versões (diff)"]

6. Workflows (workflows)

borrower, requer workflows:view. Composição de etapas do fluxo de contrato.

mermaid
flowchart LR
  R["Workflows (workflows)"]
  R --> L["Listagem (list-workflow)"]
  L --> L1["Filtros (status, busca)"]
  L --> L2["Ações: editar / duplicar / excluir"]
  R --> E["Criar / editar (new/edit-workflow)"]
  E --> E1["Info (nome, descrição)"]
  E --> E2["Timeline de etapas (arrastar/reordenar)"]
  E --> E3["Propriedades da etapa (drawer)"]
  E3 --> ST1["Partes (mín/máx, testemunha)"]
  E3 --> ST2["Formulário (variáveis do prestador)"]
  E3 --> ST3["Modelo (template + mapeamento de variáveis)"]
  ST3 --> ST3a["Múltiplos templates (branches)"]
  E3 --> ST4["Documentos (obrigatórios/opcionais)"]
  E3 --> ST5["Revisão (revisores ou fluxo de revisão)"]
  ST5 --> ST5a["Sugestão do Agente (jurídico)"]
  E3 --> ST6["Upload do prestador (formatos, prazo, máx)"]
  E3 --> ST7["Assinatura (tipo, ordem, assinantes, posicionamento)"]
  E3 --> ST8["Onboarding do prestador (form + upload)"]
  E --> E4["Propriedades comuns (prazo, obrigatoriedade)"]
  E --> E5["Modo do Agente (chat/assistido/autônomo) + instruções"]
  E --> E6["Salvar rascunho / publicar / excluir"]

7. Compliance (compliance)

borrower, requer compliance:view. Fluxos recorrentes de conformidade do prestador.

mermaid
flowchart LR
  R["Compliance (compliance)"]
  R --> L["Listagem (list-compliance)"]
  L --> L1["Filtros (status, busca)"]
  L --> L2["Ações: editar / duplicar / excluir"]
  L --> L3["Novo compliance"]
  R --> E["Detalhe (new/edit-compliance)"]
  E --> E1["Nome / descrição"]
  E --> E2["Etapas (lista arrastável)"]
  E --> E3["Drawer de etapa"]
  E3 --> E3a["Janela de envio (frequência + datas)"]
  E3 --> E3b["Documentos (formatos, obrigatório, validadores)"]
  E3 --> E3c["Dados da plataforma (horas, contratos ativos)"]
  E3 --> E3d["Nota fiscal (automática / manual)"]
  E3 --> E3e["Período de apuração de horas"]
  E --> E4["Salvar rascunho / publicar / excluir"]

8. Equipe — prestadores (team)

A área de Equipe é a lista de prestadores com contrato ativo (não usuários internos). borrower, requer providers:view.

mermaid
flowchart LR
  R["Equipe / prestadores (list-team)"]
  R --> L["Listagem"]
  L --> L1["Filtros (status, tipo de pessoa, contrato)"]
  L --> L2["Busca (nome/documento)"]
  L --> L3["Ações: editar / reenviar convite / excluir"]
  L --> L4["Automações (Agente)"]
  R --> D["Detalhe do membro (team-detail)"]
  D --> D1["Aba Registros (resumo dia/semana/mês)"]
  D --> D2["Aba Consolidado (tabela diária)"]
  D --> D3["Aba Compliance"]
  D3 --> D3a["Anexar / desvincular fluxo"]
  D3 --> D3b["Timeline ano/mês + documentos"]
  D --> D4["Aba Histórico (contratos passados)"]
  D --> D5["Aba Notas fiscais (filtro por ano)"]
  D --> D6["Sidebar: contrato / documentos / ajuste de horas / perfil / sessões"]
  D --> D7["Cancelar contrato do membro · Exportar relatório"]

9. Área do prestador (provider)

Visão do próprio prestador (role: provider).

mermaid
flowchart LR
  R["Área do prestador (provider-layout)"]
  R --> H["Aba Horas (provider-hours)"]
  H --> H1["Registrar horas"]
  H --> H2["Registros / Consolidado / Histórico"]
  H --> H3["Detalhe de período (provider-hours-detail)"]
  R --> C["Aba Compliance (provider-compliance)"]
  C --> C1["Filtros (mês/ano)"]
  C --> C2["Etapas do compliance ativo"]
  C --> C3["Drawer: upload de documentos por etapa"]
  C3 --> C3a["Resumo de horas"]
  C3 --> C3b["Emitir / cancelar nota fiscal (auto/manual)"]
  R --> DOC["Aba Documentos (baixar / status)"]
  R --> NF["Aba Notas fiscais (filtro por ano)"]
  R --> HI["Aba Histórico (contratos)"]
  R --> SB["Sidebar: contrato / documentos / tomador / certificado"]

10. Financeiro (financial)

borrower, requer reports:view.

mermaid
flowchart LR
  R["Financeiro (financial)"]
  R --> O["Visão geral (financial-overview)"]
  O --> O1["Seletor mês/ano"]
  O --> O2["KPIs (custo mensal, prestadores, horas, custo/hora)"]
  O --> O3["Evolução mensal + custo por prestador (gráficos)"]
  O --> O4["Notas fiscais recentes"]
  R --> P["Prestadores (financial-providers)"]
  P --> P1["Filtros (busca, status, mês/ano)"]
  P --> P2["Tabela (valor, horas/mês, custo/mês, status NF)"]
  P --> P3["Abrir detalhe"]
  R --> D["Detalhe do prestador (financial-provider-detail)"]
  D --> D1["Contrato (vigência, valor, dias restantes)"]
  D --> D2["Resumo mensal (horas, valor/hora, custo)"]
  D --> D3["Histórico de notas fiscais"]

11. Notas fiscais (invoices)

borrower.

mermaid
flowchart LR
  R["Notas fiscais (invoices)"]
  R --> L["Listagem (list-invoices)"]
  L --> L1["Filtros (ano, status)"]
  L --> L2["Tabela (referência, status, valor, número, emissão)"]
  L --> L3["Abrir detalhe"]
  R --> EM["Emitir nota (emit-invoice)"]
  EM --> EM1["Info do serviço (competência, contrato, horas, valor)"]
  EM --> EM2["Partes (prestador / tomador)"]
  EM --> EM3["Tributos (base, ISS, PIS, COFINS, INSS, IR, CSLL, líquido)"]
  EM --> EM4["Emitir (bloqueado se fiscal incompleto)"]
  R --> D["Detalhe (detail-invoice)"]
  D --> D1["Tentar novamente (se erro)"]
  D --> D2["Baixar PDF (se emitida)"]
  D --> D3["Dados NFSe (chave, verificação, CNAE, município)"]

12. Relatórios (reports)

borrower, requer reports:view.

mermaid
flowchart LR
  R["Relatórios (reports-list)"]
  R --> T["Tabela de relatórios (tipo, status, formato, tamanho)"]
  T --> T1["Download (se concluído)"]
  T --> T2["Excluir (confirmação)"]
  R --> N["Novo relatório (modal)"]
  N --> N1["Nome"]
  N --> N2["Tipo (diário / semanal / mensal)"]
  N --> N3["Seleção múltipla de prestadores"]
  N --> N4["Criar relatório"]

13. Assinatura / planos (subscriptions)

borrower, memberRoles: [owner, admin].

mermaid
flowchart LR
  R["Planos (subscription-plans)"]
  R --> R0["Motivo de contratação (sem plano / limite / expirado)"]
  R --> P["Periodicidade (mensal / anual com desconto)"]
  R --> G["Grid de planos (cards)"]
  G --> G1["Preço + benefícios resumidos"]
  G --> G2["CTA: contratar / em uso / personalizar"]
  R --> MB["Modal benefícios"]
  MB --> MB1["Checklist completo de funcionalidades"]
  MB --> MB2["Cupom de desconto"]
  MB --> MB3["Quantidade de contratados (plano custom)"]
  MB --> MB4["Processar pagamento"]
  S["Confirmação (subscription-success)"]
  S --> S1["Pendente (aguardando pagamento)"]
  S --> S2["Ativa → painel"]
  S --> S3["Timeout (processando)"]
  S --> S4["Falha → tentar novamente"]

14. Autenticação (auth)

Rotas públicas /auth/*.

mermaid
flowchart LR
  R["Autenticação (auth)"]
  R --> L["Entrar (login)"]
  L --> L1["E-mail + senha"]
  L --> L2["OAuth (Google/GitHub/Microsoft)"]
  L --> L3["Esqueci a senha (modal)"]
  L --> L4["Verificação (e-mail / SMS)"]
  R --> RG["Registrar (register)"]
  RG --> RG1["Nome, e-mail, senha + verificação"]
  R --> RC["Recuperar senha (recovery, por token)"]
  R --> FA["Primeiro acesso (first-access, definir senha)"]
  R --> CB["Callback OAuth (auth-callback)"]
  R --> UN["Desbloquear conta (unlock-account)"]
  R --> ND["Acesso negado / 404"]

15. Empresa (company)

mermaid
flowchart LR
  R["Empresa (company)"]
  R --> A["Meu acesso / seleção (access)"]
  A --> A1["Abas: Tudo / Meus contratos / Minhas empresas"]
  A --> A2["Trocar de empresa"]
  A --> A3["Criar nova empresa"]
  R --> C["Cadastrar empresa (company-new)"]
  C --> C1["Dados gerais (razão, fantasia, CNPJ, cartão CNPJ)"]
  C --> C2["Endereço (CEP, usar endereço pessoal)"]
  C --> C3["Política de privacidade (aceite)"]
  R --> E["Editar empresa (company-config)"]
  E --> E1["Geral (avatar, dados)"]
  E --> E2["Endereço"]
  E --> E3["Assinatura (plano, uso, transações, upgrade, cancelar)"]
  E --> E4["Permissões (perfis + matriz)"]
  E --> E5["Segurança (excluir empresa + código)"]

16. Usuários (user) e onboarding

borrower, requer users:view.

mermaid
flowchart LR
  R["Usuários (user)"]
  R --> L["Listar membros (list-user)"]
  L --> L1["Buscar / filtrar (status, função)"]
  L --> L2["Novo membro (modal: nome, e-mail, CPF, perfil)"]
  L --> L3["Ver detalhes"]
  R --> E["Editar membro (edit-user)"]
  E --> E1["Geral (avatar, dados, excluir)"]
  E --> E2["Permissões (perfil + matriz custom)"]
  E --> E3["Sessões (ativas, IP, data)"]
  R --> O["Onboarding do usuário (user/onboarding)"]
  O --> O1["Dados pessoais (+ verificação SMS)"]
  O --> O2["Endereço (CEP)"]
  O --> O3["Termos de serviço + geolocalização"]

17. Perfil (profile)

mermaid
flowchart LR
  R["Meu perfil (profile)"]
  R --> G["Geral (avatar, nome, telefone, CPF)"]
  R --> AP["Aparência (tema)"]
  R --> S["Segurança"]
  S --> S1["Provedores OAuth conectados"]
  S --> S2["Alterar / registrar senha"]
  R --> SE["Sessões (listar / encerrar)"]
  R --> ME["Memória do Agente"]
  ME --> ME1["Tom, preferências de cláusula, gates"]
  ME --> ME2["Contrapartes recorrentes, autonomia"]
  ME --> ME3["Salvar / limpar memória"]
  R --> LO["Logout"]

18. Fluxos públicos (external)

Acesso por token (/public/*), sem login. Contraparte/prestador.

mermaid
flowchart LR
  R["Fluxos públicos (external)"]
  R --> SG["Assinatura (public/signing/:token)"]
  SG --> SG1["Validar identidade (OTP/e-mail)"]
  SG --> SG2["Desenhar assinatura / rubrica"]
  SG --> SG3["Assinar / rubricar (multipágina)"]
  SG --> SG4["Rejeitar (com motivo)"]
  R --> RV["Revisão (public/review/:token)"]
  RV --> RV1["Validar identidade"]
  RV --> RV2["Comentar / responder / resolver"]
  RV --> RV3["Aprovar (irreversível)"]
  R --> ON["Onboarding (public/onboarding/:token)"]
  ON --> ON1["Validar identidade"]
  ON --> ON2["Upload de documentos (status/rejeição)"]
  ON --> ON3["Preencher formulário dinâmico"]
  ON --> ON4["Enviar para revisão / salvar progresso"]
  R --> NG["Negociação (public/negotiation/:token)"]
  NG --> NG1["Validar identidade"]
  NG --> NG2["Propor alterações / discutir"]
  NG --> NG3["Painel de propostas pessoais"]
  R --> VA["Validação de assinatura (public/validate)"]
  VA --> VA1["Buscar por hash/código"]
  VA --> VA2["Status (válida/inválida) + signatários"]
  VA --> VA3["Timeline de eventos"]

19. Dashboard (dashboard)

borrower, requer dashboard:view.

mermaid
flowchart LR
  R["Dashboard (dashboard)"]
  R --> C["Cartões de estatísticas (total/pendentes/concluídos/aguardando)"]
  R --> RC["Contratos recentes (tabela + link)"]
  R --> GR["Gráfico de status (distribuição)"]
  R --> FD["Feed de atividades"]
  R --> QA["Ações rápidas (novo contrato/template, ver listas)"]

20. Agente — Zelor (agent)

IA onipresente embarcada (painel, não chat de página).

mermaid
flowchart LR
  R["Agente (Zelor)"]
  R --> CH["Chat (painel lateral)"]
  CH --> CH1["Enviar mensagem"]
  CH --> CH2["Sugestões contextuais por tela"]
  CH --> CH3["Histórico (nova / carregar / limpar)"]
  R --> MD["Modos de operação"]
  MD --> MD1["Chat (consulta)"]
  MD --> MD2["Assistido (executa na UI, com confirmação)"]
  MD --> MD3["Autônomo (executa por políticas)"]
  R --> AP["Autopilot por escopo"]
  AP --> AP1["Renovar contratos / lembrar assinaturas"]
  AP --> AP2["Cobrar compliance / aprovar horas previstas"]
  AP --> AP3["Negociação (range mín/máx) + teto de valor"]
  R --> ME["Memória contextual (tom, cláusulas, gates, autonomia)"]
  R --> CF["Configurações (instruções personalizadas)"]

21. Transversais (notifications, search, support, address, app, monitoring)

mermaid
flowchart LR
  N["Notificações (painel)"]
  N --> N1["Marcar todas como lidas"]
  N --> N2["Agrupado (hoje/ontem/semana/antigas)"]
  N --> N3["Scroll infinito + auto-marcar lida"]
  N --> N4["Clique → navegação"]

  S["Busca global (modal)"]
  S --> S1["Resultados: contratos/templates/fluxos/prestadores/membros"]
  S --> S2["Atalhos de ação (ver lista / novo)"]

  SU["Suporte (support)"]
  SU --> SU1["Status operacional"]
  SU --> SU2["WhatsApp / chat / e-mail"]
  SU --> SU3["Abrir chamado / FAQ / docs / agendar ligação"]

  AD["Endereço (address, CEP)"]
  AD --> AD1["Lookup por CEP → preenche rua/bairro/cidade/UF"]

  AP["Shell (app)"]
  AP --> AP1["Header (logo, notificações, usuário, troca de empresa, tema)"]
  AP --> AP2["Sidebar (navegação por módulo, colapsável)"]
  AP --> AP3["Modal de sessão (renovação / inatividade)"]
  AP --> AP4["Status de conexão (offline / reconectando)"]

  MO["Monitoramento de horas (monitoring)"]
  MO --> MO1["Registrar / editar registro"]
  MO --> MO2["Resumo diário/semanal/mensal"]
  MO --> MO3["Requisições retroativas (aprovar/rejeitar)"]

Manutenção deste mapa

  • Quando atualizar: ao adicionar/remover página, rota, etapa de fluxo ou ação relevante no front.
  • Como: editar o diagrama do domínio afetado e incrementar version (minor = conteúdo novo; major = mudança de semântica) + updated. Sem bump, o doc:lint (hash vs versão) falha.
  • Origem: derivado de contrasync-vue-spa/src/modules/** (routers, pages/, hooks/, components/) e dos rótulos i18n em src/locales/pt-BR.json.