package com.salesmanager.core.business.repositories.catalog.product;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import com.salesmanager.core.model.catalog.product.Product;
import com.salesmanager.core.model.catalog.product.ProductCriteria;
import com.salesmanager.core.model.catalog.product.ProductList;
import com.salesmanager.core.model.merchant.MerchantStore;
import com.salesmanager.core.model.reference.language.Language;
import com.salesmanager.core.model.tax.taxclass.TaxClass;
public interface ProductRepositoryCustom {
ProductList listByStore(MerchantStore store, Language language,
ProductCriteria criteria);
Product getByFriendlyUrl(MerchantStore store,String seUrl, Locale locale);
List<Product> getProductsListByCategories(@SuppressWarnings("rawtypes") Set categoryIds);
List<Product> getProductsListByCategories(Set<Long> categoryIds,
Language language);
List<Product> listByTaxClass(TaxClass taxClass);
List<Product> listByStore(MerchantStore store);
Product getProductForLocale(long productId, Language language,
Locale locale);
Product getById(Long productId);
Product getByCode(String productCode, Language language);
List<Product> getProductsForLocale(MerchantStore store,
Set<Long> categoryIds, Language language, Locale locale);
}