use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct SubscribeMessageStatusData {
#[serde(default)]
pub group_openid: String,
#[serde(default)]
pub openid: String,
#[serde(default)]
pub result: Vec<SubscribeMsgTemplateResult>,
#[serde(skip)]
pub event_id: Option<String>,
}
impl SubscribeMessageStatusData {
pub fn new(event_id: Option<String>, data: &serde_json::Value) -> Self {
let mut event = serde_json::from_value::<Self>(data.clone()).unwrap_or_default();
event.event_id = event_id;
event
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct SubscribeMsgTemplateResult {
#[serde(default)]
pub template_id: i32,
#[serde(default)]
pub custom_template_id: String,
#[serde(default)]
pub op: u32,
#[serde(default)]
pub subscribe_id: String,
#[serde(default)]
pub update_ts: u64,
}