package com.hzs.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 订单类型枚举类
 */
@AllArgsConstructor
@Getter
public enum EOrderType {

    /**
     * 注册订单
     */
    REGISTER_ORDER(1, "注册订单", 1),

    /**
     * 复购订单
     */
    REPURCHASE_ORDER(3, "复购订单", 1),

    /**
     * 重消订单-重消专区
     */
    CONSUME_ORDER(10, "重消订单", 1),

    /**
     * 直播订单
     */
    MALL_ORDER(14, "直播订单", 1),

    /**
     * 虚拟订单
     */
    FICTITIOUS_ORDER(20, "虚拟订单", 1),

    /**
     * 精品专区 -- 注册专区
     */
    RETAIL_REGISTER(41, "精品专区", 0),

    /**
     * 复购专区 -- 甄选专区（使用精品专区的商品）
     */
    RETAIL_UPGRADE(42, "复购专区", 0),

    /**
     * 北大甄选 -- 商城专区
     */
    RETAIL_REPURCHASE(43, "北大甄选", 0),

    /**
     * 赠品订单
     */
    RETAIL_CONSUME(44, "赠品订单", 0),

    RETAIL_TICKET(45, "自助购票", 0),

    RETAIL_PICK(46, "提货订单", 0),

    /**
     * 五折专区
     */
    DISCOUNT_ORDER(47, "五折专区", 0),

    ;

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

    /**
     * 根据值，返回枚举
     *
     * @param value
     * @return
     */
    public static EOrderType getEnumByValue(Integer value) {
        if (null == value) {
            return null;
        }
        for (EOrderType eOrderType : EOrderType.values()) {
            if (eOrderType.getValue() == value) {
                return eOrderType;
            }
        }
        return null;
    }

    public static String getLabelByValue(Integer value) {
        if (null == value) {
            return "";
        }
        for (EOrderType enums : EOrderType.values()) {
            if (enums.getValue() == value) {
                return enums.getLabel();
            }
        }
        return "";
    }

}
