diff --git a/Admin.md b/Admin.md index c24436f..eb7d33c 100644 --- a/Admin.md +++ b/Admin.md @@ -10,15 +10,17 @@ Base tecnica: ## Responsabilidade -Sustenta o painel administrativo e parte do painel supervisor: - -- opcoes de perfis e areas; -- overview mensal; -- ranking de atendentes; -- auditoria; -- usuarios e acessos; -- areas/especialidades; -- conteudos da IA. +Sustenta o painel administrativo e parte do painel supervisor: + +- opcoes de perfis e areas; +- overview mensal; +- ranking de atendentes; +- auditoria; +- usuarios e acessos; +- areas/especialidades; +- conteudos da IA. + +O fluxo do agente virtual e a configuracao de triagem ficam no modulo `knowledge-base`, mantendo o prefixo `/admin/knowledge` por compatibilidade. ## Endpoints principais diff --git a/Knowledge-Base-e-Agente-Virtual.md b/Knowledge-Base-e-Agente-Virtual.md index 2f5bd61..ff8db91 100644 --- a/Knowledge-Base-e-Agente-Virtual.md +++ b/Knowledge-Base-e-Agente-Virtual.md @@ -1,10 +1,14 @@ # Knowledge Base e Agente Virtual -Base tecnica: - -- Controller: `src/modules/admin/knowledge-base.controller.ts` -- Service: `src/modules/admin/knowledge-base.service.ts` -- Prefixo: `/admin/knowledge` +Base tecnica: + +- Module: `src/modules/knowledge-base/knowledge-base.module.ts` +- Controller: `src/modules/knowledge-base/knowledge-base.controller.ts` +- Service: `src/modules/knowledge-base/knowledge-base.service.ts` +- Repository: `src/modules/knowledge-base/repositories/knowledge-base.repository.ts` +- Prefixo: `/admin/knowledge` + +O modulo fica separado de `admin` porque a responsabilidade principal nao e administracao de usuarios, e sim configuracao do agente virtual. O prefixo HTTP foi mantido para nao quebrar o frontend e as rotas ja documentadas. ## Responsabilidade @@ -47,17 +51,30 @@ Permite configurar o fluxo do Agente Virtual Sothis: | PUT | `/admin/knowledge/routing-keywords/:id` | Atualiza keyword | | DELETE | `/admin/knowledge/routing-keywords/:id` | Remove keyword | -## Relacao com WhatsApp +## Relacao com WhatsApp O WhatsApp chama `routeIncomingMessage()` em `whatsapp-assignment.service.ts`. Esse metodo tenta: 1. fluxo builder publicado; 2. fluxo configuravel legado; 3. deteccao por keyword/area; -4. fallback para suporte. +4. fallback para suporte. + +## Arquitetura interna + +```text +Controller -> Service -> Repository -> DatabaseService +``` + +- Controller: contrato HTTP, roles e documentacao Swagger. +- Service: regra de negocio do bot, validacao da arvore, normalizacao de keywords e montagem da resposta. +- Repository: queries SQL para `bot_flow_*`, `bot_triage_*` e `area_routing_keywords`. +- DatabaseService: acesso ao PostgreSQL. -## Code review - -- Fluxo builder e fluxo legado coexistem; manter claro qual esta ativo. -- Publicacao de versao deve ser protegida por perfil. -- Textos do bot devem ser revisados para acento e tom. +## Code review + +- Fluxo builder e fluxo legado coexistem; manter claro qual esta ativo. +- Publicacao de versao deve ser protegida por perfil. +- Textos do bot devem ser revisados para acento e tom. +- O schema nao e criado em runtime; tabelas e seeds iniciais devem vir das migrations do repositorio de deploy. +- Proximo passo recomendado: formalizar DTOs de criacao/edicao do fluxo.