use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTemplateCardEvent {
#[serde(rename="FromUserName")]
pub source: String,
#[serde(rename="ToUserName")]
pub target: String,
#[serde(rename="CreateTime")]
pub create_time: i64,
#[serde(rename="MsgId")]
pub id: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="TaskId")]
pub task_id: Option<String>,
#[serde(rename="CardType")]
pub card_type: Option<String>,
#[serde(rename="ResponseCode")]
pub response_code: Option<String>,
#[serde(rename="SelectedItems")]
pub selected_items: Option<SelectedItems>,
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct SelectedItems {
#[serde(rename = "SelectedItem")]
items: Vec<SelectedItem>
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct SelectedItem {
#[serde(rename = "QuestionKey")]
question_key: Option<String>,
#[serde(rename = "OptionIds")]
option_ids: Option<OptionIds>,
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct OptionIds {
#[serde(rename = "OptionId")]
items: Option<String>
}
#[derive(Debug, Serialize, Deserialize,Clone)]
pub struct OptionId {
#[serde(rename = "QuestionKey")]
question_key: String,
#[serde(rename = "OptionIds")]
option_ids: OptionIds,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CpTemplateCardMenuEvent {
#[serde(rename="FromUserName")]
pub source: String,
#[serde(rename="ToUserName")]
pub target: String,
#[serde(rename="CreateTime")]
pub create_time: i64,
#[serde(rename="MsgId")]
pub id: i64,
#[serde(rename="Event")]
pub event: String,
#[serde(rename="AgentID")]
pub agent_id: i64,
#[serde(rename="TaskId")]
pub task_id: Option<String>,
#[serde(rename="CardType")]
pub card_type: Option<String>,
#[serde(rename="ResponseCode")]
pub response_code: Option<String>,
}