use serde::{Deserialize, Serialize};
use spotify_rs_macros::docs;
use super::*;
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[docs(name = "user")]
pub struct PrivateUser {
pub country: String,
pub display_name: Option<String>,
pub email: String,
pub explicit_content: Option<ExplicitContent>,
pub external_urls: ExternalUrls,
pub followers: Followers,
pub href: String,
pub id: String,
pub images: Vec<Image>,
pub product: Option<String>,
pub r#type: String,
pub uri: String,
}
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[docs]
pub struct User {
pub display_name: Option<String>,
pub external_urls: ExternalUrls,
pub followers: Followers,
pub href: String,
pub id: String,
pub images: Vec<Image>,
pub r#type: String,
pub uri: String,
}
#[derive(Clone, Debug, Deserialize, PartialEq)]
#[docs(name = "user")]
pub struct ReferenceUser {
pub external_urls: ExternalUrls,
pub href: String,
pub id: String,
pub r#type: String,
pub uri: String,
pub display_name: Option<String>,
}
#[derive(Clone, Debug, Deserialize, PartialEq)]
pub struct ExplicitContent {
pub filter_enabled: bool,
pub filter_locked: bool,
}
#[derive(Clone, Debug, Default, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum TimeRange {
LongTerm,
#[default]
MediumTerm,
ShortTerm,
}