use serde::Deserialize;
use serde_repr::Deserialize_repr;
use crate::types::{Snowflake, User};
#[derive(Debug, Clone, Deserialize)]
pub struct Sticker {
pub id: Snowflake,
pub pack_id: Option<Snowflake>,
pub name: String,
pub description: Option<String>,
pub tags: String,
pub asset: Option<String>,
#[serde(rename = "type")]
pub t: StickerType,
pub format_type: Option<i32>,
pub available: Option<bool>,
pub guild_id: Option<Snowflake>,
pub user: Option<User>,
pub sort_value: Option<i32>,
}
#[derive(Debug, Clone, Deserialize_repr)]
#[repr(u8)]
pub enum StickerType {
Standard = 1,
Guild = 2,
}
#[derive(Debug, Clone, Deserialize_repr)]
#[repr(u8)]
pub enum StickerFormatTypes {
Png = 1,
Apng = 2,
Lottie = 3,
Gif = 4,
}
#[derive(Debug, Clone, Deserialize)]
pub struct StickerItem {
pub id: Snowflake,
pub name: String,
pub format_type: i32,
}
#[derive(Debug, Clone, Deserialize)]
pub struct StickerPack {
pub id: Snowflake,
pub stickers: Vec<Sticker>,
pub name: String,
pub sku_id: Snowflake,
pub cover_sticker_id: Option<Snowflake>,
pub description: String,
pub banner_asset_id: Option<Snowflake>,
}