package oracle.fodemo.storefront.store.service.common;

import java.util.List;
import java.util.Map;

import java.util.Set;

import oracle.jbo.ApplicationModule;
import oracle.jbo.JboException;
import oracle.jbo.Row;
import oracle.jbo.domain.Number;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---------------------------------------------------------------------
public interface StoreServiceAM extends ApplicationModule {
     void syncShoppingCartForAuthenticatedUser(Map<Integer,Integer> productIdsAndQuantities) throws JboException;

    void deleteCurrentMyOrderItem();


    void executeMyOrdersForCustomerVO();

    void setAuthenticatedUser(String userPrincipal);

    void userRegistrationCreate(String userType);

    void updateUserInterests(List pCategoryIds);

    void userRegistrationCreateAddress();


    void updateShoppingCartItem(Integer productId, 
                                Integer quantity) throws JboException;

    Row setAuthenticatedUser();

    void removeShoppingCartItem(Integer productId);

    void removeAllShoppingCartItems();

    void addShoppingCartItem(Integer productId, Integer quantity);

    Long findShoppingCartIdForUser(String principalName) throws JboException;

    Long findCustomerIdByPrincipalName(String principalName);


    void reconcileShoppingCart();


    void addItemToCart(Integer productId, Integer quantity);

    void removeAllItemsFromCart();

    void removeItemFromCart(Integer productId);

    void updateItemInCart(Integer productId, Integer quantity, Boolean isSet);

    void changeOrderStatus(Number orderId, String statusCode);
}
