Bot de WhatsApp para gerenciar produtos e atendimento da loja Gabriel.
src/
├── config/ # Configurações centralizadas
│ ├── index.ts # Configuração principal e variáveis de ambiente
│ ├── openai.ts # Configurações do OpenAI/GPT
│ └── database.ts # Configuração do banco de dados
├── services/ # Serviços de integração
│ ├── gptService.ts # Integração com OpenAI GPT
│ └── whatsappService.ts # Integração com WhatsApp
├── handlers/ # Manipuladores de mensagens
│ ├── messageHandler.ts # Comandos básicos
│ ├── groupHandler.ts # Mensagens de grupo
│ └── privateHandler.ts # Mensagens privadas
├── utils/ # Utilitários e helpers
│ ├── productValidator.ts # Validação de produtos
│ └── fileHelper.ts # Manipulação de arquivos
└── server.ts # Servidor principal
Crie um arquivo .env na raiz do projeto:
# Configurações do Servidor
PORT=3000
# OpenAI Configuration
OPENAI_API_KEY=sua_chave_da_openai_aqui
# WhatsApp Bot Configuration
OBSERVATION_GROUP_ID=120363402790676801@g.us
AUTH_PATH=./auth
UPLOAD_DIR=uploads
# Database Configuration
DATABASE_URL=file:./dev.db
# Environment
NODE_ENV=developmentnpm installnpm run dev- Técnica: Centraliza todas as configurações em um local
- Simples: Mudanças de configuração ficam isoladas, fáceis de encontrar
- Técnica: Camada de serviços para APIs externas e integrações
- Simples: Cada serviço cuida de uma coisa só (WhatsApp, GPT, etc.)
- Técnica: Padrão de roteamento por tipo de mensagem
- Simples: Cada handler cuida de um tipo específico de conversa
- Técnica: Funções puras e reutilizáveis
- Simples: Helpers que podem ser usados em qualquer lugar
- ✅ Conexão automática com QR Code
- ✅ Reconexão automática em caso de queda
- ✅ Observação de grupo específico para produtos
- ✅ Validação automática de dados de produtos
- ✅ Download e armazenamento de imagens
- ✅ Salvamento no banco de dados
- ✅ Feedback detalhado de erros
- ✅ Integração com OpenAI GPT
- ✅ Respostas contextualizadas sobre a loja
- ✅ Consulta de produtos com imagens
- ✅ Comandos básicos (horário, ajuda, etc.)
- Código concentrado em poucos arquivos
- Lógica misturada (config + negócio + handlers)
- Difícil manutenção e teste
- Imports confusos
- Separação clara de responsabilidades
- Configurações centralizadas
- Fácil localização de bugs
- Código mais testável
- Estrutura escalável
Envie uma imagem junto com o texto no formato:
Título: iPhone 16
Cor: branco
Memória: 256gb
Preço: 1500
Carregador: sim
CaboCarregador: sim
Bateria: 90%
Envie mensagens como:
- "Quais produtos vocês têm?"
- "Tem iPhone disponível?"
- "Produtos em estoque"
oi- Saudaçãoajuda- Lista de comandoshorário- Horário de funcionamento # botwhats