phronCare/Core/Interfaces/IDeliveryNoteDom.cs

53 lines
1.9 KiB
C#
Raw Normal View History

using Domain.Dtos.Sales;
using Domain.Generics;
/// <summary>
/// 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.
/// </summary>
public interface IDeliveryNoteDom
{
/// <summary>
/// Busca Delivery Notes con filtros y paginación.
/// </summary>
Task<PagedResult<DeliveryNoteSummaryDto>> SearchAsync(
int? customerId,
string? customerText,
string? deliveryNoteNumber,
int? quoteId,
string? quoteNumber,
DateTime? issueDateFrom,
DateTime? issueDateTo,
string? status,
int page = 1,
int pageSize = 50);
/// <summary>
/// Obtiene un Delivery Note por su identificador único.
/// </summary>
/// <param name="id">Identificador interno del Delivery Note.</param>
/// <returns>
/// El DTO <see cref="DeliveryNoteDto"/> si existe; en caso contrario, null.
/// </returns>
Task<DeliveryNoteDto?> GetDtoByIdAsync(int id);
/// <summary>
/// Obtiene un Delivery Note a partir de su número de documento.
/// </summary>
/// <param name="deliveryNoteNumber">Número del Delivery Note (ej: DN-00000001).</param>
/// <returns>
/// El DTO <see cref="DeliveryNoteDto"/> si existe; en caso contrario, null.
/// </returns>
Task<DeliveryNoteDto?> GetDtoByDeliveryNoteNumberAsync(string deliveryNoteNumber);
/// <summary>
/// Obtiene todos los Delivery Notes asociados a un presupuesto (Quote).
/// </summary>
/// <param name="quoteId">Identificador del presupuesto relacionado.</param>
/// <returns>
/// Colección de <see cref="DeliveryNoteDto"/> asociadas al presupuesto.
/// Puede estar vacía si no existen registros.
/// </returns>
Task<IEnumerable<DeliveryNoteDto>> GetDtosByQuoteIdAsync(int quoteId);
}