using ERPCore.Dtos.Common;
using ERPCore.Dtos.Stock;

namespace ERPCore.Services.Interfaces;

/// <summary>Stock-adjustment business logic (docs/11 §5.5; FR-STK-07; 02-SECURITY C.5).</summary>
public interface IAdjustmentService
{
    Task<PagedResponse<AdjustmentSummaryDto>> ListAsync(
        PageQuery query, int? warehouseId, int? reasonCodeId, CancellationToken ct = default);

    Task<AdjustmentDto?> GetAsync(int adjustmentId, CancellationToken ct = default);

    Task<AdjustmentDto> CreateAsync(CreateAdjustmentRequest request, CancellationToken ct = default);
}
