use crate::model::user::User;
use super::{serde_util, CacheUserFn, ContainedUsers};
use serde::Deserialize;
use time::OffsetDateTime;
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
pub struct SeasonalBackground {
pub url: String,
#[serde(rename = "user")]
pub artist: User,
}
impl ContainedUsers for SeasonalBackground {
fn apply_to_users(&self, f: impl CacheUserFn) {
self.artist.apply_to_users(f);
}
}
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
pub struct SeasonalBackgrounds {
#[serde(with = "serde_util::datetime")]
pub ends_at: OffsetDateTime,
pub backgrounds: Vec<SeasonalBackground>,
}
impl ContainedUsers for SeasonalBackgrounds {
fn apply_to_users(&self, f: impl CacheUserFn) {
self.backgrounds.apply_to_users(f);
}
}