use serde::{Serialize, Deserialize};
use uuid::Uuid;
use crate::api::models::MimeType;
#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
#[builder(setter(into, prefix = "with"))]
pub struct File {
pub file_name: String,
pub data: String,
}
#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
#[builder(setter(into, prefix = "with"))]
pub struct FileWithCaption {
pub file_name: String,
pub data: String,
pub caption: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Default, PartialEq, Eq, Clone, Builder)]
#[builder(setter(into, prefix = "with", strip_option))]
pub struct AsyncFile {
#[serde(rename(serialize = "type", deserialize = "type"))] pub async_file_type: String,
pub file: String,
pub file_mime_type: MimeType,
pub file_name: String,
#[builder(default)]
pub file_preview: Option<String>,
#[builder(default)]
pub file_preview_height: Option<u32>,
pub file_preview_width: Option<u32>,
pub file_size: u32,
pub file_hash: String,
pub file_encryption_algo: String,
pub chunk_size: u32,
pub file_id: Uuid,
#[builder(default)]
pub duration: Option<u32>,
#[builder(default)]
pub caption: Option<String>,
}