use std::collections::BTreeMap;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use url::Url;
#[derive(Debug, Serialize, Deserialize, Clone)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ResourceVO {
pub id: String,
pub mime_type: Option<String>,
pub hash: Option<String>,
pub size_bytes: Option<i64>,
pub created_at: DateTime<Utc>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ResourceUploadVO {
pub url: Url,
pub method: String,
pub fields: BTreeMap<String, String>,
pub max_bytes: u64,
pub expires_in_secs: u64,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct CreateResourceVO {
pub id: String,
pub upload: ResourceUploadVO,
}