package com.salesmanager.core.business.repositories.catalog.product.manufacturer;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
public interface ManufacturerRepository extends JpaRepository<Manufacturer, Long> {
@Query("select count(distinct p) from Product as p where p.manufacturer.id=?1")
Long countByProduct(Long manufacturerId);
@Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where ms.id=?1 and md.language.id=?2")
List<Manufacturer> findByStoreAndLanguage(Integer storeId, Integer languageId);
@Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where m.id=?1")
Manufacturer findOne(Long id);
@Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where ms.id=?1")
List<Manufacturer> findByStore(Integer storeId);
@Query("select distinct manufacturer from Product as p join p.manufacturer manufacturer join manufacturer.descriptions md join p.categories categs where categs.id in (?1) and md.language.id=?2")
List<Manufacturer> findByCategoriesAndLanguage(List<Long> categoryIds, Integer languageId);
@Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where m.code=?1 and ms.id=?2")
Manufacturer findByCodeAndMerchandStore(String code, Integer storeId);
}