Adicionar Whatsapp
parent
cf018edc93
commit
e51129a1dd
68
Whatsapp.md
Normal file
68
Whatsapp.md
Normal file
@ -0,0 +1,68 @@
|
||||
# Modulo WhatsApp
|
||||
|
||||
Base tecnica:
|
||||
|
||||
- Controller: `src/modules/whatsapp/whatsapp.controller.ts`
|
||||
- Service: `src/modules/whatsapp/whatsapp.service.ts`
|
||||
- Assignment: `src/modules/whatsapp/whatsapp-assignment.service.ts`
|
||||
- Gateway: `src/modules/whatsapp/whatsapp.gateway.ts`
|
||||
- Prefixo: `/whatsapp`
|
||||
|
||||
## Responsabilidade
|
||||
|
||||
Integra com `whatsapp-web.js`, controla chats, mensagens, midia, templates, abertura ativa, fila, atribuicao, transferencia e triagem do Agente Virtual.
|
||||
|
||||
## Endpoints
|
||||
|
||||
| Metodo | Rota | Descricao |
|
||||
|---|---|---|
|
||||
| GET | `/whatsapp/status` | Status da sessao WhatsApp |
|
||||
| GET | `/whatsapp/chats` | Lista conversas |
|
||||
| GET | `/whatsapp/messages/:chatId` | Lista mensagens de uma conversa |
|
||||
| GET | `/whatsapp/media/:chatId/:messageId` | Baixa midia de mensagem |
|
||||
| POST | `/whatsapp/send` | Envia texto/midia |
|
||||
| POST | `/whatsapp/start-attendance` | Inicia atendimento ativo por template |
|
||||
| POST | `/whatsapp/assign` | Assume conversa |
|
||||
| POST | `/whatsapp/transfer` | Transfere conversa |
|
||||
| DELETE | `/whatsapp/release/:chatId` | Libera conversa |
|
||||
| POST | `/whatsapp/close` | Fecha atendimento |
|
||||
| GET | `/whatsapp/assignment/:chatId` | Consulta atribuicao |
|
||||
| GET | `/whatsapp/templates` | Lista templates |
|
||||
| POST | `/whatsapp/templates` | Cria template |
|
||||
| POST | `/whatsapp/templates/update/:id` | Atualiza template |
|
||||
| POST | `/whatsapp/templates/approve-admin/:id` | Aprova template pelo admin |
|
||||
| POST | `/whatsapp/templates/reject-admin/:id` | Reprova template pelo admin |
|
||||
| DELETE | `/whatsapp/templates/:id` | Remove template |
|
||||
|
||||
## Funcoes importantes
|
||||
|
||||
### `whatsapp.service.ts`
|
||||
|
||||
- Inicializa cliente WhatsApp Web.
|
||||
- Emite QR/status.
|
||||
- Lista chats e mensagens.
|
||||
- Envia mensagens e midias.
|
||||
- Dispara roteamento do bot ao receber mensagem.
|
||||
- Executa abertura ativa com template.
|
||||
|
||||
### `whatsapp-assignment.service.ts`
|
||||
|
||||
- Garante schema complementar em `onModuleInit()`.
|
||||
- Controla fila e atribuicao em `whatsapp_chat_atribuicoes`.
|
||||
- Impede envio quando atendimento ativo aguarda resposta do cliente.
|
||||
- Roteia conversas por area, fluxo configurado ou arvore do bot.
|
||||
- Monta observacao de transferencia do Agente Virtual.
|
||||
|
||||
## Eventos em tempo real
|
||||
|
||||
O `whatsapp.gateway.ts` usa Socket.IO para notificar o frontend sobre:
|
||||
|
||||
- novas mensagens;
|
||||
- atualizacoes de chat;
|
||||
- status/QR quando aplicavel.
|
||||
|
||||
## Code review
|
||||
|
||||
- `whatsapp-assignment.service.ts` concentra regra critica e deve receber testes.
|
||||
- Permissao de agente/admin ainda precisa ser validada no backend.
|
||||
- `whatsapp-web.js` e bom para demo/MVP controlado, mas para producao robusta avaliar WhatsApp Cloud API.
|
||||
Loading…
Reference in New Issue
Block a user