feat(sales): agregar repositorio data base para delivery note #15
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objetivo
Implementar el repositorio base en la capa Data para acceder a los Delivery Notes desde la base de datos y mapearlos hacia las entidades de dominio
EDeliveryNoteyEDeliveryNoteDetail.Esto permitirá que las capas superiores (Core, API y UI) puedan consultar remitos utilizando el modelo de dominio.
Contexto funcional
El módulo Sales incorporará el nuevo documento Delivery Note (Remito).
En la story #13 se agregaron las entidades de dominio necesarias:
Domain/Entities
Domain/Constants
La persistencia ya existe en el modelo EF scaffold:
Sin embargo, aún no existe un repositorio que permita acceder a estos datos desde la capa Data y mapearlos a las entidades de dominio.
El siguiente paso lógico es implementar el repositorio base de Delivery Notes, que servirá como puente entre Data y Domain.
Alcance
Implementar el repositorio base de Delivery Notes en la capa Data.
Se deben crear:
Interfaz del repositorio
Data/Interfaces/IDeliveryNoteRepository.cs
Responsabilidades:
Método inicial:
Task<EDeliveryNote?> GetByIdAsync(int id);
Implementación del repositorio
Data/Repositories/Sales/PhSDeliveryNoteRepository.cs
Responsabilidades:
Consultar la tabla:
Incluir sus detalles:
Mapear los resultados hacia:
Retornar la entidad de dominio completa.
Fuera de alcance
Esta story no incluye:
Todo eso será abordado en stories posteriores.
Criterios de aceptación
✔ El proyecto compila correctamente.
✔ Existe una interfaz:
IDeliveryNoteRepository
✔ Existe una implementación:
PhSDeliveryNoteRepository
✔ El repositorio permite obtener un Delivery Note por Id.
✔ El Delivery Note incluye correctamente sus DeliveryNoteDetails.
✔ Los datos se mapean correctamente a:
✔ No se modifican los modelos EF generados por scaffold.
✔ Se respetan las convenciones de arquitectura Data → Domain → Core → API → UI.
Decisiones de diseño
PhSDeliveryNoteyPhSDeliveryNoteDetailpero retorna entidades de Domain.Esto mantiene la story pequeña y atómica, siguiendo la metodología definida para el proyecto.
Entregable esperado
Archivos creados:
Data/Interfaces/IDeliveryNoteRepository.cs
Data/Repositories/Sales/PhSDeliveryNoteRepository.cs
Máximo 2 archivos nuevos.
Próxima Story sugerida
feat(sales): agregar servicio core base para delivery note
Donde se implementará:
Core/Services/DeliveryNoteService
que consumirá el repositorio recién creado.