#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct FileInfo {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "mime")]
pub mime: String,
#[serde(rename = "size")]
pub size: i64,
#[serde(rename = "md5")]
pub md5: String,
#[serde(rename = "isAnimatedImage")]
pub is_animated_image: bool,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "thumbnails")]
pub thumbnails: Vec<crate::models::ThumbnailInfo>,
#[serde(rename = "thumbnail", deserialize_with = "Option::deserialize")]
pub thumbnail: Option<Box<crate::models::FileInfoThumbnail>>,
#[serde(rename = "channelId", deserialize_with = "Option::deserialize")]
pub channel_id: Option<uuid::Uuid>,
#[serde(rename = "uploaderId", deserialize_with = "Option::deserialize")]
pub uploader_id: Option<uuid::Uuid>,
}
impl FileInfo {
pub fn new(
id: uuid::Uuid,
name: String,
mime: String,
size: i64,
md5: String,
is_animated_image: bool,
created_at: String,
thumbnails: Vec<crate::models::ThumbnailInfo>,
thumbnail: Option<crate::models::FileInfoThumbnail>,
channel_id: Option<uuid::Uuid>,
uploader_id: Option<uuid::Uuid>,
) -> FileInfo {
FileInfo {
id,
name,
mime,
size,
md5,
is_animated_image,
created_at,
thumbnails,
thumbnail: thumbnail.map(Box::new),
channel_id,
uploader_id,
}
}
}