use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct EnterAioEvent {
#[serde(default, skip_serializing_if = "String::is_empty")]
pub user_openid: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub from_source: String,
#[serde(skip)]
pub event_id: Option<String>,
}
pub type EnterAIO = EnterAioEvent;
impl EnterAioEvent {
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
}
}