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

namespace ERPCore.Services.Interfaces;

/// <summary>RFQ &amp; vendor-quotation business logic (docs/11 §3.2).</summary>
public interface IRfqService
{
    Task<PagedResponse<RfqSummaryDto>> ListAsync(PageQuery query, RfqStatus? status, CancellationToken ct = default);

    Task<RfqDto?> GetAsync(int rfqId, CancellationToken ct = default);
    Task<RfqDto> CreateAsync(CreateRfqRequest request, CancellationToken ct = default);
    Task<VendorQuotationDto> AddQuotationAsync(int rfqId, CreateQuotationRequest request, CancellationToken ct = default);
    Task<RfqComparisonDto> GetComparisonAsync(int rfqId, CancellationToken ct = default);
}
