using ERPCore.Dtos.Common;
using ERPCore.Dtos.Procurement;

namespace ERPCore.Services.Interfaces;

/// <summary>Purchase-return business logic (docs/11 §3.4; FR-PROC-08).</summary>
public interface IPurchaseReturnService
{
    Task<PagedResponse<PurchaseReturnSummaryDto>> ListAsync(
        PageQuery query, int? vendorId, int? warehouseId, CancellationToken ct = default);

    Task<PurchaseReturnDto?> GetAsync(int returnId, CancellationToken ct = default);

    Task<PurchaseReturnDto> CreateAsync(CreatePurchaseReturnRequest request, CancellationToken ct = default);
}
