Voltar aos projetos
07

IPTV Reseller Platform

O projeto anterior era um bot Telegram monolítico onde toda a lógica de negócio: ativação de licenças, gestão de créditos, pagamentos PIX e controle de revendedores - estava acoplada diretamente nos handlers do bot, sem separação de camadas, sem testes e com manutenção cada vez mais custosa. A refatoração separou o sistema em duas aplicações independentes: uma API REST em NestJS com TypeScript responsável por toda a lógica de negócio (autenticação JWT, hierarquia de usuários, processamento assíncrono de ativações via BullMQ, integração com gateway de pagamento Asaas para PIX, e controle transacional de créditos com PostgreSQL e Prisma), e um bot Telegram novo feito do zero em Python com aiogram 3, que atua exclusivamente como interface de interação - consumindo a API via cliente HTTP tipado, gerenciando sessões em Redis e implementando máquinas de estado para fluxos conversacionais. A nova arquitetura permite evolução independente de cada camada, facilita testes unitários e torna o sistema escalável horizontalmente.

NestJSTypeScriptPythonaiogramPostgreSQLPrismaRedisBullMQJWTDockerPydantichttpxAsaas PIXSwaggerGitHub ActionsTelegram Bot API
Função

Desenvolvedor Backend

Duração

1 mês

Ano

2026

Cliente

Privado

Diagrama de arquitetura: Bot Telegram ~> API NestJS ~> PostgreSQL/Redis/Asaas

Processo de Criação

01

Análise do Legado

Mapeamento dos problemas do bot antigo: lógica de negócio misturada com handlers Telegram, chamadas diretas a banco sem ORM, ausência de autenticação adequada, impossibilidade de testes unitários e acoplamento total que impedia qualquer evolução.

02

Planejamento da Arquitetura

Definição da separação em duas camadas: uma API REST stateless com NestJS (responsável por toda regra de negócio, persistência e integrações) e um bot Telegram stateless em Python (responsável apenas pela interação com o usuário). Comunicação via HTTP com autenticação JWT e refresh token automático.

03

Desenvolvimento da API

Implementação de 10 módulos NestJS: autenticação JWT com refresh via Redis, CRUD de usuários com hierarquia (ADMIN/ULTRA/MASTER/USER), sistema de créditos com reserva transacional, integração Asaas para pagamento PIX, ativação assíncrona de licenças via BullMQ, worker de expiração de pagamentos, rate limiting, RBAC, health checks e documentação Swagger.

04

Desenvolvimento do Bot

Construção do bot com aiogram 3 e 14 routers especializados: autenticação FSM, ativação de licenças com lock de concorrência, compra de créditos com polling de pagamento e recuperação pós-restart, gestão de revendedores com inline queries, cliente HTTP tipado com refresh automático de tokens, e middleware de injeção de sessão.

05

Deploy e CI/CD

Containerização com Docker multi-stage (Node 20 Alpine), docker-compose para infraestrutura local (PostgreSQL 16, Redis 7), e pipeline GitHub Actions para deploy automático via SSH com restart de serviço systemd.

Funcionalidades

Ativação de licenças IPTV por MAC com processamento assíncrono (BullMQ)
Sistema de créditos hierárquico com reserva transacional e logs de auditoria
Pagamento PIX via gateway Asaas com geração de QR code e confirmação por webhook
Polling automático de pagamento com recuperação após restart do bot
Autenticação JWT com refresh token rotativo armazenado em Redis
Hierarquia de usuários com 4 níveis (ADMIN, ULTRA, MASTER, USER)
CRUD completo de revendedores com busca inline no Telegram
Controle de acesso baseado em roles (RBAC) com guards NestJS
Rate limiting global com storage Redis compartilhado
Máquinas de estado (FSM) para fluxos conversacionais no bot
Middleware de sessão com refresh automático transparente de tokens
Worker de expiração automática de pagamentos pendentes
Consulta de licenças por endereço MAC
Painel administrativo via API (gerenciar apps, planos, configurações)
Health checks (PostgreSQL + Redis) via @nestjs/terminus
Deploy automatizado via GitHub Actions + SSH + systemd
Suporte a webhook e polling mode no bot (configurável via env)