Backend - Visão Geral
O backend LIP é uma plataforma SaaS multi-tenant para automação de WhatsApp com IA, construída com Node.js, Express, Prisma e Firebase Admin.
🚀 Stack Técnica
Core
- Node.js 22 - Runtime JavaScript
- TypeScript 5 - Tipagem estática (strict mode)
- Express 4 - Framework web
- Prisma 6 - ORM para PostgreSQL
- Firebase Admin 12 - Auth, Firestore, Realtime DB
Integrações
- OpenAI SDK 4 - IA para chatbots
- Google APIs - googleapis, google-auth-library
- WhatsApp Business API - Meta Cloud API
- Socket.io - WebSocket para tempo real
Infraestrutura
- Google Cloud Run - Deploy serverless
- Kubernetes (K8s) - Orquestração de containers
- PostgreSQL (Supabase) - Banco relacional
- Firebase Firestore - Banco NoSQL tempo real
- Pub/Sub - Mensageria assíncrona
Ferramentas
- Swagger UI - Documentação interativa da API
- Winston - Logger estruturado
- Jest - Framework de testes
- Ajv - Validação de schemas JSON
📁 Estrutura do Projeto
functions/
├── src/
│ ├── app.ts # Configuração Express, CORS, Swagger
│ ├── server.ts # Bootstrap do servidor
│ │
│ ├── config/ # Configurações
│ │ ├── firebase.ts # Firebase Admin setup
│ │ ├── cloudRunConfig.ts # Variáveis de ambiente
│ │ ├── swagger.ts # Geração do spec
│ │ └── index.ts # Reexports
│ │
│ ├── routes/ # Mapeamento de rotas
│ │ ├── index.ts # Agregador principal
│ │ ├── auth.ts
│ │ ├── conversations.ts
│ │ ├── whatsapp.ts
│ │ ├── crm/ # Rotas CRM
│ │ │ ├── index.ts
│ │ │ ├── contacts.ts
│ │ │ ├── deals.ts
│ │ │ └── pipelines.ts
│ │ └── webhook.ts # WhatsApp webhooks
│ │
│ ├── controllers/ # Controladores
│ │ ├── authController.ts
│ │ ├── conversationController.ts
│ │ ├── whatsappController.ts
│ │ ├── crmController.ts
│ │ └── webhookController.ts
│ │
│ ├── services/ # Lógica de negócio
│ │ ├── whatsappService.ts # Integração WhatsApp
│ │ ├── openaiService.ts # Integração OpenAI
│ │ ├── crmService.ts # Lógica de CRM
│ │ ├── trelloService.ts # Integração Trello
│ │ ├── googleService.ts # Google APIs
│ │ └── aiConfiguratorService.ts
│ │
│ ├── middlewares/ # Middlewares
│ │ ├── tenantAuthGuard.ts # Auth multi-tenant
│ │ ├── requestId.ts # Request tracking
│ │ └── errorHandler.ts # Tratamento de erros
│ │
│ ├── models/ # Modelos de dados
│ ├── repositories/ # Camada de dados
│ ├── types/ # TypeScript types
│ └── utils/ # Utilitários
│ ├── logger.ts # Winston logger
│ └── validation.ts # Validators
│
├── prisma/
│ └── schema.prisma # Schema do banco PostgreSQL
│
├── lib/ # Build output (TypeScript compilado)
├── data/ # Dados estáticos
├── swagger.json # Spec OpenAPI gerado
├── package.json
├── tsconfig.json
└── Dockerfile # Container para Cloud Run
🔐 Autenticação Multi-Tenant
Firebase Auth + Custom Claims
Middleware de Autenticação Multi-Tenanttypescript12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
Helpers de Permissão
Helpers para Controle de Permissõestypescript
🗄️ Arquitetura Híbrida de Dados
Firebase Firestore (Tempo Real)
Estrutura das Coleções Firestoretypescript
PostgreSQL via Prisma (CRM & Analytics)
Schema do Banco PostgreSQL com Prismaprisma
📡 Rotas Principais
Configuração de Rotas Principaistypescript
Exemplo de Rota CRM
Exemplo de Rotas CRM com Autenticaçãotypescript
🤖 Integração WhatsApp
Webhook Handler
Handler de Webhooks do WhatsApp Business APItypescript123456789101112131415161718192021222324252627282930313233343536373839
🧠 Integração OpenAI
Serviço de Integração com OpenAI GPT-4typescript1234567891011121314151617181920212223242526272829303132333435
📊 Swagger / Documentação
Configuração do Swagger/OpenAPI para Documentação da APItypescript
🚀 Deploy
Cloud Run
Kubernetes
📝 Próximos Passos
- API Reference - Documentação completa da API
- Autenticação - Detalhes de auth multi-tenant
- CRM & Database - Schema e modelos
- Deploy - Guia de deployment completo
Última atualização
26 de novembro de 2025