use serde::Deserialize;
#[derive(Debug, Clone, Copy)]
pub enum MarketplaceImageOrderBy {
NameAsc,
NameDesc,
CreatedAtAsc,
CreatedAtDesc,
UpdatedAtAsc,
UpdatedAtDesc,
}
impl std::fmt::Display for MarketplaceImageOrderBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
MarketplaceImageOrderBy::NameAsc => write!(f, "name_asc"),
MarketplaceImageOrderBy::NameDesc => write!(f, "name_desc"),
MarketplaceImageOrderBy::CreatedAtAsc => write!(f, "created_at_asc"),
MarketplaceImageOrderBy::CreatedAtDesc => write!(f, "created_at_desc"),
MarketplaceImageOrderBy::UpdatedAtAsc => write!(f, "updated_at_asc"),
MarketplaceImageOrderBy::UpdatedAtDesc => write!(f, "updated_at_desc"),
}
}
}
#[derive(Deserialize, Debug)]
pub struct ScalewayMarketplaceImageRoot {
pub images: Vec<ScalewayMarketplaceImage>,
pub total_count: u64,
}
#[derive(Deserialize, Debug)]
pub struct ScalewayMarketplaceImage {
pub id: String,
pub name: String,
pub description: String,
pub logo: String,
pub categories: Vec<String>,
#[serde(with = "time::serde::rfc3339")]
pub created_at: time::OffsetDateTime,
#[serde(with = "time::serde::rfc3339::option")]
pub updated_at: Option<time::OffsetDateTime>,
#[serde(with = "time::serde::rfc3339::option")]
pub valid_until: Option<time::OffsetDateTime>,
pub label: String,
}