package com.red.circle.order.domain.gateway;

import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.framework.core.request.RequestClientEnum;
import com.red.circle.order.domain.product.IAppPurchaseProduct;
import java.util.List;

/**
 * app 内购产品仓库.
 *
 * @author pengliang on 2022/3/15
 */
public interface InAppPurchaseProductGateway {

  /**
   * 获取平台金币商品.
   */
  List<IAppPurchaseProduct> listGoldProductV2(SysOriginPlatformEnum sysOrigin,
      String channel, String regionId);

  /**
   * 根据产品id获取商品信息.
   */
  IAppPurchaseProduct getProduct(SysOriginPlatformEnum sysOrigin,
      RequestClientEnum requestClient, String productId);

  /**
   * 获得内购产品.
   *
   * @param sysOrigin      系统.
   * @param platform       平台.
   * @param productPackage 包名.
   * @param regionId       区域.
   */
  IAppPurchaseProduct getProduct(SysOriginPlatformEnum sysOrigin, String platform,
      String productPackage, String regionId);

  /**
   * 获取指定产品信息.
   */
  IAppPurchaseProduct getByIdV2(Long id);

}
