Microserviço NestJS — Gestão de clientes, planos e assinaturas
Este documento consolida as informações técnicas e de arquitetura do projeto "microservice-backoffice", um microserviço NestJS responsável por gestão completa de clientes, planos de assinatura, pagamentos, instâncias (tenants) e integração com gateway de pagamentos Asaas. Implementa sistema completo de backoffice para gestão de clientes e suas assinaturas, fornecendo APIs RESTful para operações CRUD, webhooks de pagamento e controle de instâncias multi-tenant.
Sistema completo de backoffice com os seguintes domínios:
Não aplicável - API pura sem frontend próprio
microservice-backoffice/
├── src/
│ ├── app.controller.ts # Controller principal
│ ├── app.module.ts # Módulo principal
│ ├── app.service.ts # Service principal
│ ├── main.ts # Bootstrap da aplicação
│ ├── asaas/
│ │ ├── asaas.module.ts # Módulo Asaas
│ │ ├── asaas.service.ts # Service de integração
│ │ └── dto/ # DTOs do Asaas (3 arquivos)
│ ├── auth/
│ │ ├── auth.module.ts # Módulo de autenticação
│ │ ├── auth.service.ts # Service de autenticação
│ │ └── auth.controller.ts # Controller de autenticação
│ ├── customers/
│ │ ├── customers.controller.ts # Controller de clientes
│ │ ├── customers.service.ts # Service de clientes
│ │ ├── customers.repository.ts # Repository de clientes
│ │ ├── customers.module.ts # Módulo de clientes
│ │ ├── dto/ # DTOs (2 arquivos)
│ │ └── interfaces/ # Interfaces (1 arquivo)
│ ├── database/
│ │ ├── database.module.ts # Módulo de banco
│ │ └── prisma.service.ts # Service Prisma
│ ├── events/
│ │ ├── events.module.ts # Módulo de eventos
│ │ ├── events.service.ts # Service de eventos
│ │ └── events.controller.ts # Controller de eventos
│ ├── payments/
│ │ ├── payments.controller.ts # Controller de pagamentos
│ │ ├── payments.service.ts # Service de pagamentos
│ │ ├── payments.repository.ts # Repository de pagamentos
│ │ ├── payments.module.ts # Módulo de pagamentos
│ │ └── dto/ # DTOs (1 arquivo)
│ ├── plans/
│ │ ├── plans.controller.ts # Controller de planos
│ │ ├── plans.service.ts # Service de planos
│ │ ├── plans.repository.ts # Repository de planos
│ │ ├── plans.module.ts # Módulo de planos
│ │ ├── dto/ # DTOs (2 arquivos)
│ │ └── interfaces/ # Interfaces (1 arquivo)
│ ├── subscriptions/
│ │ ├── subscriptions.controller.ts # Controller de assinaturas
│ │ ├── subscriptions.service.ts # Service de assinaturas
│ │ ├── subscriptions.repository.ts # Repository de assinaturas
│ │ ├── subscriptions.module.ts # Módulo de assinaturas
│ │ ├── dto/ # DTOs (1 arquivo)
│ │ └── interfaces/ # Interfaces (1 arquivo)
│ └── tenants/
│ ├── tenants.controller.ts # Controller de tenants
│ ├── tenants.service.ts # Service de tenants
│ ├── tenants.repository.ts # Repository de tenants
│ ├── tenants.module.ts # Módulo de tenants
│ └── dto/ # DTOs (1 arquivo)
├── prisma/
│ ├── schema.prisma # Schema do banco
│ ├── migrations/ # Migrations (4 arquivos)
│ └── migrations.toml # Configuração migrations
├── docker-compose.yml # Orquestração PostgreSQL
├── Dockerfile # Build produção
├── package.json # Dependências
├── tsconfig.json # Configuração TypeScript
├── nest-cli.json # Configuração NestJS
└── README.md # Documentação
Microserviço Backoffice robusto e bem estruturado em NestJS, responsável por gestão completa de clientes, planos, assinaturas, pagamentos e instâncias. Implementa integração completa com gateway de pagamentos Asaas, sistema de eventos e soft delete para auditoria. Preparado para produção com documentação Swagger, testes automatizados e arquitetura modular. Sistema essencial para gestão de clientes e assinaturas do ecossistema Aster/UVA.