using System.ServiceModel;
using System.Threading.Tasks;
using DiplomovaPrace.Contracts.Orders.InputModels;
using DiplomovaPrace.Contracts.Orders.ViewModels;

namespace DiplomovaPrace.Contracts.Orders
{
	[ServiceContract]
	public interface IOrderFacadeContract
	{
		Task<PagedQueryResult<OrderListItem>> GetOrderListAsync(PagedQueryRequest<OrderListQueryFilter> orderListRequest);

		Task<OrderDetailVM> GetOrderDetailByIDAsync(ValueDto<int> orderId);

		Task<OrderIM> GetOrderToUpdateByIDAsync(ValueDto<int> orderId);

		Task UpdateOrderAsync(OrderIM inputModel);

		Task<ValueDto<bool>> DeleteOrderAsync(ValueDto<int> orderId);
	}
}
