qobuz_api_rust/models/
album.rs1use {
2 serde::{Deserialize, Serialize},
3 serde_json::Value,
4};
5
6use crate::models::{
7 AlbumsSameArtist, Area, Article, Artist, Award, Focus, Genre, Goody, Image, ItemSearchResult,
8 Label, Period, Track,
9};
10
11#[derive(Serialize, Deserialize, Debug, Clone, Default)]
28pub struct Album {
29 #[serde(rename = "id")]
31 pub id: Option<String>,
32
33 #[serde(rename = "title")]
35 pub title: Option<String>,
36
37 #[serde(rename = "subtitle")]
39 pub subtitle: Option<String>,
40
41 #[serde(rename = "version")]
43 pub version: Option<String>,
44
45 #[serde(rename = "upc")]
47 pub upc: Option<String>,
48
49 #[serde(rename = "url")]
51 pub url: Option<String>,
52
53 #[serde(rename = "product_url")]
55 pub product_url: Option<String>,
56
57 #[serde(rename = "relative_url")]
59 pub relative_url: Option<String>,
60
61 #[serde(rename = "artist")]
63 pub artist: Option<Box<Artist>>,
64
65 #[serde(rename = "artists")]
67 pub artists: Option<Vec<Box<Artist>>>,
68
69 #[serde(rename = "composer")]
71 pub composer: Option<Box<Artist>>,
72
73 #[serde(rename = "label")]
75 pub label: Option<Label>,
76
77 #[serde(rename = "genre")]
79 pub genre: Option<Genre>,
80
81 #[serde(rename = "genres_list")]
83 pub genres_list: Option<Vec<String>>,
84
85 #[serde(rename = "image")]
87 pub image: Option<Image>,
88
89 #[serde(rename = "duration")]
91 pub duration: Option<i64>,
92
93 #[serde(rename = "tracks_count")]
95 pub tracks_count: Option<i32>,
96
97 #[serde(rename = "media_count")]
99 pub media_count: Option<i32>,
100
101 #[serde(rename = "released_at")]
103 pub released_at: Option<i64>,
104
105 #[serde(rename = "release_date_download")]
107 pub release_date_download: Option<String>,
108
109 #[serde(rename = "release_date_original")]
111 pub release_date_original: Option<String>,
112
113 #[serde(rename = "release_date_stream")]
115 pub release_date_stream: Option<String>,
116
117 #[serde(rename = "created_at")]
119 pub created_at: Option<i64>,
120
121 #[serde(rename = "purchasable_at")]
123 pub purchasable_at: Option<i64>,
124
125 #[serde(rename = "streamable_at")]
127 pub streamable_at: Option<i64>,
128
129 #[serde(rename = "copyright")]
131 pub copyright: Option<String>,
132
133 #[serde(rename = "description")]
135 pub description: Option<String>,
136
137 #[serde(rename = "catchline")]
139 pub catchline: Option<String>,
140
141 #[serde(rename = "recording_information")]
143 pub recording_information: Option<String>,
144
145 #[serde(rename = "maximum_bit_depth")]
147 pub maximum_bit_depth: Option<f64>,
148
149 #[serde(rename = "maximum_channel_count")]
151 pub maximum_channel_count: Option<f64>,
152
153 #[serde(rename = "maximum_sampling_rate")]
155 pub maximum_sampling_rate: Option<f64>,
156
157 #[serde(rename = "maximum_technical_specifications")]
159 pub maximum_technical_specifications: Option<String>,
160
161 #[serde(rename = "hires")]
163 pub hires: Option<bool>,
164
165 #[serde(rename = "hires_streamable")]
167 pub hires_streamable: Option<bool>,
168
169 #[serde(rename = "displayable")]
171 pub displayable: Option<bool>,
172
173 #[serde(rename = "downloadable")]
175 pub downloadable: Option<bool>,
176
177 #[serde(rename = "purchasable")]
179 pub purchasable: Option<bool>,
180
181 #[serde(rename = "streamable")]
183 pub streamable: Option<bool>,
184
185 #[serde(rename = "previewable")]
187 pub previewable: Option<bool>,
188
189 #[serde(rename = "sampleable")]
191 pub sampleable: Option<bool>,
192
193 #[serde(rename = "parental_warning")]
195 pub parental_warning: Option<bool>,
196
197 #[serde(rename = "is_official")]
199 pub is_official: Option<bool>,
200
201 #[serde(rename = "product_type")]
203 pub product_type: Option<String>,
204
205 #[serde(rename = "release_type")]
207 pub release_type: Option<String>,
208
209 #[serde(rename = "popularity")]
211 pub popularity: Option<i32>,
212
213 #[serde(rename = "tracks")]
215 pub tracks: Option<ItemSearchResult<Box<Track>>>,
216
217 #[serde(rename = "albums_same_artist")]
219 pub albums_same_artist: Option<AlbumsSameArtist>,
220
221 #[serde(rename = "area")]
223 pub area: Option<Area>,
224
225 #[serde(rename = "articles")]
227 pub articles: Option<Vec<Article>>,
228
229 #[serde(rename = "awards")]
231 pub awards: Option<Vec<Award>>,
232
233 #[serde(rename = "goodies")]
235 pub goodies: Option<Vec<Goody>>,
236
237 #[serde(rename = "items_focus")]
239 pub items_focus: Option<Vec<Focus>>,
240
241 #[serde(rename = "period")]
243 pub period: Option<Period>,
244
245 #[serde(rename = "product_sales_factors_monthly")]
247 pub product_sales_factors_monthly: Option<f64>,
248
249 #[serde(rename = "product_sales_factors_weekly")]
251 pub product_sales_factors_weekly: Option<f64>,
252
253 #[serde(rename = "product_sales_factors_yearly")]
255 pub product_sales_factors_yearly: Option<f64>,
256
257 #[serde(rename = "qobuz_id")]
259 pub qobuz_id: Option<i32>,
260
261 #[serde(rename = "release_tags")]
263 pub release_tags: Option<Vec<Value>>,
264
265 #[serde(rename = "track_ids")]
267 pub track_ids: Option<Vec<i32>>,
268}