Files
Musify/AGENTS.md
T
2026-03-19 20:21:02 +01:00

42 lines
1.8 KiB
Markdown

# Contexto del proyecto para agentes de IA
## Resumen rápido
- Proyecto backend en `.NET 10`.
- Estructura principal en capas: `Domain`, `Application`, `Infrastructure`.
- Patrón arquitectónico: `Clean Architecture` con enfoque `CQRS`.
## Arquitectura
- **Domain (`Domain`)**: entidades de negocio puras.
- **Application (`Application`)**:
- Casos de uso (comandos/queries y handlers).
- Contratos (`Application.Contracts`).
- Configuración de aplicación (`Application.Configuration`).
- Mensajería orientada a eventos a través de `IEventBus`.
- **Infrastructure (`Infrastructure`)**:
- Persistencia y acceso a datos.
- Integraciones externas (Keycloak, almacenamiento, procesamiento de imágenes).
- Implementación de mensajería y consumidores.
## CQRS / Mediación
- Se usa **DispatchR** (paquete `DispatchR.Mediator`) como variante de MediatR para orquestar comandos y consultas.
- Los casos de uso están organizados por feature con handlers dedicados (`Commands`, `Queries`).
## Mensajería y workers
- Se usa **MassTransit** para publicación/consumo de eventos.
- Broker actual: **RabbitMQ** (`MassTransit.RabbitMQ`).
- Hay modo de registro para workers con consumidores en `Infrastructure.Messaging.Consumers`.
- Actualmente existen consumidores como:
- `ResizePictureConsumer`
- `RemoveFileConsumer`
## Persistencia e integraciones
- `Entity Framework Core` + proveedor `Npgsql` (PostgreSQL).
- Integración de identidad con `Keycloak`.
- Almacenamiento con `AWS S3`.
## Notas para agentes
- Mantener separación de responsabilidades por capa.
- Evitar lógica de infraestructura dentro de `Application` y `Domain`.
- Agregar nuevos casos de uso siguiendo el patrón CQRS existente (comando/query + handler).
- Para nuevas integraciones asíncronas, reutilizar el pipeline de `MassTransit` y la abstracción `IEventBus`.