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