All Superinterfaces:
GenericDao<ProductInterestModel>
All Known Implementing Classes:
DefaultProductInterestDao

public interface ProductInterestDao extends GenericDao<ProductInterestModel>
The dao of ProductInterest
  • Method Details

    • findProductInterestsByCustomer

      List<ProductInterestModel> findProductInterestsByCustomer(CustomerModel customerModel, BaseStoreModel baseStore, BaseSiteModel baseSite)
      This method will get all the interests of the current customer
      Parameters:
      customerModel - the customer of which all the ProductInterests to be found
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      Returns:
      all the ProductInterests of the current customer
    • findProductInterest

      Optional<ProductInterestModel> findProductInterest(ProductModel productModel, CustomerModel customerModel, NotificationType notificationType, BaseStoreModel baseStore, BaseSiteModel baseSite)
      This method is used to find the ProductInterestModel by its productModel, customerModel, notificationType and baseStore.
      Parameters:
      productModel - the product of the ProductInterest
      customerModel - the customer of the ProductInterest
      notificationType - the notificationType of the ProductInterest
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      Returns:
      ProductInterestModel if found and an empty Optional otherwise
    • findProductInterests

      List<ProductInterestModel> findProductInterests(CustomerModel customerModel, BaseStoreModel baseStore, BaseSiteModel baseSite)
      This method is used to find expired and effective ProductInterestModels by its productModel, customerModel, notificationType and baseStore.
      Parameters:
      customerModel - the customer of the ProductInterest
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      Returns:
      ProductInterestModel if found and an empty Optional otherwise
    • findExpiredProductInterests

      List<ProductInterestModel> findExpiredProductInterests()
      This method will get all the expired interests
      Returns:
      all the expired ProductInterests
    • findProductsByCustomerInterests

      Map<String,Map<String,String>> findProductsByCustomerInterests(CustomerModel customerModel, BaseStoreModel baseStore, BaseSiteModel baseSite, PageableData pageableData)
      Find interests watched by current customer
      Parameters:
      customerModel - the customer of the ProductInterest
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      pageableData - the pagination data
      Returns:
      Map whose key is Product PK and value is the Map of NotificationType PK as key and creation time as value.
    • findProductInterestRelationsByCustomer

      Map<String,Map<String,String>> findProductInterestRelationsByCustomer(CustomerModel customerModel, BaseStoreModel baseStore, BaseSiteModel baseSite)
      Find all interests watched by current customer
      Parameters:
      customerModel - the customer of the ProductInterest
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      Returns:
      Map whose key is Product PK and value is the Map of NotificationType PK as key and creation time as value.
    • findProductsCountByCustomerInterests

      int findProductsCountByCustomerInterests(CustomerModel customerModel, BaseStoreModel baseStore, BaseSiteModel baseSite, PageableData pageableData)
      Find the total count of products watched by customer
      Parameters:
      customerModel - the customer of the ProductInterest
      baseStore - the baseStore of the ProductInterest
      baseSite - the baseSite of the ProductInterest
      pageableData - the pagination data
      Returns:
      the total count of products watched by customer
    • findProductInterestsByNotificationType

      List<ProductInterestModel> findProductInterestsByNotificationType(NotificationType notificationType)
      retrieve such ProductInterests whose notification type is BACK_IN_STOCK and not expired
      Returns:
      The list of ProductInterests to send BACK_IN_STOCK notification