Sistema de Módulos
Arquitetura dos módulos backend e injeção de dependência.
O backend é dividido em vários módulos chave, cada um responsável por um domínio específico da aplicação.
Módulos Principais
Auth Module (apps/api/src/auth)
Lida com todos os mecanismos de autenticação, incluindo OIDC, estratégia JWT, estratégia local e guards. Atua como o porteiro da aplicação.
User Module (apps/api/src/user)
Gerencia entidades de usuário, perfis e operações relacionadas a usuários. Interage com a entidade User no banco de dados.
Role Module (apps/api/src/role)
Gerencia cargos e permissões. Define o que um usuário pode ou não fazer dentro do sistema.
Organization Module (apps/api/src/organization)
Suporta multi-tenancy agrupando usuários em organizações. Recursos podem ser escopados para organizações específicas.
Files Module (apps/api/src/files)
Lida com uploads de arquivos (ex: avatares de usuários, anexos de documentos). Tipicamente interage com um serviço de armazenamento de objetos como AWS S3.
Whitelabel Module (apps/api/src/whitelabel)
Permite a customização da aparência e comportamento da aplicação com base no tenant ou organização, suportando casos de uso B2B2C.
Chat Module (apps/api/src/chat)
Fornece capacidades de IA usando Vercel AI SDK e Google Gemini. Expõe endpoints para streaming de completions de chat e gerenciamento de interações de IA.
Criando um Novo Módulo
Para adicionar um novo módulo, use o NestJS CLI (se instalado globalmente) ou crie manualmente a estrutura:
nest g module meu-modulo
nest g controller meu-modulo
nest g service meu-moduloCertifique-se de registrar o novo módulo em app.module.ts.