# 08 — Modelo de dados

## Inventário de tabelas no banco da aplicação (CONFIRMADO)

53 tabelas listadas via Laravel DB em `simulador_tributa` (2026-09-29), incluindo Spatie, sessions, failed_jobs e núcleo fiscal.

### Núcleo funcional

| Tabela | Finalidade |
|--------|------------|
| `tenant` | Organização SaaS |
| `empresa` | Unidade/filial do tenant |
| `pessoa` | Cliente/fornecedor/funcionário (CNPJ) |
| `users` / `usershist` | Usuários + histórico |
| `roles` / `permissions` / pivôs Spatie | ACL |
| `simulacao_tributaria` | Cabeçalho simulação (mensal/grupo) |
| `simulacao_empresa_snapshot` | Snapshot cadastral |
| `simulacao_receita_item` | Receitas regime atual |
| `simulacao_credito_item` | Créditos |
| `simulacao_saldo_anterior` | Saldos |
| `simulacao_deducao_iss` | Deduções ISS |
| `simulacao_aliquota` | Alíquotas |
| `simulacao_resultado` | Resultados regime atual |
| `simulacao_evento_log` | Auditoria |
| `simulacao_mapa_depara` | Regras de-para |
| `simulacao_pendencia` | Pendências diagnóstico |
| `simulacao_prontidao` | Score prontidão |
| `simulacao_versao` | Snapshots versão |
| `simulacao_sped_correcao` | Correções NCM/ClassTrib por cliente |
| `sped_import` | Cabeçalho importação |
| `sped_doc` | Capa documento (sem Model Eloquent dedicado) |
| `sped_doc_item` | Itens fiscais normalizados |
| `sped_reg_0200` | Cadastro produto SPED |
| `sped_import_participante` | Participantes 0150 |
| `reforma_simulacao` | Cabeçalho reforma |
| `reforma_simulacao_import` | SPEDs ligados à reforma |
| `reforma_produto_item` | Produtos agregados |
| `reforma_parametro` | Parâmetros CBS/IBS |
| `reforma_resultado` | Resultados reforma |
| `reforma_cenario` | Cenários por ano |
| `reforma_*_versao` | Versionamento parâmetros/cenário/depara |
| `classtrib_referencia` | Catálogo cClassTrib |
| `prodserv` / `prodservtipo` / `prodserv_conversao_unidade` | Cadastro produto |
| `ui_card_feedback` | Feedback UI |
| `user_tour_dismissal` | Tours |

### Legado presente no schema / migrations, uso residual

`evento`, `eventotipo`, `eventopessoa`, `timetracking`, `upload`, `tipopessoa`, agendas (migrations; uso fora do menu atual).

## Dicionário — `simulacao_tributaria` (CONFIRMADO `db:table`)

| Campo | Tipo | Notas |
|-------|------|-------|
| idsimulacao | PK bigint | |
| idtenant | FK | TenantScope |
| idpessoa | FK | Cliente |
| idsimulacao_pai | nullable | Grupo consolidado |
| escopo | varchar(16) default mensal | `grupo` no código |
| periodo_apuracao | enum Mensal/Trimestral/Anual | |
| mesano | char(7) | AAAA-MM |
| regime | enum lucro_real/lucro_presumido/simples | |
| estado | char(2) nullable | |
| atividade_principal | varchar(80) | |
| fonte_dados | enum manual/sped/hibrido | |
| status | enum rascunho/concluida/validada_sped | |
| observacao | varchar(500) | |
| timestamps | | |

## Diagrama ER (núcleo)

```mermaid
erDiagram
    tenant ||--o{ users : possui
    tenant ||--o{ empresa : possui
    empresa ||--o{ pessoa : cadastra
    pessoa ||--o{ simulacao_tributaria : analisa
    pessoa ||--o{ sped_import : importa
    pessoa ||--o{ simulacao_pendencia : possui
    pessoa ||--o{ simulacao_prontidao : score
    simulacao_tributaria ||--o| reforma_simulacao : reforma
    simulacao_tributaria ||--o{ simulacao_receita_item : receitas
    simulacao_tributaria ||--o{ simulacao_resultado : resultados
    simulacao_tributaria ||--o{ simulacao_evento_log : audita
    simulacao_tributaria ||--o{ simulacao_tributaria : pai_filho
    sped_import ||--o{ sped_doc_item : itens
    sped_import ||--o{ sped_reg_0200 : cadastro
    reforma_simulacao ||--|| reforma_parametro : params
    reforma_simulacao ||--o{ reforma_produto_item : produtos
    reforma_simulacao ||--o{ reforma_resultado : resultados
    reforma_simulacao ||--o{ simulacao_mapa_depara : depara
```

## Observações de integridade

- Create migration de `tenant` **não** está no repositório (só ALTERs) — INFERIDO schema herdado.
- Models `Agencia`, `NfItem` referenciados mas **ausentes** — legado quebrado.
- SoftDeletes: **não** usado nos Models — CONFIRMADO.
