#[cfg(feature = "catchall")]
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
#[cfg(feature = "catchall")]
use serde_json::Value;
use super::{Referent, Text, UserCore, UserInteractionMetadata};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct ArtistResponse {
pub artist: Artist,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct Artist {
pub alternate_names: Vec<String>,
pub description: Text,
pub facebook_name: Option<String>,
pub instagram_name: Option<String>,
pub twitter_name: Option<String>,
pub followers_count: u32,
pub translation_artist: bool,
pub description_annotation: Referent,
pub user: Option<UserCore<UserInteractionMetadata>>,
#[serde(flatten)]
pub core: ArtistCore,
#[cfg(feature = "catchall")]
#[serde(flatten)]
pub extra: HashMap<String, Value>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct ArtistCore {
#[serde(flatten)]
pub info: ArtistCoreNoMetadata,
pub current_user_metadata: UserInteractionMetadata,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct ArtistCoreNoMetadata {
pub api_path: String,
pub header_image_url: String,
pub id: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub iq: Option<i32>,
pub image_url: String,
pub is_meme_verified: bool,
pub is_verified: bool,
pub name: String,
pub url: String,
}