use std::collections::HashMap;
use chrono::{DateTime, Utc};
use serde::{Serialize, Deserialize};
use uuid::Uuid;
#[derive(Debug, Default, Clone, Builder)]
#[builder(setter(into, prefix = "with", strip_option))]
pub struct StickerPacksListRequest {
#[builder(default)]
pub user_huid: Option<Uuid>,
#[builder(default)]
pub limit: Option<u32>,
#[builder(default)]
pub after: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StickerPacksListResponse {
pub result: StickerPacksListResponseResult,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StickerPacksListResponseResult {
pub packs: Vec<StickerPackWithStickerCount>,
pub pagination: StickerPacksListPagination,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StickerPackWithStickerCount {
pub id: Uuid,
pub name: String,
pub public: bool,
pub preview: Option<String>,
pub stickers_count: u32,
pub stickers_order: Vec<Uuid>,
pub inserted_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub deleted_at: Option<DateTime<Utc>>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StickerPacksListPagination {
pub after: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StickerPacksListError {
#[serde(flatten)]
pub data: HashMap<String, String>,
}