# Seguranca - Wezapp Shots

## Principios

O Wezapp Shots sera usado para operacoes internas de alto volume. Por isso, seguranca, rastreabilidade e controle de acesso devem existir desde a primeira versao.

## Regras iniciais

1. O painel e interno e nao deve ser exposto como area de cliente.
2. Todo usuario deve ser autenticado.
3. Acoes sensiveis devem ser auditadas.
4. Credenciais de API devem ser protegidas.
5. Payloads tecnicos devem ser registrados com cuidado.
6. Dados de contatos devem ser tratados como informacao sensivel.
7. Nenhum disparo deve ocorrer sem saldo e campanha vinculada.
8. Nenhum canal deve disparar acima do limite configurado.
9. Erros recorrentes em canal devem gerar pausa ou alerta.
10. Integracoes externas devem ter timeout, logs e tratamento de falhas.

## Controle de acesso

Perfis iniciais sugeridos:

- Admin
- Operador
- Financeiro
- Leitura

Permissoes iniciais:

- Gerenciar clientes
- Gerenciar campanhas
- Gerenciar shots
- Importar bases
- Criar disparos
- Iniciar disparos
- Pausar disparos
- Gerenciar canais
- Ver relatorios
- Gerenciar configuracoes

## Auditoria

Registrar no minimo:

- Criacao de cliente
- Alteracao de cliente
- Criacao de campanha
- Alteracao de campanha
- Compra de shots
- Ajuste manual de shots
- Importacao de base
- Criacao de job de disparo
- Inicio de disparo
- Pausa de disparo
- Cancelamento de disparo
- Alteracao de canal
- Alteracao de configuracao

## Credenciais

Credenciais de API, tokens e chaves nao devem ser versionados no Git.

Arquivos sensiveis esperados devem ser ignorados por `.gitignore`, como:

```text
.env
.env.*
*.key
*.pem
*.sql
*.zip
/storage/logs/*
/storage/backups/*
```

## Logs

Logs devem ajudar na auditoria e no suporte, mas nao devem expor segredos.

Evitar gravar em texto puro:

- Tokens
- Senhas
- Chaves privadas
- Credenciais de banco
- Credenciais de provedores

## Bases de contatos

Bases de contatos devem ter controle de origem, importacao e uso.

Regras iniciais:

- Registrar quem importou.
- Registrar data de importacao.
- Validar formato de telefone.
- Identificar duplicidades.
- Permitir bloqueio/opt-out quando aplicavel.
- Evitar exportacoes desnecessarias.

## Integracao com Oratrix

A integracao com Oratrix deve usar:

- Token seguro
- HTTPS
- Timeout
- Retry controlado
- Logs de request/response
- Tratamento de erro
- Registro de external_message_id quando retornado

O Wezapp Shots nao deve acessar diretamente o banco do Oratrix.
