// Path: src/main/java/me/hao0/wechat/model/message/receive/RecvMessage.java
// public class RecvMessage implements Serializable {
// 
//     /**
//      * 开发者微信号
//      */
//     protected String toUserName;
// 
//     /**
//      * 用户openId
//      */
//     protected String fromUserName;
// 
//     /**
//      * 消息创建时间
//      */
//     protected Integer createTime;
// 
//     /**
//      * 消息类型:
//      * @see me.hao0.wechat.model.message.resp.RespMessageType
//      */
//     protected String msgType;
// 
//     public RecvMessage(){}
// 
//     public RecvMessage(RecvMessage m){
//         this.toUserName = m.toUserName;
//         this.fromUserName = m.fromUserName;
//         this.createTime = m.createTime;
//         this.msgType = m.msgType;
//     }
// 
//     public String getToUserName() {
//         return toUserName;
//     }
// 
//     public void setToUserName(String toUserName) {
//         this.toUserName = toUserName;
//     }
// 
//     public String getFromUserName() {
//         return fromUserName;
//     }
// 
//     public void setFromUserName(String fromUserName) {
//         this.fromUserName = fromUserName;
//     }
// 
//     public Integer getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(Integer createTime) {
//         this.createTime = createTime;
//     }
// 
//     public void setMsgType(String msgType) {
//         this.msgType = msgType;
//     }
// 
//     public String getMsgType(){
//         return this.msgType;
//     }
// 
//     @Override
//     public String toString() {
//         return "RecvMessage{" +
//                 "toUserName='" + toUserName + '\'' +
//                 ", fromUserName='" + fromUserName + '\'' +
//                 ", createTime=" + createTime +
//                 ", msgType='" + msgType + '\'' +
//                 '}';
//     }
// }
// 
// Path: src/main/java/me/hao0/wechat/model/message/receive/RecvMessageType.java
// public enum RecvMessageType {
// 
//     TEXT("text", "文本消息"),
//     IMAGE("image", "图片消息"),
//     VOICE("voice", "语音消息"),
//     VIDEO("video", "视频消息"),
//     SHORT_VIDEO("shortvideo", "小视频消息"),
//     LOCATION("location", "地理位置信息"),
//     LINK("link", "链接信息"),
//     /**
//      * 接收到微信服务器的事件消息:
//      *  @see me.hao0.wechat.model.message.receive.event.RecvEventType
//      */
//     EVENT("event", "事件消息");
// 
//     private String value;
// 
//     private String desc;
// 
//     private RecvMessageType(String value, String desc){
//         this.value = value;
//         this.desc = desc;
//     }
// 
//     public String value(){
//         return value;
//     }
// 
//     public String desc(){
//         return desc;
//     }
// 
//     public static RecvMessageType from(String type){
//         for (RecvMessageType t : RecvMessageType.values()){
//             if (Objects.equals(t.value(), type)){
//                 return t;
//             }
//         }
//         throw new EventException("unknown message type");
//     }
// 
//     @Override
//     public String toString() {
//         return "RecvMessageType{" +
//                 "value='" + value + '\'' +
//                 ", desc='" + desc + '\'' +
//                 '}';
//     }
// }


import me.hao0.wechat.model.message.receive.RecvMessage;
import me.hao0.wechat.model.message.receive.RecvMessageType;
package me.hao0.wechat.model.message.receive.event;


/**
 * 接收微信服务器的事件消息
 * Author: haolin
 * Email: haolin.h0@gmail.com
 * Date: 9/11/15
 */
public class RecvEvent extends RecvMessage {

    /**
     * 事件类型:
     * @see RecvEvent
     */
    protected String eventType;

    public RecvEvent(){}

    public RecvEvent(RecvMessage e){
        super(e);
    }

    public void setEventType(String eventType){
        this.eventType = eventType;
    }

    public String getEventType(){
        return this.eventType;
    }

