# Arquitetura inicial - Wezapp Shots

## Contexto

O Wezapp Shots sera um app interno hospedado em `shots.wezapp.com.br`, pertencente ao projeto Wezapp.

A arquitetura deve ser propria do Wezapp e nao deve reaproveitar estruturas de outros projetos como base acoplada.

## Visao macro

```text
wezapp.com.br
└── shots.wezapp.com.br
    ├── Dashboard interno
    ├── Clientes
    ├── Campanhas
    ├── Shots / Creditos
    ├── Bases de contatos
    ├── Disparos
    ├── Chipeira digital
    ├── Relatorios
    └── Integracao com API do Oratrix
```

## Camadas sugeridas

```text
/app
  /Core
  /Modules
    /Clients
    /Campaigns
    /Shots
    /Contacts
    /Dispatches
    /Channels
    /Reports
    /Settings

/database
  /migrations
  /seeders

/docs
  visao-geral.md
  arquitetura.md
  entidades.md
  banco-inicial.md
  modulos.md
  seguranca.md
  roadmap.md

/api
  /oratrix
```

## Responsabilidades do Wezapp Shots

O Shots sera responsavel por:

- Criar e gerir clientes.
- Criar e gerir campanhas.
- Registrar compra de shots.
- Controlar saldo de shots.
- Importar e organizar bases de contatos.
- Criar filas de disparo.
- Distribuir disparos entre canais.
- Registrar consumo de shots.
- Registrar logs operacionais.
- Exibir dashboard interno.
- Gerar relatorios internos.

## Responsabilidades da API do Oratrix

A API do Oratrix sera consumida como camada externa de envio/conversacao.

Ela deve ser responsavel por:

- Receber requisicoes de envio.
- Executar envio via canais conectados.
- Retornar status tecnico.
- Registrar payloads tecnicos.
- Gerenciar integracoes com WhatsApp, Meta ou outros provedores.

## Regra de integracao

O Wezapp Shots nao deve depender do banco interno do Oratrix.

A comunicacao deve acontecer via API, contrato documentado, token seguro e logs de requisicao/resposta.

## Diretriz arquitetural

Evitar remendos e acoplamentos diretos. Toda integracao externa deve passar por uma camada de adapter/service dentro do Wezapp.

Exemplo:

```text
Wezapp Shots -> OratrixApiClient -> API Oratrix -> Provedor WhatsApp
```
