botx_api/api/v3/chats/set_stealth/
models.rs

1use serde::{Serialize, Deserialize};
2use uuid::Uuid;
3
4use crate::api::{
5    models::ChatNotFound,
6    v3::chats::models::*
7};
8
9/// Запрос на включении стелс режима в чате
10#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
11#[builder(setter(into, prefix = "with", strip_option))]
12pub struct SetStealthRequest {
13    /// Идентификатор чата
14    pub group_chat_id: Uuid,
15
16    /// (Default: false) - если true - отключает доступ к чату с веб-клиента (по умолчанию false)
17    pub disable_web: bool,
18
19    /// (Default: null) - Время сгорания для прочитавшего, в секундах (по-умолчанию null - выключено)
20    #[builder(default)]
21    pub burn_in: Option<u32>,
22
23    /// (Default: null) - время сгорания для всех участников чата, в секундах (по-умолчанию null - выключено)
24    #[builder(default)]
25    pub expire_in: Option<u32>,
26}
27
28/// Ответ eXpress на включении стелс режима в чате
29#[derive(Debug, Serialize, Deserialize, Clone)]
30pub struct SetStealthResponse {
31    /// Результат запроса
32    /// 
33    /// TODO: Я не знаю что значит false, документация не описывает, откройте issue как станет понятно 
34    pub result: bool,
35}
36
37/// Ошибки при включении стелс режима в чате
38#[derive(Debug, Serialize, Deserialize, Clone)]
39#[serde(tag = "reason")]
40pub enum SetStealthError {
41    /// Чат не найден
42    #[serde(rename(serialize = "chat_not_found", deserialize = "chat_not_found"))]
43    ChatNotFound(ChatNotFound),
44
45    /// Бот не является админом чата
46    #[serde(rename(serialize = "no_permission_for_operation", deserialize = "no_permission_for_operation"))]
47    NoPermissionForOperation(NoPermissionForOperation),
48
49    // TODO: добавить десериализацию в HashMap<string, string> когда завезут реализацию
50    /// Неопределенная ошибка, смотрите логи
51    #[serde(other)]
52    Other,
53}