using ERPCore.Domain.Enums;
using ERPCore.Dtos.Common;
using ERPCore.Dtos.Procurement;

namespace ERPCore.Services.Interfaces;

/// <summary>Purchase-requisition business logic (docs/11 §3.1).</summary>
public interface IRequisitionService
{
    Task<PagedResponse<RequisitionSummaryDto>> ListAsync(
        PageQuery query, RequisitionStatus? status, CancellationToken ct = default);
    Task<RequisitionDto?> GetAsync(int requisitionId, CancellationToken ct = default);
    Task<RequisitionDto> CreateAsync(CreateRequisitionRequest request, CancellationToken ct = default);
    Task<RequisitionDto> SubmitAsync(int requisitionId, CancellationToken ct = default);
}
