# Capa de Aplicación ## Propósito La capa de Aplicación **orquesta** la lógica de negocio del dominio. Contiene los **Use Cases** (casos de uso) que coordinan las operaciones entre el dominio y la infraestructura. ## Principios 1. **Orquestación**: Coordina flujos de trabajo usando entidades de dominio 2. **DTOs**: Usa Data Transfer Objects para comunicación entre capas 3. **Contratos**: Define interfaces que la infraestructura implementará 4. **Sin lógica de negocio**: Delega al dominio ## Estructura ``` Application/ ├── UseCases/ # Casos de uso │ ├── SaveComponent/ │ │ ├── SaveComponentUseCase.php │ │ ├── SaveComponentRequest.php │ │ └── SaveComponentResponse.php │ ├── GetComponent/ │ │ └── GetComponentUseCase.php │ └── DeleteComponent/ │ └── DeleteComponentUseCase.php ├── DTO/ # Data Transfer Objects │ ├── ComponentDTO.php │ └── ... └── Contracts/ # Interfaces de servicios ├── ValidationServiceInterface.php ├── CacheServiceInterface.php └── ... ``` ## Reglas 1. **SÍ** usar dependencias via constructor injection 2. **SÍ** usar interfaces del dominio 3. **SÍ** usar DTOs para entrada/salida 4. **NO** contener lógica de negocio (eso va en Dominio) 5. **NO** depender de frameworks (solo via interfaces)