botx_api/api/models/
event_payload.rs

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