use serde::Deserialize;
use crate::models::Id;
#[derive(Debug, Deserialize, Clone, PartialEq)]
pub struct Attachment {
#[serde(rename = "_id")]
pub id: Id,
pub tag: AttachmentTag,
pub filename: String,
pub metadata: AttachmentMetadata,
pub size: usize,
pub content_type: String,
}
#[derive(Debug, Deserialize, Clone, Copy, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum AttachmentTag {
Attachments,
Avatars,
Backgrounds,
Icons,
Banners,
}
#[derive(Debug, Deserialize, Clone, Copy, PartialEq)]
#[serde(tag = "type")]
pub enum AttachmentMetadata {
File,
Text,
Image {
width: usize,
height: usize,
},
Video {
width: usize,
height: usize,
},
Audio,
}