    @Override
    public String getMsgType() {
// Path: src/main/java/me/hao0/wechat/model/message/receive/RecvMessage.java
// public class RecvMessage implements Serializable {
// 
//     /**
//      * 开发者微信号
//      */
//     protected String toUserName;
// 
//     /**
//      * 用户openId
//      */
//     protected String fromUserName;
// 
//     /**
//      * 消息创建时间
//      */
//     protected Integer createTime;
// 
//     /**
//      * 消息类型:
//      * @see me.hao0.wechat.model.message.resp.RespMessageType
//      */
//     protected String msgType;
// 
//     public RecvMessage(){}
// 
//     public RecvMessage(RecvMessage m){
//         this.toUserName = m.toUserName;
//         this.fromUserName = m.fromUserName;
//         this.createTime = m.createTime;
//         this.msgType = m.msgType;
//     }
// 
//     public String getToUserName() {
//         return toUserName;
//     }
// 
//     public void setToUserName(String toUserName) {
//         this.toUserName = toUserName;
//     }
// 
//     public String getFromUserName() {
//         return fromUserName;
//     }
// 
//     public void setFromUserName(String fromUserName) {
//         this.fromUserName = fromUserName;
//     }
// 
//     public Integer getCreateTime() {
//         return createTime;
//     }
// 
//     public void setCreateTime(Integer createTime) {
//         this.createTime = createTime;
//     }
// 
//     public void setMsgType(String msgType) {
//         this.msgType = msgType;
//     }
// 
//     public String getMsgType(){
//         return this.msgType;
//     }
// 
//     @Override
//     public String toString() {
//         return "RecvMessage{" +
//                 "toUserName='" + toUserName + '\'' +
//                 ", fromUserName='" + fromUserName + '\'' +
//                 ", createTime=" + createTime +
//                 ", msgType='" + msgType + '\'' +
//                 '}';
//     }
// }
// 
// Path: src/main/java/me/hao0/wechat/model/message/receive/RecvMessageType.java
// public enum RecvMessageType {
// 
//     TEXT("text", "文本消息"),
//     IMAGE("image", "图片消息"),
//     VOICE("voice", "语音消息"),
//     VIDEO("video", "视频消息"),
//     SHORT_VIDEO("shortvideo", "小视频消息"),
//     LOCATION("location", "地理位置信息"),
//     LINK("link", "链接信息"),
//     /**
//      * 接收到微信服务器的事件消息:
//      *  @see me.hao0.wechat.model.message.receive.event.RecvEventType
//      */
//     EVENT("event", "事件消息");
// 
//     private String value;
// 
//     private String desc;
// 
//     private RecvMessageType(String value, String desc){
//         this.value = value;
//         this.desc = desc;
//     }
// 
//     public String value(){
//         return value;
//     }
// 
//     public String desc(){
//         return desc;
//     }
// 
//     public static RecvMessageType from(String type){
//         for (RecvMessageType t : RecvMessageType.values()){
//             if (Objects.equals(t.value(), type)){
//                 return t;
//             }
//         }
//         throw new EventException("unknown message type");
//     }
// 
//     @Override
//     public String toString() {
//         return "RecvMessageType{" +
//                 "value='" + value + '\'' +
//                 ", desc='" + desc + '\'' +
//                 '}';
//     }
// }


// Path: src/main/java/me/hao0/wechat/model/message/receive/event/RecvEvent.java
import me.hao0.wechat.model.message.receive.RecvMessage;
import me.hao0.wechat.model.message.receive.RecvMessageType;

package me.hao0.wechat.model.message.receive.event;


/**
 * 接收微信服务器的事件消息
 * Author: haolin
 * Email: haolin.h0@gmail.com
 * Date: 9/11/15
 */
public class RecvEvent extends RecvMessage {

    /**
     * 事件类型:
     * @see RecvEvent
     */
    protected String eventType;

    public RecvEvent(){}

    public RecvEvent(RecvMessage e){
        super(e);
    }

    public void setEventType(String eventType){
        this.eventType = eventType;
    }

    public String getEventType(){
        return this.eventType;
    }

    @Override
    public String getMsgType() {
        return RecvMessageType.EVENT.value();