Appearance
Estrutura de Diretórios
Organização de arquivos e pastas do projeto.
Visão Geral
src/
├── common/ # Infraestrutura compartilhada
│ ├── decorators/ # Decorators customizados
│ │ ├── current-user.decorator.ts
│ │ ├── current-company.decorator.ts
│ │ ├── public.decorator.ts
│ │ ├── skip-company.decorator.ts
│ │ └── require-company.decorator.ts
│ ├── filters/ # Exception filters
│ │ ├── http-exception.filter.ts
│ │ └── prisma-exception.filter.ts
│ ├── guards/ # Auth guards
│ │ ├── jwt-auth.guard.ts
│ │ └── company.guard.ts
│ ├── interceptors/ # Response interceptors
│ │ ├── transform.interceptor.ts
│ │ └── logging.interceptor.ts
│ ├── pipes/ # Validation pipes
│ │ └── validation.pipe.ts
│ └── types/ # Tipos compartilhados
│ ├── api-response.type.ts
│ └── pagination.type.ts
│
├── config/ # Configurações
│ ├── app.config.ts
│ ├── auth.config.ts
│ └── database.config.ts
│
├── modules/ # Módulos de features
│ ├── auth/
│ ├── contracts/
│ ├── templates/
│ ├── dashboard/
│ ├── monitoring/
│ ├── provider/
│ ├── prestadores/
│ ├── reports/
│ └── settings/
│
├── services/ # Serviços globais
│ └── prisma.service.ts
│
├── app.module.ts # Módulo raiz
└── main.ts # BootstrapEstrutura de um Módulo
Cada módulo segue a estrutura:
module/
├── module.ts # Configuração do módulo NestJS
├── controllers/
│ ├── index.ts
│ └── entity.controller.ts
├── services/
│ ├── index.ts
│ └── entity.service.ts
├── repository/
│ ├── index.ts
│ └── entity.repository.ts
├── domain/
│ ├── index.ts
│ ├── entities/
│ │ └── entity.entity.ts
│ ├── interfaces/
│ │ └── entity.interface.ts
│ └── enums/
│ └── entity-status.enum.ts
└── data/
├── index.ts
├── dto/
│ ├── index.ts
│ ├── create-entity.dto.ts
│ ├── update-entity.dto.ts
│ ├── search-entity.dto.ts
│ └── entity-response.dto.ts
└── mappers/
├── index.ts
└── entity.mapper.tsResponsabilidades
| Pasta | Responsabilidade |
|---|---|
controllers/ | Endpoints HTTP, validação de entrada, documentação Swagger |
services/ | Regras de negócio, orquestração, transações |
repository/ | Acesso ao banco, queries Prisma, paginação |
domain/entities/ | Entidades de negócio (sem dependência de framework) |
domain/interfaces/ | Contratos e interfaces |
domain/enums/ | Enumerações de domínio |
data/dto/ | Data Transfer Objects (entrada/saída) |
data/mappers/ | Conversão Entity ↔ DTO |
Documento atualizado em Janeiro 2026