use {
serde::{Deserialize, Serialize},
serde_json::Value,
};
use crate::models::{Album, Biography, Image, ItemSearchResult, Playlist};
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Artist {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
#[serde(rename = "picture")]
pub picture: Option<String>,
#[serde(rename = "albums_count")]
pub albums_count: Option<i32>,
#[serde(rename = "albums_as_primary_artist_count")]
pub albums_as_primary_artist_count: Option<i32>,
#[serde(rename = "albums_as_primary_composer_count")]
pub albums_as_primary_composer_count: Option<i32>,
#[serde(rename = "roles")]
pub roles: Option<Vec<String>>,
#[serde(rename = "image")]
pub image: Option<Image>,
#[serde(rename = "biography")]
pub biography: Option<Biography>,
#[serde(rename = "similar_artist_ids")]
pub similar_artist_ids: Option<Vec<i32>>,
#[serde(rename = "playlists")]
pub playlists: Option<ItemSearchResult<Box<Playlist>>>,
#[serde(rename = "albums")]
pub albums: Option<ItemSearchResult<Box<Album>>>,
#[serde(rename = "albums_without_last_release")]
pub albums_without_last_release: Option<ItemSearchResult<Box<Album>>>,
#[serde(rename = "album_last_release")]
pub album_last_release: Option<Box<Album>>,
#[serde(rename = "information")]
pub information: Option<Value>,
}