use serde::{Deserialize, Serialize};
use super::common::{Artist, Child};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Directory {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub starred: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_rating: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub average_rating: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub play_count: Option<i64>,
#[serde(default)]
pub child: Vec<Child>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Index {
pub name: String,
#[serde(default)]
pub artist: Vec<Artist>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Indexes {
#[serde(skip_serializing_if = "Option::is_none")]
pub ignored_articles: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified: Option<i64>,
#[serde(default)]
pub shortcut: Vec<Artist>,
#[serde(default)]
pub child: Vec<Child>,
#[serde(default)]
pub index: Vec<Index>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AlbumInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub music_brainz_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_fm_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub small_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub medium_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub large_image_url: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ArtistInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub biography: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub music_brainz_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_fm_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub small_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub medium_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub large_image_url: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub similar_artist: Vec<Artist>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ArtistInfo2 {
#[serde(skip_serializing_if = "Option::is_none")]
pub biography: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub music_brainz_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_fm_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub small_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub medium_image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub large_image_url: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub similar_artist: Vec<super::common::ArtistId3>,
}