docs(ativacao): POST /provision implementado (trajeto idempotente)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -41,11 +41,25 @@ e **idempotente** (re-rodar não duplica):
|
||||
- Qualquer passo novo do trajeto deve ser refletido nos dois lados (ver regra de
|
||||
registro bidirecional em [integracao-satelites.md](integracao-satelites.md)).
|
||||
|
||||
## Pendência / implementação
|
||||
- [ ] Endpoint de provisionamento (`POST /api/instances/provision`) que encapsula os
|
||||
passos 1–7 de forma idempotente, com resposta de "trajeto".
|
||||
- [ ] Detecção Business no `connect` gravando `isBusiness`.
|
||||
- [ ] Setor + Secretária default automáticos.
|
||||
- [ ] Registro de webhook automatizado a partir do pair.
|
||||
- [ ] Gatilho de `sync-knowledge` no fim do trajeto.
|
||||
## Implementado (28/jun/2026)
|
||||
`POST /api/instances/provision` (auth, escopo tenant). Body:
|
||||
`{ name, engine?, webhookUrl?, sector?, connect? }`. **Idempotente** (re-rodar não
|
||||
duplica). Devolve `{ instance, trajeto[] }` com cada passo visível:
|
||||
- `instancia` (criada/existente) — upsert por unique `[tenantId, name]`.
|
||||
- `engine` (definida/mantida) — **`baileys7` (API estável) por padrão** ao criar.
|
||||
- `setor` (criado/existente) — `ensureSector`, default "Atendimento".
|
||||
- `webhook` (configurado/inalterado/omitido).
|
||||
- `conexao` (iniciada/pulada) — se `connect:true`, emite QR via Socket.IO.
|
||||
- `business` (pendente) — detectada ao conectar.
|
||||
- `secretaria` / `conhecimento` (pendentes) — passos de plugin/satélite.
|
||||
|
||||
> Validado em dev: 1ª chamada → 201 (cria, engine baileys7, setor); 2ª → 200
|
||||
> ("existente", sem duplicar). Artefatos de teste removidos.
|
||||
|
||||
## Pendência restante
|
||||
- [ ] Detecção Business no `connect` gravando `isBusiness` (passo `business`).
|
||||
- [ ] Secretária default automática (via plugin `secretaria`).
|
||||
- [ ] Registro de webhook automatizado a partir do pair (preencher `webhookUrl`).
|
||||
- [ ] Gatilho de `sync-knowledge` no fim do trajeto (satélite).
|
||||
- [ ] UI de onboarding consumindo `/provision` + exibindo o trajeto.
|
||||
</content>
|
||||
|
||||
@@ -38,10 +38,12 @@
|
||||
- [ ] Política de retenção (arquivar/descartar áudio após transcrição salva).
|
||||
|
||||
## Ativação do WhatsApp (trajeto inteligente)
|
||||
- [ ] Transformar `POST /` + `POST /:id/connect` em um **trajeto guiado e idempotente**
|
||||
que cria e configura a conta no motor automaticamente (instância, pair/tenant,
|
||||
setor + secretária default, webhook, engine, detecção Business). Ver
|
||||
[ativacao-whatsapp.md](ativacao-whatsapp.md). O satélite orquestra como braço do motor.
|
||||
- [x] `POST /api/instances/provision` — trajeto guiado e **idempotente** (instância +
|
||||
engine `baileys7` + setor default + webhook/connect opcionais), devolve o
|
||||
`trajeto[]` visível. Ver [ativacao-whatsapp.md](ativacao-whatsapp.md).
|
||||
- [ ] Detecção Business no connect (grava `isBusiness`).
|
||||
- [ ] Secretária default automática (plugin) + webhook a partir do pair.
|
||||
- [ ] Gatilho de `sync-knowledge` no fim do trajeto + UI de onboarding.
|
||||
|
||||
## Inbox / Secretária (já entregue nesta frente)
|
||||
- [x] Transcrição/descrição no motor (Gemini) → `messages.transcription`.
|
||||
|
||||
Reference in New Issue
Block a user