package org.onehippo.forge.konakart.site.service;
import com.konakart.appif.CustomerIf;
import com.konakart.appif.ProductIf;
import com.konakart.appif.WishListIf;
import org.hippoecm.hst.core.component.HstRequest;
import javax.annotation.Nonnull;
public interface KKCustomerService {
/**
* Get the current customer (guest or registered)
*
* @param request the hst request
* @return the current customer
*/
CustomerIf getCurrentCustomer(@Nonnull HstRequest request);
/**
* Check if the current customer is a guest or a registered customer
*
* @param request the hst request
* @return true if the customer is a guest, false otherwise.
*/
boolean isGuestCustomer(HstRequest request);
/**
* Check if the wish list is enabled.
*
* @param request the hst request
* @return true if the wish list is enabled, false otherwise
*/
boolean wishListEnabled(HstRequest request);
/**
* @param request the hst request
* @return the wish list that has the type equals to 0
*/
WishListIf getDefaultWishList(HstRequest request);
/**
* @param request the hst request
* @param wishListName the name of the wish list
* @param isPublic true if the wish list is public, false otherwise
* @return the wish list id, -1 if the wish list has not been created
*/
int createDefaultWishList(@Nonnull HstRequest request, String wishListName, boolean isPublic);
/**
* @param request the hst request
* @return the list of products that have been reviewed
*/
ProductIf[] getCustomerProductsViewed(@Nonnull HstRequest request);
}