package com.red.circle.order.infra.database.rds.service.pay;

import com.red.circle.framework.mybatis.service.BaseService;
import com.red.circle.order.infra.database.rds.entity.pay.PayCountryChannelDetails;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 国家支持渠道详情 服务类.
 * </p>
 *
 * @author pengshigang
 * @since 2021-12-08
 */
public interface PayCountryChannelDetailsService extends BaseService<PayCountryChannelDetails> {

  /**
   * 获取支持价格区间的支付渠道关联信息.
   */
  List<PayCountryChannelDetails> listChannelCode(Long payCountryId, BigDecimal amountUsd);

  /**
   * 国家支持渠道.
   */
  List<PayCountryChannelDetails> listChannelCode(Long payCountryId);

  /**
   * 获取建议支付的渠道厂商信息.
   */
  PayCountryChannelDetails getSuggestScoreMax(Long payCountryId, String channelCode,
      BigDecimal amountUsd);

  /**
   * 国家支持渠道.
   */
  Map<Long, List<PayCountryChannelDetails>> mapChannelCodeList(Set<Long> payCountryIds);

  Map<Long, List<PayCountryChannelDetails>> mapByCountryChannelId(Set<Long> collect);

  /**
   * 获取国家支持价格的厂商.
   */
  List<PayCountryChannelDetails> listSupportAmountUsd(Long payCountryId, BigDecimal amountUsd);
}
