codigo0/backend/README_ESTRUCTURA.md
planetazuzu 0201f16cf4
Some checks are pending
Auto Deploy to Server / deploy (push) Waiting to run
Update lab configuration 2026-03-22
2026-03-22 22:50:29 +01:00

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