// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/EventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public abstract class EventPush extends Push {
//     @XmlElement(name = "Event")
//     private String event;
// 
//     public String getEvent() {
//         return event;
//     }
// 
//     public void setEvent(String event) {
//         this.event = event;
//     }
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/LocationEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class LocationEventPush extends EventPush {
//     @XmlElement(name = "Latitude")
//     private String latitude;
// 
//     @XmlElement(name = "Longitude")
//     private String longitude;
// 
//     @XmlElement(name = "Precision")
//     private String precision;
// 
//     public LocationEventPush() {
//     }
// 
//     public String getLatitude() {
//         return latitude;
//     }
// 
//     public void setLatitude(String latitude) {
//         this.latitude = latitude;
//     }
// 
//     public String getLongitude() {
//         return longitude;
//     }
// 
//     public void setLongitude(String longitude) {
//         this.longitude = longitude;
//     }
// 
//     public String getPrecision() {
//         return precision;
//     }
// 
//     public void setPrecision(String precision) {
//         this.precision = precision;
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/MassEndJobFinishEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class MassEndJobFinishEventPush extends EventPush {
//     @XmlElement(name = "MsgID")
//     private String massMsgId;
// 
//     @XmlElement(name = "Status")
//     private String status;
// 
//     @XmlElement(name = "TotalCount")
//     private long totalCount;
// 
//     @XmlElement(name = "FilterCount")
//     private long filterCount;
// 
//     @XmlElement(name = "SentCount")
//     private long sentCount;
// 
//     @XmlElement(name = "ErrorCount")
//     private long errorCount;
// 
//     public MassEndJobFinishEventPush() {
//     }
// 
//     public String getMassMsgId() {
//         return massMsgId;
//     }
// 
//     public void setMassMsgId(String massMsgId) {
//         this.massMsgId = massMsgId;
//     }
// 
//     public String getStatus() {
//         return status;
//     }
// 
//     public void setStatus(String status) {
//         this.status = status;
//     }
// 
//     public long getTotalCount() {
//         return totalCount;
//     }
// 
//     public void setTotalCount(long totalCount) {
//         this.totalCount = totalCount;
//     }
// 
//     public long getFilterCount() {
//         return filterCount;
//     }
// 
//     public void setFilterCount(long filterCount) {
//         this.filterCount = filterCount;
//     }
// 
//     public long getSentCount() {
//         return sentCount;
//     }
// 
//     public void setSentCount(long sentCount) {
//         this.sentCount = sentCount;
//     }
// 
//     public long getErrorCount() {
//         return errorCount;
//     }
// 
//     public void setErrorCount(long errorCount) {
//         this.errorCount = errorCount;
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/NormalEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class NormalEventPush extends EventPush {
//     @XmlElement(name = "EventKey")
//     private String eventKey;
// 
//     @XmlElement(name = "Ticket")
//     private String ticket;
// 
//     public NormalEventPush() {
//     }
// 
//     public String getEventKey() {
//         return eventKey;
//     }
// 
//     public void setEventKey(String eventKey) {
//         this.eventKey = eventKey;
//     }
// 
//     public String getTicket() {
//         return ticket;
//     }
// 
//     public void setTicket(String ticket) {
//         this.ticket = ticket;
//     }
// }


import org.usc.wechat.mp.sdk.vo.push.event.EventPush;
import org.usc.wechat.mp.sdk.vo.push.event.LocationEventPush;
import org.usc.wechat.mp.sdk.vo.push.event.MassEndJobFinishEventPush;
import org.usc.wechat.mp.sdk.vo.push.event.NormalEventPush;
package org.usc.wechat.mp.sdk.vo;


/**
 *
 * @author Shunli
 */
public enum EventPushType {
    SUBSCRIBE("subscribe", NormalEventPush.class),
    UNSUBSCRIBE("unsubscribe", NormalEventPush.class),
    CLICK("CLICK", NormalEventPush.class),
    VIEW("VIEW", NormalEventPush.class),
    SCAN("scan", NormalEventPush.class),
    LOCATION("LOCATION", LocationEventPush.class),
    MASSSENDJOBFINISH("MASSSENDJOBFINISH", MassEndJobFinishEventPush.class);

    private String type;
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/EventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public abstract class EventPush extends Push {
//     @XmlElement(name = "Event")
//     private String event;
// 
//     public String getEvent() {
//         return event;
//     }
// 
//     public void setEvent(String event) {
//         this.event = event;
//     }
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/LocationEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class LocationEventPush extends EventPush {
//     @XmlElement(name = "Latitude")
//     private String latitude;
// 
//     @XmlElement(name = "Longitude")
//     private String longitude;
// 
//     @XmlElement(name = "Precision")
//     private String precision;
// 
//     public LocationEventPush() {
//     }
// 
//     public String getLatitude() {
//         return latitude;
//     }
// 
//     public void setLatitude(String latitude) {
//         this.latitude = latitude;
//     }
// 
//     public String getLongitude() {
//         return longitude;
//     }
// 
//     public void setLongitude(String longitude) {
//         this.longitude = longitude;
//     }
// 
//     public String getPrecision() {
//         return precision;
//     }
// 
//     public void setPrecision(String precision) {
//         this.precision = precision;
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/MassEndJobFinishEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class MassEndJobFinishEventPush extends EventPush {
//     @XmlElement(name = "MsgID")
//     private String massMsgId;
// 
//     @XmlElement(name = "Status")
//     private String status;
// 
//     @XmlElement(name = "TotalCount")
//     private long totalCount;
// 
//     @XmlElement(name = "FilterCount")
//     private long filterCount;
// 
//     @XmlElement(name = "SentCount")
//     private long sentCount;
// 
//     @XmlElement(name = "ErrorCount")
//     private long errorCount;
// 
//     public MassEndJobFinishEventPush() {
//     }
// 
//     public String getMassMsgId() {
//         return massMsgId;
//     }
// 
//     public void setMassMsgId(String massMsgId) {
//         this.massMsgId = massMsgId;
//     }
// 
//     public String getStatus() {
//         return status;
//     }
// 
//     public void setStatus(String status) {
//         this.status = status;
//     }
// 
//     public long getTotalCount() {
//         return totalCount;
//     }
// 
//     public void setTotalCount(long totalCount) {
//         this.totalCount = totalCount;
//     }
// 
//     public long getFilterCount() {
//         return filterCount;
//     }
// 
//     public void setFilterCount(long filterCount) {
//         this.filterCount = filterCount;
//     }
// 
//     public long getSentCount() {
//         return sentCount;
//     }
// 
//     public void setSentCount(long sentCount) {
//         this.sentCount = sentCount;
//     }
// 
//     public long getErrorCount() {
//         return errorCount;
//     }
// 
//     public void setErrorCount(long errorCount) {
//         this.errorCount = errorCount;
//     }
// 
// }
// 
// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/push/event/NormalEventPush.java
// @XmlRootElement(name = "xml")
// @XmlAccessorType(XmlAccessType.FIELD)
// public class NormalEventPush extends EventPush {
//     @XmlElement(name = "EventKey")
//     private String eventKey;
// 
//     @XmlElement(name = "Ticket")
//     private String ticket;
// 
//     public NormalEventPush() {
//     }
// 
//     public String getEventKey() {
//         return eventKey;
//     }
// 
//     public void setEventKey(String eventKey) {
//         this.eventKey = eventKey;
//     }
// 
//     public String getTicket() {
//         return ticket;
//     }
// 
//     public void setTicket(String ticket) {
//         this.ticket = ticket;
//     }
// }


// Path: wechat-mp-sdk/src/main/java/org/usc/wechat/mp/sdk/vo/EventPushType.java
import org.usc.wechat.mp.sdk.vo.push.event.EventPush;
import org.usc.wechat.mp.sdk.vo.push.event.LocationEventPush;
import org.usc.wechat.mp.sdk.vo.push.event.MassEndJobFinishEventPush;
import org.usc.wechat.mp.sdk.vo.push.event.NormalEventPush;

package org.usc.wechat.mp.sdk.vo;


/**
 *
 * @author Shunli
 */
public enum EventPushType {
    SUBSCRIBE("subscribe", NormalEventPush.class),
    UNSUBSCRIBE("unsubscribe", NormalEventPush.class),
    CLICK("CLICK", NormalEventPush.class),
    VIEW("VIEW", NormalEventPush.class),
    SCAN("scan", NormalEventPush.class),
    LOCATION("LOCATION", LocationEventPush.class),
    MASSSENDJOBFINISH("MASSSENDJOBFINISH", MassEndJobFinishEventPush.class);

    private String type;
    private Class<? extends EventPush> eventPushClass;