Skip to content

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                        # Bootstrap

Estrutura 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.ts

Responsabilidades

PastaResponsabilidade
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