package com.storlead.sales.util.sku.constants;

/**
 * SSD SKU 相关常量类
 *
 * @author blank
 * @date 2018-11-14 上午 10:32
 */
public class SsdSkuConstants {


    /**
     * 物理销毁(1:开通 2:不开通) 开通
     */
    public static final int OPEN_PHYSICALDESTROY = 1 ;
    /**
     * 物理销毁(1:开通 2:不开通) 不开通
     */
    public static final int NOT_OPEN_PHYSICALDESTROY = 2 ;

    /**
     * 逻辑销毁(1:开通 2:不开通) 开通
     */
    public static final int OPEN_LOGICDESTROY = 1 ;
    /**
     * 逻辑销毁(1:开通 2:不开通) 不开通
     */
    public static final int NOT_OPEN_LOGICDESTROY = 2 ;

    /**
     * AES加密(1:开通 2:不开通) 开通
     */
    public static final int OPEN_AESENCRYPT = 1 ;
    /**
     * AES加密(1:开通 2:不开通) 不开通
     */
    public static final int NOT_OPEN_AESENCRYPT = 2 ;

    /**
     * r-backup备份(1:开通 2:不开通) 开通
     */
    public static final int OPEN_RAPIDBACKUP = 1 ;
    /**
     * r-backup备份(1:开通 2:不开通) 不开通
     */
    public static final int NOT_OPEN_RAPIDBACKUP = 2 ;



    /**
     * SKU状态(1:预上架 2:已上架 3:已下架 默认1)
     */

    public enum StatusEnum {
        /**
         * 预上架
         */
        STATUS_1(1, "预上架"),
        /**
         * 已上架
         */
        STATUS_2(2, "已上架"),
        /**
         * 已下架
         */
        STATUS_3(3, "已下架");

        private int code;
        private String codeName;

        StatusEnum(int code, String codeName) {
            this.code = code;
            this.codeName = codeName;
        }

        public int getCode() {
            return code;
        }

        public void setCode(int code) {
            this.code = code;
        }

        public String getCodeName() {
            return codeName;
        }

        public void setCodeName(String codeName) {
            this.codeName = codeName;
        }
    }

    /**
     * 判断某个值是否在指定的枚举范围内
     *
     * @param code 状态
     * @return boolean
     * @author blank
     * @since 2018-11-16 上午 10:19
     */
    public static boolean contains(int code) {
        for (StatusEnum statusEnum : StatusEnum.values()) {
            if (statusEnum.code == code) {
                return true;
            }
        }
        return false;
    }
}
