package com.hzs.system.config;

import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.config.BdAccount;

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

/**
 * @Description: 币种公共的api
 */
public interface IAccountServiceApi {

    /**
     * @description: 根据币种属性查询币种类型（账户类型）
     **/
    R<List<BdAccount>> queryAccountByType(Integer accountProperty, Integer pkCountry);

    /**
     * 根据币种、国家列表，查询币种列表
     *
     * @param accountType   币种类型
     * @param pkCountryList 国家列表
     * @return
     */
    R<List<BdAccount>> queryAccountByType(Integer accountType, Collection<Integer> pkCountryList);

    /**
     * @description: 根据pkid查询币种信息
     **/
    R<BdAccount> getAccount(Integer pkId);

    /**
     * @description: 根据币种值查询币种
     **/
    R<BdAccount> getBdAccountByFieldValue(Integer pkCountry, Integer fieldValue);

    /**
     * 根据pkId列表查询币种信息列表
     *
     * @param pkIdList 币种ID列表
     * @return
     */
    R<Map<Integer, BdAccount>> getAccountMap(List<Integer> pkIdList);

    /**
     * 根据国家查询所有币种信息
     *
     * @param pkCountry 国家ID
     * @return
     */
    R<Map<Integer, BdAccount>> getAccountListByCountry(Integer pkCountry);

    /**
     * 根据国家查询所有币种信息
     *
     * @param pkCountry 国家ID
     * @return
     */
    R<Map<Integer, BdAccount>> getAccountMapByCountry(Integer pkCountry);

    /**
     * 查出国家默认在线充值入的币种
     *
     * @param pkCountry 国家
     */
    R<BdAccount> queryAccountByCondition(Integer pkCountry);

    /**
     * @description: 查询币种转换
     **/
    R<Integer> getPkAccount(Integer pkId);

    /**
     * 查询邮费扣除币种
     *
     * @param pkCountry 所属国家
     * @return
     */
    R<BdAccount> queryPostageAccount(Integer pkCountry);

    /**
     * @description: 会员端账户查询
     **/
    R<List<BdAccount>> memberAccountByType(Integer pkCountry);

}
