package com.sikey.wa04.common.enums;

import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 消息中心类型
 *
 * @author qin
 */
@AllArgsConstructor
@Getter
public enum MessageCenterType {
    /**
     * 未知
     */
    MESSAGE_CENTER_TYPE_UNKNOWN(0),

    /**
     * 低电量
     */
    MESSAGE_CENTER_TYPE_LOW_BATTERY_REMIND(10),

    /**
     * 电子围栏
     */
    MESSAGE_CENTER_TYPE_ELECTRONIC_FENCE(20),

    /**
     * 通讯录
     */
    MESSAGE_CENTER_TYPE_CONTACTS(30),

    /**
     * 开关机
     */
    MESSAGE_CENTER_TYPE_STARTUP_AND_SHUT_DOWN(40),

    ;

    @JsonValue
    private final Integer value;

    /**
     * 根据 value 获取 MessageCenterType
     *
     * @param value value
     * @return MessageCenterType
     */
    public static MessageCenterType valueOf(Integer value) {
        for (MessageCenterType messageType : MessageCenterType.values()) {
            if (messageType.value.equals(value)) {
                return messageType;
            }
        }
        throw new RuntimeException("Invalid MessageType value: " + value);
    }
}
