# 06 — Fluxos funcionais

Ver também `fluxos/` para versões detalhadas.

## Fluxo principal — Nova análise (SPED → resultado)

```mermaid
flowchart TD
  A[Usuário autentica] --> B[Cadastro/seleção Cliente]
  B --> C[Nova Simulação]
  C --> D{Origem dados?}
  D -->|SPED lote/único| E[Upload e parse SPED]
  D -->|Manual| F[Preenchimento regime atual]
  E --> G[DiagnosticoMvp: confronto + prontidão]
  G --> H[Etapa 2 Conferência]
  H --> I[Corrigir NCM / ClassTrib / cadastro]
  I --> J[Etapa 3 Parâmetros + De-para]
  J --> K[Etapa 4 Gerar/Recalcular Reforma]
  K --> L{Prontidão nao_simulavel?}
  L -->|Sim| M[Bloqueio / forçar com flag]
  L -->|Não| N[Resultados CBS/IBS]
  M --> N
  N --> O[Etapa 5 Dashboard / Exports]
  O --> P[Auditoria em simulacao_evento_log]
```

**Evidências:** rotas `admin.simulacoes.*`, `SpedImportProcessor`, `DiagnosticoMvpService`, `ReformaCalculoService`, views `_mvp_*`.

## Fluxo — Confronto e pendências

```mermaid
sequenceDiagram
  participant U as Usuário
  participant C as Controller/Service
  participant DB as MySQL
  U->>C: Processar SPED / Recalcular confronto
  C->>C: ConfrontoRegrasCatalog + ConfrontoService
  C->>DB: Upsert simulacao_pendencia
  C->>C: ProntidaoService.calcular
  C->>DB: simulacao_prontidao
  C->>DB: AuditoriaService.registrar
  U->>C: Alterar status pendência
  C->>DB: update + log pendencia_resolvida
```

## Fluxo — Identificação Simples Nacional

```mermaid
flowchart LR
  A[Cadastro/atualização Cliente] --> B[ConsultaSimplesJob]
  B --> C[BrasilApiService CNPJ]
  C --> D[Atualiza pessoa.regimetributario]
  D --> E[DiagnosticoMvp processarPessoa]
```

Também: botão em lote nas listagens (doc `SIMPLES-NACIONAL-CONSULTA.md`) — CONFIRMADO documental + service.

## Fluxo — Sync ClassTrib

```mermaid
flowchart TD
  S[Scheduler 06:00] --> J[SyncClassTribJob]
  J --> C[ClassTribSyncService]
  C --> P[Portal SVRS / API / arquivo local]
  P --> T[classtrib_referencia]
```

## Estados — Simulação tributária

```mermaid
stateDiagram-v2
  [*] --> rascunho: criação
  rascunho --> validada_sped: validação SPED
  rascunho --> concluida: conclusão
  validada_sped --> concluida
  note right of rascunho: ENUM migration CONFIRMADO
```

## Estados — Pendência

```mermaid
stateDiagram-v2
  [*] --> aberta
  aberta --> em_revisao
  em_revisao --> resolvida
  aberta --> resolvida: auto ou manual
  aberta --> ignorada
  em_revisao --> ignorada
```

## Estados — Prontidão (classificação)

```mermaid
stateDiagram-v2
  [*] --> calculado: ProntidaoService
  calculado --> simulavel
  calculado --> simulavel_ressalva
  calculado --> nao_simulavel
```
