5
Admin
Rafael Lopes edited this page 2026-06-02 09:07:02 -03:00
Modulo Admin
Base tecnica:
- Controller:
src/modules/admin/admin-access.controller.ts - Service:
src/modules/admin/admin-access.service.ts - Repository:
src/modules/admin/repositories/admin-access.repository.ts - DTOs:
src/modules/admin/dto/admin-access.dto.ts - Prefixo:
/admin/access
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.
O fluxo do agente virtual e a configuracao de triagem ficam no modulo knowledge-base, mantendo o prefixo /admin/knowledge por compatibilidade.
A agenda de contatos fica no modulo contacts, mantendo o prefixo /contacts por compatibilidade.
Presenca e notas do atendente ficam no modulo agent, mantendo os prefixos /agent/presence e /agent/notes.
Endpoints principais
| Metodo | Rota | Perfis | Descricao |
|---|---|---|---|
| GET | /admin/access/options |
Admin, Supervisor, Agente | Lista perfis e areas ativas |
| GET | /admin/access/overview |
Admin, Supervisor | Indicadores administrativos |
| GET | /admin/access/ranking?areaId= |
Admin, Supervisor | Ranking de atendentes |
| GET | /admin/access/audit?page=&limit= |
Admin, Supervisor | Eventos de auditoria |
| GET | /admin/access/users |
Admin | Lista usuarios com perfis/areas |
| PUT | /admin/access/users/:id |
Admin | Atualiza perfis e especialidades |
| GET | /admin/access/areas |
Admin, Supervisor | Lista areas |
| POST | /admin/access/areas |
Admin | Cria area |
| PUT | /admin/access/areas/:id |
Admin | Atualiza area |
| DELETE | /admin/access/areas/:id |
Admin | Desativa area |
| GET | /admin/access/ai-contents |
Admin | Lista documentos da IA |
| GET | /admin/access/ai-contents/:id/file |
Admin | Retorna arquivo base64 para download |
| POST | /admin/access/ai-contents |
Admin | Adiciona documento da IA |
| DELETE | /admin/access/ai-contents/:id |
Admin | Remove documento da IA |
Funcoes importantes
getOptions(): carrega perfis e areas para selects do frontend. Agente tambem acessa esta rota para abrir atendimento.listUsers(): monta usuario comperfis,areas,perfilPrincipal,areaPrincipaleaccessStatus.updateUserAccess(): apaga e recria vinculos de perfil/especialidade em transacao.listAiContents(): lista metadados dos documentos da IA sem devolver o base64.getAiContentFile(): devolve o conteudo base64 para download.logAudit(): registra eventos administrativos com o usuario autenticado vindo do JWT.
Arquitetura interna
O modulo segue a separacao:
Controller -> Service -> Repository -> DatabaseService
- Controller: HTTP, roles, params e DTOs.
- Service: regra de negocio, normalizacao, transacao e auditoria.
- Repository: SQL e persistencia.
- DatabaseService: pool PostgreSQL e transacoes.
O modulo nao cria tabelas em runtime. Tabelas como admin_audit_logs e ai_knowledge_contents devem existir via migrations do repositorio de deploy.
Code review
updateUserAccess()e sensivel e exige Admin.- Conteudo IA hoje armazena base64 em banco; avaliar storage externo se os arquivos crescerem.
- Auditoria usa o usuario autenticado como ator. Proximo passo natural e ampliar cobertura para outros modulos.