Documentation Index
Fetch the complete documentation index at: https://docs.pingoai.com.br/llms.txt
Use this file to discover all available pages before exploring further.
Objetivo desta pagina
Se um dev novo pegar apenas esta documentacao, ele deve conseguir:- subir o ambiente
- entender a arquitetura
- localizar qualquer parte do codigo
- implementar features em backend, channel e frontend
- criar migration/seed com seguranca
- debugar erro de request, socket, fila e integracao
1) Mapa do monorepo
Raiz:C:\Users\guilh\crm
Backend-1: API principal, auth, regras de negocio, socket, event bus e workers.channel-2: integracoes de canais (Baileys/Meta), consumers/producers Rabbit e bus de eventos.frontend: app React com rotas, paginas, hooks, contextos e componentes.deploy: infraestrutura Docker (Traefik, Postgres, Redis, RabbitMQ, MinIO, backend, channel, frontend, transcricao).scripts: instaladores automatizados para deploy.
2) Fluxo completo da aplicacao
- Usuario aciona tela no frontend.
- Frontend chama endpoint HTTP no backend.
- Backend executa regra de negocio (service/model) e pode publicar em Rabbit.
- Channel consome eventos/fila e conversa com canal externo.
- Channel devolve resposta/notificacao para backend.
- Backend emite evento via Socket.IO.
- Frontend atualiza interface em tempo real no ExclusiveDay.
3) Como navegar no backend (Backend-1)
Arquitetura principal:
src/server.ts: bootstrap do servidor, fila, crons, socket init.src/app.ts: middlewares globais, CORS, erro global, registro de rotas.src/routes/index.ts: agregador de todos os modulos de rota.src/controllers: camada HTTP.src/services: regra de negocio.src/models: entidades Sequelize.src/middleware/isAuth.ts: validacao de token.src/libs/socket.ts: namespaces e eventos Socket.IO.
- Criar service em
src/services/<Dominio>Services. - Criar/ajustar controller em
src/controllers. - Criar rota em
src/routes/<dominio>Routes.ts. - Registrar no
src/routes/index.ts. - Se precisar realtime, emitir via
getIO()(socket).
4) Como navegar no channel (channel-2)
Arquitetura principal:
src/server.ts: bootstrap do channel, start do bus e inicializacao dos consumers.src/bus-rabbitmq/bus-rabbitmq.ts: registro dos handlers de comandos/eventos.src/bus-rabbitmq/rabbitmq-transport.ts: retry, DLQ, bind exchange/queue.src/handlers: handlers de comandos (baileys/meta/schedule/campaign).src/consumers: consumers RPC diretos.src/producers: envio direto para filas.src/services/flow: logica de flow builder no channel.
- Criar command/event + handler em
src/handlers. - Registrar handler no
bus-rabbitmq.ts. - Se for RPC direto, criar consumer em
src/consumerse iniciar noserver.ts. - Criar producer em
src/producerspara chamadas de outros servicos.
5) Como navegar no frontend (frontend)
Arquitetura principal:
src/routes/index.js: rotas publicas e privadas.src/layout/MainListItems.js: menu lateral e visibilidade por permissao/plano.src/pages: telas por modulo.src/components: componentes reutilizaveis.src/hooks: acesso a API e estado de dominio.src/context: auth, tickets, whatsapp etc.src/services/api.js: cliente HTTP.src/services/socket.js: cliente Socket.IO.
- Criar pagina em
src/pages/<NovaTela>/index.js. - Adicionar rota em
src/routes/index.js. - Adicionar item no menu em
src/layout/MainListItems.js. - Criar hook de dados em
src/hooks. - Integrar endpoints via
src/services/api.js.
6) Migrations e seeds (backend + channel)
Backend:- Migrations:
Backend-1/src/database/migrations - Seeds:
Backend-1/src/database/seeds - Comandos:
npm run db:migrateenpm run db:seed
- Migrations:
channel-2/src/database/migrations - Seeds:
channel-2/src/database/seeds - Comandos:
npm run db:migrateenpm run db:seed
- O
channel-2/package.jsonchamacopy:migrationsantes do migrate. Validar esse passo no ambiente antes de pipeline.
7) Mensageria (RabbitMQ) para dev
Filas de RPC entre backend e channel:check-contact-number-queueget-profile-picture-queuecreate-or-update-contact-queuenotification-queue
backend-event-bus-queuechannel-event-bus-queue
essentials/eventos-rabbitmq
8) Como adicionar um modulo novo (fim a fim)
Checklist rapido:- Definir dominio (ex.:
smart-campaigns). - Backend: rota + controller + service + model (se necessario).
- Channel: producer/consumer/handler (se houver integracao externa).
- Frontend: pagina + rota + menu + hook + componentes.
- Banco: migration e seed quando aplicavel.
- Tempo real: evento socket se a UI precisar de atualizacao imediata.
- Docs: atualizar
modulos-crme este guia.
9) Debug por camada
Backend
- verificar
src/server.tsesrc/app.ts - confirmar token em
isAuth.ts - inspecionar erro de service/controller nos logs
- validar emissao socket em
libs/socket.ts
Channel
- confirmar start do bus em
channel-2/src/server.ts - validar
RABBITMQ_URIeRABBITMQ_QUEUE_NAME - checar handlers registrados no
bus-rabbitmq.ts - acompanhar retries/DLQ no transport custom
Frontend
- confirmar
REACT_APP_BACKEND_URL - checar interceptors/login em
hooks/useAuth.js - validar rota e permissao em
routes/index.jseMainListItems.js - checar assinatura de socket no hook do modulo
10) Convencoes de codigo observadas
- Controllers em
PascalCaseController.ts. - Services em pastas por dominio com sufixo
Service. - Rotas em
camelCaseRoutes.ts. - Models em
PascalCase.ts. - Uso de
isAuthpara proteger endpoints privados. - Uso de
companyIdcomo particionamento funcional em varios fluxos.
11) Roteiro de onboarding para dev novo (1 dia)
- Subir stack (
quickstart) ou ambiente local (development). - Rodar migrations e seeds.
- Login admin e navegar modulos principais.
- Ler
arquitetura-backend-frontend. - Ler
eventos-rabbitmq. - Implementar uma alteracao pequena em um modulo (backend + frontend).
- Validar fluxo com socket/mensageria quando aplicavel.