Interface ProductInterestDao

    • Method Detail

      • findProductInterestsByCustomer

        java.util.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

        java.util.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

        java.util.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

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

        java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.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

        java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.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

        java.util.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