# Dados demonstrativos e seeders

## Objetivo

A suíte de seeders demonstrativos cria registros coerentes entre todos os módulos entregues. Ela foi projetada para desenvolvimento, homologação, apresentação do produto e testes manuais do frontend.

Os nomes, documentos, e-mails, telefones, processos, partes e eventos são fictícios e não representam pessoas ou organizações reais.

## Segurança

- `DemoDataSeeder` recusa execução quando `APP_ENV=production`;
- os documentos demonstrativos são arquivos `.txt` armazenados no disco `local`;
- a carga não utiliza credenciais do AWS S3;
- os e-mails usam os domínios reservados `.test`;
- a senha padrão deve ser alterada em ambientes compartilhados;
- `DEMO_DATA_ENABLED` vem desabilitado por padrão.

## Execução manual

Em um banco vazio ou de homologação:

```bash
php artisan migrate:fresh
php artisan db:seed --class=Database\\Seeders\\DemoDataSeeder
```

O seeder também pode ser executado novamente sem duplicar os registros demonstrativos:

```bash
php artisan db:seed --class=Database\\Seeders\\DemoDataSeeder
```

## Execução automática no ambiente local

Configure:

```dotenv
APP_ENV=local
DEMO_DATA_ENABLED=true
DEMO_USER_PASSWORD="Fluxo@Demo2026"
```

Depois execute:

```bash
php artisan migrate:fresh --seed
```

Quando `DEMO_DATA_ENABLED=false`, o `DatabaseSeeder` mantém o fluxo normal de roles, permissions e administrador configurado pelo `.env`.

## Usuários criados

Todos os usuários utilizam o valor de `DEMO_USER_PASSWORD`.

| Perfil | E-mail |
|---|---|
| Administrador | `admin.demo@fluxojuridico.test` |
| Advogado sênior | `senior.demo@fluxojuridico.test` |
| Advogado júnior | `junior.demo@fluxojuridico.test` |
| Estagiário | `estagiario.demo@fluxojuridico.test` |
| Financeiro | `financeiro.demo@fluxojuridico.test` |

## Registros por módulo

### Fundação e ACL

- um escritório fictício em Aracaju/SE;
- cinco usuários ativos;
- uma função compatível com cada usuário;
- todas as permissions padronizadas pelo `RolePermissionSeeder`.

### CRM

- quatro clientes: ativo, prospect, pessoa jurídica e inativo;
- CPF e CNPJ sintéticos válidos;
- contatos, endereços e histórico de interações;
- dados suficientes para testar busca, filtros e paginação.

### GED

- quatro documentos textuais locais;
- contrato, procuração, evidência e correspondência;
- tags, checksum SHA-256, autoria e data documental;
- vínculos com clientes e processos.

### Financeiro

- três categorias;
- três lançamentos: honorários, despesa e consultoria vencida;
- cinco parcelas;
- pagamento integral, pagamento parcial e pagamento estornado;
- status `pending`, `partially_paid`, `paid` e `overdue` representados nas parcelas ou lançamentos;
- dois lançamentos vinculados a processos jurídicos.

### Processos

- TJSE e TRT da 20ª Região;
- duas comarcas/circunscrições e duas unidades;
- dois processos com números CNJ sintéticos e dígitos verificadores válidos;
- clientes, advogados, partes externas, GED e financeiro relacionados;
- processo público cível e processo trabalhista confidencial.

### Calendário e prazos

- um feriado estadual demonstrativo;
- uma suspensão específica de tribunal;
- quatro prazos: pendente, urgente, vencido e concluído;
- snapshots calculados em dias úteis;
- responsáveis, prioridades, fontes e auditoria de conclusão.

## Organização dos seeders

```text
database/seeders/
├── DemoDataSeeder.php
├── DemoDataReference.php
├── DemoOfficeUserSeeder.php
├── DemoCrmSeeder.php
├── DemoDocumentSeeder.php
├── DemoFinancialSeeder.php
├── DemoLegalSeeder.php
└── DemoDeadlineSeeder.php
```

`DemoDataSeeder` é o orquestrador. Os seeders de módulo dependem da ordem definida nele e não devem ser executados isoladamente em um banco vazio.

## Limpeza

Para remover toda a massa demonstrativa e reconstruir o banco:

```bash
php artisan migrate:fresh
```

Em bancos que contenham dados relevantes, não use `migrate:fresh`. Os seeders demonstrativos foram feitos para bancos descartáveis de desenvolvimento ou homologação.
