using DiplomovaPrace.Contracts.Customer;
using DiplomovaPrace.Contracts.Customer.Products;
using DiplomovaPrace.Contracts.Customer.Products.ViewModels;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace DiplomovaPrace.Facades.Customer.Products
{
	public interface IProductFacade
	{
		Task<List<ProductVM>> GetAllProductsAsync();

		Task<PagedQueryResult<ProductVM>> GetPagedProductsAsync(PagedQueryRequest<ProductListQueryFilter> pagedQueryRequest);
		
		Task<ProductVM> GetProductAsync(int id);

		Task<List<ProductInStockDto>> AreProductsInStockAsync(List<ProductInStockDto> products);
	}
}
