package com.hzs.common.core.enums;

import com.hzs.common.core.constant.EnumsKeyConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
 * 系统配置参数初始化，该点不需要翻译
 */
@AllArgsConstructor
@Getter
public enum ESystemConfig {

    /**
     * 注册次数
     */
    REGISTER_NUMBER("7", "注册次数", 0, "REGISTER_NUMBER_1"),

    /**
     * 是否需要验证首单，验证首单的话只能放在极左极下 0 是 1= 否
     */
    FIRST_ORDER("0", "极左极下", 0, "PLACE_1"),

    /**
     * 是否需要验证左区推荐过人才能安置右区  0 是 1= 否
     */
    PARENT_VALIDATE("0", "直推校验", 0, "PLACE_2"),

    /**
     * 安置位置 1=任意 2=左 3=右 安置校验的
     */
    PLACE_POSITION("0", "安置位置", 0, "PLACE_3"),

    /**
     * 注册等级 参照等级
     */
    REGISTER_LEVER("1", "注册等级", 0, "PLACE_4"),

    /**
     * 业绩类型 1= 首购 2=复购 3=真实
     */
    ACHIEVE_TYPE("2", "业绩类型", 0, "PLACE_5"),

    /**
     * 安置位置 1= 大区 2=小区  注册位置的
     */
    SIZE_AREA("1", "安置位置", 0, "PLACE_6"),

    /**
     * 是否陆运
     */
    IS_LAND_TRANS("0", "陆运", 0, "TRANSPORT_TYPE_1"),

    /**
     * 是否空运
     */
    IS_AIR_TRANS("1", "空运", 0, "TRANSPORT_TYPE_2"),

    /**
     * 是否海运
     */
    IS_OCEAN_TRANS("1", "海运", 0, "TRANSPORT_TYPE_3"),

    /**
     * 邮费配置，1=叠加 2=取最高 3=取最低
     */
    POSTAGE_CONFIG(EPostageConfig.MAXIMUM.getValue(), "运费配置", 0, "POSTAGE_1"),

    /**
     * 撤单时间 输入框，默认7天
     */
    CANCEL_ORDER_TIME("7", "撤单时间", 0, "CANCEL_ORDER_1"),

    /**
     * 升级方式 枚举 1=覆盖升级制 2=累计升级制 3=一次性补差
     * 补差代表一次性补差
     */
    UPGRADE_WAY("1", "升级方式", 0, "UPGRADE_WAY_1"),

    /**
     * 升级方式 枚举 1=覆盖升级制 2=累计升级制 3=一次性补差
     * 补差代表一次性补差
     */
    EFFECTIVE_DAYS("60", "加权生效天数", 0, "EFFECTIVE_DAYS_1"),

    /**
     * 注册专区 是否有待支付 0 是 1= 否
     */
    REGISTER_ORDER_CONFIRM_PAY("1", "注册专区", 0, "PAYMENT_1"),
    /**
     * 1=12小时 2=24小时 3=48小时 4=72小时
     */
    REGISTER_ORDER_TIME("1", "注册专区时间", 0, "PAYMENT_2"),
    UPGRADE_ORDER_CONFIRM_PAY("0", "升级专区", 0, "PAYMENT_3"),
    UPGRADE_ORDER_TIME("0", "升级专区时间", 0, "PAYMENT_4"),
    REPURCHASE_ORDER_CONFIRM_PAY("0", "复购专区", 0, "PAYMENT_5"),
    REPURCHASE_ORDER_TIME("0", "复购专区时间", 0, "PAYMENT_6"),

    /**
     * 直推方式  1=三单循环 2=四单循环
     */
    BONUS_RECOMMEND_TYPE("1", "直推方式", 0, EnumsKeyConstants.BONUS_RECOMMEND_TYPE),

    /**
     * 升级收益方式 1= 纳入循环 2=固定值
     */
    BONUS_UPGRADE_INCOME_TYPE("1", "升级奖励方式", 0, EnumsKeyConstants.BONUS_UPGRADE_TYPE),

    /**
     * 免考月数 暂时不用
     */
    EXEMPT_ASSESS_MONTH("2", "免考月数", 1, "ASSESS_MONTH"),

    /**
     * 拓展封顶计算方式 1=日 2=周
     */
    EXPAND_CAP_METHOD("1", "拓展方式", 0, "EXPAND_CAP_METHOD1"),
    ;

    /**
     * 实际值
     */
    private final String value;
    /**
     * 显示标签
     */
    private final String label;
    /**
     * 是否启用（0=是,1=否） -- 来源EYesNo
     */
    private final int enable;
    /**
     * key值
     */
    private final String key;

    /***
     * 专区时间
     * @return
     */
    public static List<ESystemConfig> getPayMentTimeList() {
        List<ESystemConfig> list = new ArrayList<>();
        list.add(REGISTER_ORDER_TIME);
        list.add(UPGRADE_ORDER_TIME);
        list.add(REPURCHASE_ORDER_TIME);
        return list;
    }
}
