use serde::{Deserialize, Serialize};
use super::user::APIUser;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APISticker {
pub id: String,
pub pack_id: Option<String>,
pub name: String,
pub description: Option<String>,
pub tags: String,
pub asset: Option<String>,
pub r#type: StickerType,
pub format_type: StickerFormatType,
pub available: Option<bool>,
pub guild_id: Option<String>,
pub user: Option<APIUser>,
pub sort_value: Option<i32>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum StickerType {
Standard = 1,
Guild,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum StickerFormatType {
PNG = 1,
APNG,
Lottie,
GIF,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIStickerItem {
pub format_type: StickerFormatType,
pub id: String,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIStickerPack {
pub id: String,
pub stickers: Vec<APISticker>,
pub name: String,
pub sku_id: String,
pub cover_sticker_id: Option<String>,
pub description: String,
pub banner_asset_id: Option<String>,
}