use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuClickEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuViewEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuScanCodePushEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="ScanCodeInfo")]
pub scan_code_info: ScanCodeInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct ScanCodeInfo {
#[serde(rename = "ScanType")]
pub scan_type: String,
#[serde(rename = "ScanResult")]
pub scan_result: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuScanCodeWaitMsgEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="ScanCodeInfo")]
pub scan_code_info: ScanCodeInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuPicSysPhotoEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="SendPicsInfo")]
pub send_pics_info: SendPicsInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SendPicsInfo {
#[serde(rename = "Count")]
pub count: i64,
#[serde(rename = "PicList")]
pub pic_list: Option<String>,
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct PicList {
#[serde(rename = "item")]
items: Vec<PicItem>
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct PicItem {
#[serde(rename = "PicMd5Sum")]
pic_md5_sum: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuPicPhotoOrAlbumEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="SendPicsInfo")]
pub send_pics_info: SendPicsInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuPicWeixinEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="SendPicsInfo")]
pub send_pics_info: SendPicsInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpMenuLocationSelectEvent {
#[serde(rename = "ToUserName")]
pub target: String,
#[serde(rename = "FromUserName")]
pub source: String,
# [serde(rename = "CreateTime")]
pub create_time: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="MsgType")]
pub msg_type: String,
#[serde(rename="EventKey")]
pub event_key: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="SendLocationInfo")]
pub send_location_info: SendLocationInfo,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SendLocationInfo {
#[serde(rename="Location_X")]
pub location_x: f64,
#[serde(rename="Location_Y")]
pub location_y: f64,
#[serde(rename="Scale")]
pub scale: usize,
#[serde(rename="Label")]
pub label: String,
#[serde(rename="Poiname")]
pub poiname: Option<String>,
}