botx_api/api/models/
event_payload.rs1use serde::{Serialize, Deserialize};
2
3use crate::api::models::*;
4
5#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
6#[builder(setter(into, prefix = "with", strip_option))]
7pub struct EventPayload {
8 #[builder(default)]
10 pub status: Status,
11
12 #[builder(default)]
14 pub body: String,
15
16 #[serde(skip_serializing_if = "Option::is_none")]
18 #[builder(default)]
19 pub metadata: Option<serde_json::Value>,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
23 #[builder(default)]
24 pub opts: Option<EventPayloadOptions>,
25
26 #[serde(skip_serializing_if = "Option::is_none")]
28 #[builder(default)]
29 pub keyboard: Option<Vec<Vec<Button>>>,
30
31 #[serde(skip_serializing_if = "Option::is_none")]
33 #[builder(default)]
34 pub bubble: Option<Vec<Vec<Bubble>>>,
35
36 #[serde(skip_serializing_if = "Option::is_none")]
38 #[builder(default)]
39 pub mentions: Option<Vec<Mention>>,
40}
41
42#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
44#[builder(setter(into, prefix = "with", strip_option))]
45pub struct EventPayloadOptions {
46 #[serde(skip_serializing_if = "Option::is_none")]
50 #[builder(default)]
51 pub silent_response: Option<bool>,
52
53 #[serde(skip_serializing_if = "Option::is_none")]
56 #[builder(default)]
57 pub buttons_auto_adjust: Option<bool>,
58}