using OnlineSalesAutoCrop.CoreAPI.Models;
using OnlineSalesAutoCrop.CoreAPI.Models.Requests.MobileApp;
using OnlineSalesAutoCrop.CoreAPI.Models.Responses;
using OnlineSalesAutoCrop.CoreAPI.Models.Responses.MobileApp;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace OnlineSalesAutoCrop.CoreAPI.Services.Contracts.MobileApp;

public interface IOrderService
{
    Task<SaveOrderResponse> SaveOrderAsync(SaveOrderRequest request, int userId);
    Task<PagedResult<GetSalesOrderResponse>> GetSalesOrdersSummary(GetOrderSummaryRequest request, int userId);
    Task<IList<int>> GetAvailableOrderIdsForSAPAsync(SAPOrderStatusEnum orderStaus, CancellationToken cancellationToken = default);
    Task<GetOrderForSAPResponse?> GetOrderDetailsForSapByIdAsync(int orderId, CancellationToken cancellationToken = default);
    Task<bool> UpdateSendingSapDetailsAsync(UpdateSapDetailsRequest request,  CancellationToken cancellationToken = default);

}
