use serde::{Deserialize, Serialize};
use crate::model::event::{MessageEvent, MessageSentEvent, MetaEvent, NoticeEvent, RequestEvent};
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(tag = "post_type", rename_all = "snake_case")]
pub enum PostEvent {
Message(MessageEvent),
MessageSent(MessageSentEvent),
#[serde(rename = "meta_event")]
Meta(MetaEvent),
Notice(NoticeEvent),
Request(RequestEvent),
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct BotEvent {
pub time: u64,
pub self_id: u64,
#[serde(flatten)]
pub post_type: PostEvent,
}