package com.hzs.common.core.enums;

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

/**
 * 所属专区枚举类
 *
 * @author hzs
 */
@AllArgsConstructor
@Getter
public enum ESpecialArea {

    /**
     * 报单专区
     */
    REGISTER_AREA(1, "报单专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "1", 100, EMenuDetail.REGISTER.getValue()),

    /**
     * 报单专区 -- 报单加盟
     */
    REGISTER_AREA_FORM(101, "报单加盟", 0, EnumsPrefixConstants.SPECIAL_AREA + "101", 101, EMenuDetail.REGISTER_FORM.getValue()),

    /**
     * 报单专区 -- 消费加盟
     */
    REGISTER_AREA_CONSUMPTION(102, "消费加盟", 0, EnumsPrefixConstants.SPECIAL_AREA + "102", 102, EMenuDetail.REGISTER_CONSUMPTION.getValue()),

    /**
     * 消费专区
     */
    UPGRADE_AREA(2, "消费专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "2", 200, EMenuDetail.UPGRADE.getValue()),

    /**
     * 消费专区 -- 累计消费
     */
    UPGRADE_FORM(201, "累计消费", 0, EnumsPrefixConstants.SPECIAL_AREA + "201", 201, EMenuDetail.UPGRADE_FORM.getValue()),

    /**
     * 消费专区 -- 商品消费
     */
    UPGRADE_CONSUMPTION(202, "商品消费", 0, EnumsPrefixConstants.SPECIAL_AREA + "202", 202, EMenuDetail.UPGRADE_CONSUMPTION.getValue()),

    /**
     * 复消专区
     */
    RESALE_AREA(30, "复消专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 30, 300, EMenuDetail.RESALE_AREA.getValue()),

    /**
     * 复消积分专区
     * 2024.07.18 需求调整，后续此专区会被废弃掉
     */
    RESALE_INTEGRAL_AREA(31, "复消积分专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 31, 310, EMenuDetail.RESALE_AREA.getValue()),

    /**
     * 年包专区
     */
    RENEWAL_AREA(33, "年包专区", 0, EnumsPrefixConstants.SPECIAL_AREA + 33, 330, EMenuDetail.RESALE_AREA.getValue()),

    //////////////////// 暂不用类型 ////////////////////

    /**
     * 复购专区 -- 暂不用
     */
    REPURCHASE_AREA(3, "复购专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "3", 3, 0),
    /**
     * 提货专区 -- 暂不用
     */
    CARRY_GOODS_AREA(8, "提货专区", 1, EnumsPrefixConstants.SPECIAL_AREA + 8, 8, 0),
    /**
     * 兑换专区 -- 暂不用
     */
    INTEGRAL_AREA(11, "兑换专区", 1, EnumsPrefixConstants.SPECIAL_AREA + "11", 11, 0),


    ;

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

    /**
     * 排序
     */
    private final int sort;

    /**
     * menuDetailValue 明细值
     */
    private final int menuDetailValue;

    public static String getESpecialArea(int value) {
        for (ESpecialArea eSpecialArea : ESpecialArea.values()) {
            if (eSpecialArea.getValue() == value) {
                return eSpecialArea.getLabel();
            }
        }
        return null;
    }

    public static ESpecialArea getESpecialAreaEnum(int value) {
        for (ESpecialArea eSpecialArea : ESpecialArea.values()) {
            if (eSpecialArea.getValue() == value) {
                return eSpecialArea;
            }
        }
        return null;
    }

    /**
     * 根据专区兑换订单类型
     *
     * @param value 专区值
     * @return
     */
    public static int getOrderTypeValue(int value) {
        // 新加的两个专区需要转换一下orderType，其它的能直接对应上，不需要处理
        if (ESpecialArea.REGISTER_AREA_FORM.getValue() == value
                || ESpecialArea.REGISTER_AREA_CONSUMPTION.getValue() == value) {
            return EOrderType.REGISTER_ORDER.getValue();
        } else if (ESpecialArea.UPGRADE_FORM.getValue() == value
                || ESpecialArea.UPGRADE_CONSUMPTION.getValue() == value) {
            return EOrderType.UPGRADE_ORDER.getValue();
        }
        return value;
    }

}
