1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct AlbumGetInfoResponse {
6 pub album: Album,
7}
8
9#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
10#[serde(rename_all = "camelCase")]
11pub struct Album {
12 pub artist: String,
13 pub image: Vec<Image>,
14 pub listeners: String,
15 pub mbid: String,
16 pub name: String,
17 pub playcount: String,
18 pub tags: Tags,
19 pub tracks: Tracks,
20 pub url: String,
21 pub userplaycount: i64,
22 pub wiki: Wiki,
23}
24
25#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct Image {
28 #[serde(rename = "#text")]
29 pub text: String,
30 pub size: String,
31}
32
33#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct Tags {
36 pub tag: Vec<Tag>,
37}
38
39#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct Tag {
42 pub name: String,
43 pub url: String,
44}
45
46#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
47#[serde(rename_all = "camelCase")]
48pub struct Tracks {
49 pub track: Vec<Track>,
50}
51
52#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct Track {
55 #[serde(rename = "@attr")]
56 pub attr: Attr,
57 pub artist: Artist,
58 pub duration: i64,
59 pub name: String,
60 pub streamable: Streamable,
61 pub url: String,
62}
63
64#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
65#[serde(rename_all = "camelCase")]
66pub struct Attr {
67 pub rank: i64,
68}
69
70#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct Artist {
73 pub mbid: String,
74 pub name: String,
75 pub url: String,
76}
77
78#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
79#[serde(rename_all = "camelCase")]
80pub struct Streamable {
81 #[serde(rename = "#text")]
82 pub text: String,
83 pub fulltrack: String,
84}
85
86#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
87#[serde(rename_all = "camelCase")]
88pub struct Wiki {
89 pub content: String,
90 pub published: String,
91 pub summary: String,
92}