83 lines
3.3 KiB
Markdown
Executable file
83 lines
3.3 KiB
Markdown
Executable file
# 🏗️ Estructura Clean Architecture - Backend
|
|
|
|
## 📁 Estructura de Carpetas
|
|
|
|
```
|
|
backend/src/
|
|
├── domain/ # 🎯 DOMAIN LAYER
|
|
│ ├── entities/ # Entidades de negocio
|
|
│ │ ├── ContentItem.ts
|
|
│ │ ├── Drug.ts
|
|
│ │ ├── GlossaryTerm.ts
|
|
│ │ ├── MediaResource.ts
|
|
│ │ ├── MedicalReview.ts
|
|
│ │ └── index.ts
|
|
│ │
|
|
│ ├── value-objects/ # Objetos de valor inmutables
|
|
│ │ ├── ContentStatus.ts
|
|
│ │ ├── ContentPriority.ts
|
|
│ │ └── index.ts
|
|
│ │
|
|
│ ├── services/ # Servicios de dominio (pendiente)
|
|
│ ├── repositories/ # Interfaces de repositorios
|
|
│ │ ├── IContentRepository.ts
|
|
│ │ ├── IDrugRepository.ts
|
|
│ │ ├── IGlossaryRepository.ts
|
|
│ │ ├── IMediaRepository.ts
|
|
│ │ ├── IReviewRepository.ts
|
|
│ │ └── index.ts
|
|
│ │
|
|
│ └── events/ # Eventos de dominio (pendiente)
|
|
│
|
|
├── application/ # 🔧 APPLICATION LAYER
|
|
│ ├── services/ # Servicios de aplicación (pendiente)
|
|
│ ├── use-cases/ # Casos de uso (pendiente)
|
|
│ └── dto/ # Data Transfer Objects (pendiente)
|
|
│
|
|
├── infrastructure/ # 🔌 INFRASTRUCTURE LAYER
|
|
│ ├── repositories/ # Implementaciones (pendiente)
|
|
│ ├── database/ # Acceso a BD (pendiente)
|
|
│ ├── storage/ # Almacenamiento (pendiente)
|
|
│ ├── cache/ # Caché (pendiente)
|
|
│ └── external/ # Servicios externos (pendiente)
|
|
│
|
|
├── presentation/ # 🌐 PRESENTATION LAYER
|
|
│ ├── routes/ # Rutas Express (existente)
|
|
│ ├── middleware/ # Middleware (existente)
|
|
│ └── validators/ # Validadores Zod (existente)
|
|
│
|
|
└── shared/ # 🔗 CÓDIGO COMPARTIDO
|
|
├── types/ # Tipos compartidos
|
|
├── errors/ # Errores compartidos
|
|
└── utils/ # Utilidades compartidas
|
|
```
|
|
|
|
## ✅ Estado Actual
|
|
|
|
### Completado (Ticket 1.1)
|
|
- ✅ Estructura de carpetas creada
|
|
- ✅ Interfaces de repositorios definidas
|
|
- ✅ Entidades de dominio creadas (tipos TypeScript)
|
|
- ✅ Value Objects creados (ContentStatus, ContentPriority)
|
|
- ✅ Tipos compartidos exportados
|
|
- ✅ Errores de dominio definidos
|
|
- ✅ Utilidades compartidas
|
|
|
|
### Pendiente
|
|
- ⏳ Implementaciones de repositorios (Infrastructure)
|
|
- ⏳ Servicios de aplicación (Application)
|
|
- ⏳ Casos de uso (Application)
|
|
- ⏳ Value Objects adicionales (DoseRange, PatientAge, etc.)
|
|
- ⏳ Servicios de dominio (Domain)
|
|
|
|
## 📝 Próximos Pasos
|
|
|
|
1. **Ticket 1.2:** Crear schemas Zod compartidos
|
|
2. **Ticket 1.3:** Refactorizar `drugs.ts` del frontend
|
|
3. **Ticket 1.4:** Refactorizar `procedures.ts` del frontend
|
|
4. **Ticket 1.5:** Eliminar duplicidades
|
|
|
|
---
|
|
|
|
**Última actualización:** 2025-01-25
|