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

3.3 KiB
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