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