package com.hzs.system.config.dto;

import com.hzs.common.domain.bonus.BdBonusDeduct;
import com.hzs.common.domain.bonus.BdBonusService;
import com.hzs.common.domain.system.config.*;
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
import com.hzs.system.sys.dto.BdCurrencyDTO;
import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 一次查询将需要的奖金所有参数全部都查询出来，返回到cuMember
 */
@Data
public class BonusConfigDTO implements Serializable {

    /**
     * 汇率 key 第一个键国家主键 第二个键 汇率主键
     */
    private Map<String, BdCurrencyDTO> currencyDtoMap;

    /**
     * 奖金项
     */
    private Map<String, BdBonusItemsExt> bonusItemsExtMap;

    /**
     * 循环配置 key 第一个键国家主键 +等级，第二个键 循环类型 EBonusType
     */
    private Map<String, BonusDirectLoopDTO> bonusDirectLoopDtoMap;

    /**
     * 直推奖励配置 key 第一个键国家主键 ，第二个键 range_type+pk_level
     */
    private Map<String, BonusDirectDTO> bonusDirectDtoMap;

    /**
     * 嗨粉直推奖励配置 key 第一个键国家主键 ，第二个键 range_type+pk_level
     */
    private Map<Integer, List<BonusHiPinkDTO>> bonusHiPinkDtoMap;

    /**
     * 一次性补差 key 国家作为主键，只有一条
     */
    private Map<Integer, BonusDifferenceDTO> bonusDifferenceDtoMap;

    /**
     * 奖金4-N配置 国家
     */
    private Map<Integer, BonusExpandDTO> bonusExpandMap;

    /**
     * 复购推荐奖励配置 key第一个键国家主键，第二个键 代数
     */
    private Map<Integer, Map<Integer, BonusRepurchasePushDTO>> bonusRepurchasePushMap;

    /**
     * 拓展奖配置 国家+等级
     */
    private Map<String, BdGrade> gradeMap;

    /**
     * 主任每个国家值对应的配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + 奖衔值 为了解决服务中心算主任
     */
    private Map<String, BdAwards> directorAwardsMap;

    /**
     * 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getPkAwards()
     */
    private Map<String, BdAwards> awardsMap;

    /**
     * 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getAwardsValue()
     */
    private Map<String, BdAwards> awardsValueMap;

    /**
     * 奖金扣项 需要主键 奖金主键
     */
    private Map<Integer, BdBonusDeduct> bonusDeductsMap;

    /**
     * 报单服务费 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getservicetype()
     */
    private Map<String, BdBonusService> bonusServiceMap;

    /**
     * 云代奖金 需要主键 国家+收益类型
     */
    private Map<String, BdBonusCloud> bonusCloudMap;

}
