1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use serde::{Serialize, Deserialize};
use crate::api::models::*;
#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
#[builder(setter(into, prefix = "with", strip_option))]
pub struct EventPayload {
/// Служит идентификатором успешности или провала выполнения команды.
#[builder(default)]
pub status: Status,
/// текстовое сообщение. Отображается в чате, как текстовое сообщение.
#[builder(default)]
pub body: String,
/// (Default: {}) - метаданные которые будут отправлены в параметрах команды при нажатие на любую кнопку.
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub metadata: Option<serde_json::Value>,
/// (Default: {}) - опции сообщения
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opts: Option<EventPayloadOptions>,
/// (Default: []) - кнопки команд расположенные на клавиатуре, представленные в виде двумерного массива объектов.
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub keyboard: Option<Vec<Vec<Button>>>,
/// (Default: []) - кнопки команд расположенные под сообщением, представленные в виде двумерного массива объектов.
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bubble: Option<Vec<Vec<Bubble>>>,
/// (Default: []) - список меншнов
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mentions: Option<Vec<Mention>>,
}
/// опции сообщения
#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
#[builder(setter(into, prefix = "with", strip_option))]
pub struct EventPayloadOptions {
/// (Default: false) - если значение true, то последующие сообщения пользователя не будут отображаться в чате, <br/>
/// до тех пор пока не придет сообщения бота у которого это значение будет установлено в false. <br/>
/// Разрешено только в личных чатах (1-1)
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub silent_response: Option<bool>,
/// (Default: false) - если значение ‘true’, то кнопки, при отображение, будут автоматически переноситься на новый ряд, <br/>
/// если не помещаются в заданном ряду
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub buttons_auto_adjust: Option<bool>,
}