use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Image {
#[serde(rename = "small")]
pub small: Option<String>,
#[serde(rename = "thumbnail")]
pub thumbnail: Option<String>,
#[serde(rename = "medium")]
pub medium: Option<String>,
#[serde(rename = "large")]
pub large: Option<String>,
#[serde(rename = "extralarge")]
pub extralarge: Option<String>,
#[serde(rename = "mega")]
pub mega: Option<String>,
#[serde(rename = "back")]
pub back: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct AudioInfo {
#[serde(rename = "replaygain_track_peak")]
pub replaygain_track_peak: Option<f64>,
#[serde(rename = "replaygain_track_gain")]
pub replaygain_track_gain: Option<f64>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Genre {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
#[serde(rename = "path")]
pub path: Option<Vec<i32>>,
#[serde(rename = "color")]
pub color: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Label {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Tag {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "name_json")]
pub name_json: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
#[serde(rename = "color")]
pub color: Option<String>,
#[serde(rename = "is_discover")]
pub is_discover: Option<bool>,
#[serde(rename = "featured_tag_id")]
pub featured_tag_id: Option<String>,
#[serde(rename = "genre_tag")]
pub genre_tag: Option<GenreTag>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GenreTag {
#[serde(rename = "genre_id")]
pub genre_id: Option<String>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Area {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Award {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "year")]
pub year: Option<i32>,
#[serde(rename = "description")]
pub description: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Goody {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "title")]
pub title: Option<String>,
#[serde(rename = "url")]
pub url: Option<String>,
#[serde(rename = "type")]
pub type_field: Option<String>,
#[serde(rename = "image")]
pub image: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Focus {
#[serde(rename = "id")]
pub id: Option<String>,
#[serde(rename = "type")]
pub type_field: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Period {
#[serde(rename = "id")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: Option<String>,
#[serde(rename = "slug")]
pub slug: Option<String>,
}