botx_api/api/v3/stickers/add_sticker/
models.rs

1use std::collections::HashMap;
2
3use chrono::{DateTime, Utc};
4use serde::{Serialize, Deserialize};
5use uuid::Uuid;
6
7
8/// Модель запроса добавления стикера в набор стикеров
9#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
10#[builder(setter(into, prefix = "with", strip_option))]
11pub struct AddStickerRequest {
12    /// Эмодзи стикера
13    pub emoji: char,
14
15    /// Изображение стикера в base64 формате
16    pub image: String,
17}
18
19/// Модель ответа на запрос добавления стикера в набор стикеров
20#[derive(Debug, Serialize, Deserialize, Clone)]
21pub struct AddStickerResponse {
22    /// Результат добавления стикера в набор стикеров
23    pub result: AddStickerResponseResult,
24}
25
26/// Результат добавления нового стикера в набор стикеров
27#[derive(Debug, Serialize, Deserialize, Clone)]
28pub struct AddStickerResponseResult {
29    /// id стикера
30    pub id: Uuid,
31
32    /// Эмодзи стикера
33    pub emoji: char,
34
35    /// Url до картинки стикера
36    pub link: String,
37
38    /// Время создания стикера
39    pub inserted_at: DateTime<Utc>,
40
41    /// Время последнего обновления стикера
42    pub updated_at: DateTime<Utc>,
43    
44    // Время удаления стикера
45    pub deleted_at: Option<DateTime<Utc>>,
46}
47
48#[derive(Debug, Serialize, Deserialize, Clone)]
49pub struct AddStickerError {
50    /// Нет фиксированного ответа об ошибке. Складируем все данные сюда
51    #[serde(flatten)]
52    pub data: HashMap<String, String>,
53}