# Internal - Backend Core Este diretório contém toda a lógica interna do backend, seguindo princípios de **Clean Architecture**. --- ## 📁 Estrutura de Módulos | Diretório | Camada | Responsabilidade | |-----------|--------|------------------| | `api/` | Interface | Handlers e middlewares (Clean Arch) | | `core/` | Domain | Entidades, ports e use cases (DDD) | | `database/` | Infrastructure | Conexão GORM com PostgreSQL | | `dto/` | Interface | Data Transfer Objects (request/response) | | `handlers/` | Interface | Controllers HTTP (legacy) | | `infrastructure/` | Infrastructure | Implementações de ports | | `middleware/` | Interface | Middlewares de segurança | | `models/` | Infrastructure | Modelos GORM | | `router/` | Interface | Configuração de rotas | | `services/` | Application | Lógica de negócios (legacy) | | `utils/` | Shared | Utilitários (JWT, Sanitizer) | --- ## 🏗️ Fluxo de Requisição ``` HTTP Request │ ▼ ┌─────────────┐ │ Middleware │ (Auth, CORS, Rate Limit, Security Headers) └─────────────┘ │ ▼ ┌─────────────┐ │ Router │ (router/router.go) └─────────────┘ │ ▼ ┌─────────────┐ │ Handler │ (api/handlers/ ou handlers/) └─────────────┘ │ ▼ ┌─────────────┐ │ UseCase │ (core/usecases/) └─────────────┘ │ ▼ ┌─────────────┐ │ Repository │ (infrastructure/persistence/) └─────────────┘ │ ▼ ┌─────────────┐ │ Database │ (PostgreSQL via GORM) └─────────────┘ ``` --- ## 📦 Módulos Detalhados ### `api/` Implementação Clean Architecture dos handlers e middlewares. - `handlers/` - Controllers HTTP novos - `middleware/` - Auth com JWT Service ### `core/` Camada de domínio puro seguindo DDD. - `domain/entity/` - Entidades sem dependências externas - `ports/` - Interfaces de repositórios e serviços - `usecases/` - Casos de uso (Login, CreateUser, etc.) ### `middleware/` Middlewares de segurança aplicados globalmente. - `auth.go` - Validação JWT + RBAC - `cors.go` - Whitelist de origens - `rate_limit.go` - 100 req/min por IP - `security_headers.go` - Headers OWASP ### `utils/` Utilitários compartilhados. - `jwt.go` - Geração e validação de tokens - `sanitizer.go` - Sanitização de inputs (XSS prevention)