Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.spice.profitmandi.service.external;

import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
import com.spice.profitmandi.dao.model.ContentPojo;
import com.spice.profitmandi.dao.model.external.CatalogContentModel;
import com.spice.profitmandi.dao.model.external.CatalogSkuModel;
import com.spice.profitmandi.dao.model.external.ExternalPage;
import com.spice.profitmandi.dao.model.external.ExternalStoreModel;
import com.spice.profitmandi.dao.model.external.StoreSkuModel;

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

/**
 * Backing service for the third-party /external/v1 APIs. Store scoping is
 * enforced here: every stock/store read is intersected with the calling
 * client's mapped stores.
 */
public interface ExternalApiService {

    ExternalPage<CatalogContentModel> getCatalogMaster(Long updatedSince, int offset, int limit);

    ExternalPage<CatalogSkuModel> getCatalogSkuMaster(Long updatedSince, int offset, int limit);

    ExternalPage<StoreSkuModel> getSkuMaster(int apiClientId, Integer storeId, Long updatedSince, int offset,
            int limit) throws ProfitMandiBusinessException;

    List<ExternalStoreModel> getStoreMaster(int apiClientId);

    Map<Long, ContentPojo> getCatalogsByIds(List<Long> catalogIds);

    List<CatalogSkuModel> getCatalogSkusByIds(List<Integer> catalogIds);

    List<StoreSkuModel> getStock(int apiClientId, int storeId, Collection<Integer> itemIds)
            throws ProfitMandiBusinessException;
}