using Domain.Dtos.Sales; using Domain.Generics; /// /// Servicio de dominio para la gestión de consultas de Delivery Note (Remito Ventas). /// Encapsula el acceso a datos y expone operaciones de lectura para la capa superior. /// public interface IDeliveryNoteDom { /// /// Busca Delivery Notes con filtros y paginación. /// Task> SearchAsync( int? customerId, string? customerText, string? deliveryNoteNumber, int? quoteId, string? quoteNumber, DateTime? issueDateFrom, DateTime? issueDateTo, string? status, int page = 1, int pageSize = 50); /// /// Obtiene un Delivery Note por su identificador único. /// /// Identificador interno del Delivery Note. /// /// El DTO si existe; en caso contrario, null. /// Task GetDtoByIdAsync(int id); /// /// Obtiene un Delivery Note a partir de su número de documento. /// /// Número del Delivery Note (ej: DN-00000001). /// /// El DTO si existe; en caso contrario, null. /// Task GetDtoByDeliveryNoteNumberAsync(string deliveryNoteNumber); /// /// Obtiene todos los Delivery Notes asociados a un presupuesto (Quote). /// /// Identificador del presupuesto relacionado. /// /// Colección de asociadas al presupuesto. /// Puede estar vacía si no existen registros. /// Task> GetDtosByQuoteIdAsync(int quoteId); /// /// Valida y prepara la emisión de un Delivery Note. /// Task CreateAndIssueDeliveryNoteAsync(DeliveryNoteCreateRequest request); }