Appearance
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, requercontracts: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ínio | Módulo (src/modules/) | Rota raiz |
|---|---|---|
| Contratos | contracts | /company/:id/contracts |
| Contratos legados | contracts/legacy | /company/:id/contracts/legacy |
| Aditivos e distratos | contract-amendments | dentro de contracts |
| Negociação | negotiation | dentro de contracts + public/negotiation/:token |
| Fluxos de revisão | revision-workflows | /company/:id/workflows/revision |
| Templates | templates | /company/:id/templates |
| Workflows | workflows | /company/:id/workflows |
| Compliance | compliance | /company/:id/compliance |
| Equipe (prestadores) | team | /company/:id/team |
| Área do prestador | provider | rotas de provider |
| Financeiro | financial | /company/:id/financial |
| Notas fiscais | invoices | /company/:id/invoices |
| Relatórios | reports | /company/:id/report |
| Assinatura (plano) | subscriptions | /company/:id/subscriptions |
| Autenticação | auth | /auth/* |
| Empresa | company | /company/* |
| Usuários | user (+ user/onboarding) | /company/:id/user |
| Perfil | profile | /company/:id/profile |
| Fluxos públicos | external | /public/* |
| Dashboard | dashboard | /company/:id/dashboard |
| Agente (Zelor) | agent | onipresente (painel) |
| Notificações | notifications | painel transversal |
| Busca global | search | modal transversal |
| Suporte | support | /company/:id/support |
| Endereço (CEP) | address | componente reutilizável |
| Shell da aplicação | app | layout/header/sidebar |
| Monitoramento de horas | monitoring | redireciona 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, odoc:lint(hash vs versão) falha. - Origem: derivado de
contrasync-vue-spa/src/modules/**(routers,pages/,hooks/,components/) e dos rótulos i18n emsrc/locales/pt-BR.json.