# Índice da Documentação — OmniMeta

Ponto único de entrada da documentação técnica. Português no texto; termos técnicos e identificadores em inglês.

---

## 1) Decisões e Arquitetura

- **ADRs**
  - [ADR-001](./adr/ADR-001-billing-broker.md) — Billing Broker (ledger, rate cards, API + webhook)
- **Arquitetura**
  - [ARCHITECTURE.md](./architecture/ARCHITECTURE.md) — visão do gateway e componentes
  - [Padrão: orquestrador multi-parceiro](./architecture/ARCHITECTURE.md#padrão-orquestrador-multi-parceiro-coreomnimetausecase) — separação orquestrador × implementação por parceiro; **obrigatório** em toda feature nova ligada a `WhatsappAccount`

## 2) Padrões

- [DOCUMENTATION_STANDARDS](./standards/DOCUMENTATION_STANDARDS.md) — como escrever e manter docs
- [NAMING_CONVENTIONS](./standards/NAMING_CONVENTIONS.md) — collections, campos, API, webhooks

## 3) Módulos

- [BILLING_BROKER](./modules/BILLING_BROKER.md) — precificação por mensagem (PMP), ledger e entrega ao cliente
- [WHATSAPP_FLOWS](./modules/WHATSAPP_FLOWS.md) — envio, CRUD, resposta inbound e Data Exchange de WhatsApp Flows (Meta oficial e Gupshup)
- [WHATSAPP_GROUPS](./modules/WHATSAPP_GROUPS.md) — CRUD, participantes, link de convite e mensagens de grupo do WhatsApp (Meta oficial)
- [REQUEST_CONTACT_INFO](./modules/REQUEST_CONTACT_INFO.md) — pedir telefone a um contato conhecido só por `bsuid` (Meta oficial e Gupshup); reveal entregue ao cliente via `NEW_MESSAGE` já existente

---

## Convenção rápida

| Camada | Case |
| :----- | :--- |
| Collection / campo Mongo / REST API | `snake_case` |
| Entity / DTO / UseCase props | `camelCase` |
| Webhook outbound (cliente) | `camelCase` |
| Eventos (`signed_events`) | `SCREAMING_SNAKE` |

Em caso de divergência entre doc e código: **a implementação prevalece** e a inconsistência deve ser reportada.
