BREAKING CHANGE: Removed core_companies, core_users, core_user_roles tables Migrations: - Create 020_unify_schema.sql: adds tenant_id, email, name to users table - Create user_roles table (replaces core_user_roles) - Disable 009_create_core_tables.sql (renamed to .disabled) - Update 010_seed_super_admin.sql to use unified tables Backend Repositories: - company_repository.go: use companies table with INT id - user_repository.go: use users/user_roles with INT id conversion Seeders: - All seeders now use companies/users/user_roles tables - Removed all core_* table insertions - Query companies by slug to get SERIAL id This eliminates the redundancy between core_* and legacy tables. |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| database | ||
| dto | ||
| handlers | ||
| infrastructure | ||
| middleware | ||
| models | ||
| router | ||
| services | ||
| utils | ||
| README.md | ||
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 novosmiddleware/- Auth com JWT Service
core/
Camada de domínio puro seguindo DDD.
domain/entity/- Entidades sem dependências externasports/- Interfaces de repositórios e serviçosusecases/- Casos de uso (Login, CreateUser, etc.)
middleware/
Middlewares de segurança aplicados globalmente.
auth.go- Validação JWT + RBACcors.go- Whitelist de origensrate_limit.go- 100 req/min por IPsecurity_headers.go- Headers OWASP
utils/
Utilitários compartilhados.
jwt.go- Geração e validação de tokenssanitizer.go- Sanitização de inputs (XSS prevention)