botx_api/api/models/
bubble.rs1use serde::{Serialize, Deserialize};
2
3use super::{handler::Handler, align::Align};
4
5
6#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
8#[builder(setter(into, prefix = "with", strip_option))]
9pub struct Bubble {
10 pub command: String,
12
13 pub label: String,
15
16 #[serde(skip_serializing_if = "Option::is_none")]
18 #[builder(default)]
19 pub data: Option<serde_json::Value>,
20
21 #[builder(default)]
23 pub opts: BubbleOptions
24}
25
26#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
27#[builder(setter(into, prefix = "with", strip_option))]
28pub struct BubbleOptions {
29 #[serde(skip_serializing_if = "Option::is_none")]
31 #[builder(default)]
32 pub silent: Option<bool>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 #[builder(default)]
37 pub h_size: Option<u32>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
41 #[builder(default)]
42 pub show_alert: Option<bool>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 #[builder(default)]
47 pub alert_text: Option<String>,
48
49 #[serde(skip_serializing_if = "Option::is_none")]
51 #[builder(default)]
52 pub handler: Option<Handler>,
53
54 #[serde(skip_serializing_if = "Option::is_none")]
56 #[builder(default)]
57 pub font_color: Option<String>,
58
59 #[serde(skip_serializing_if = "Option::is_none")]
61 #[builder(default)]
62 pub background_color: Option<String>,
63
64 #[serde(skip_serializing_if = "Option::is_none")]
66 #[builder(default)]
67 pub align: Option<Align>
68}