qobuz_api_rust/models/
credential.rs

1use serde::{Deserialize, Serialize};
2
3/// Credential model containing user credential information
4///
5/// This struct represents comprehensive user credential information including
6/// personal details, account settings, and feature availability.
7///
8/// # Examples
9///
10/// ```
11/// use qobuz_api_rust::models::Credential;
12///
13/// let credential = Credential {
14///     user_id: Some(123456789),
15///     user_display_name: Some("Example User".to_string()),
16///     ..Default::default()
17/// };
18/// ```
19#[derive(Serialize, Deserialize, Debug, Clone, Default)]
20pub struct Credential {
21    /// User ID associated with the credentials
22    #[serde(rename = "user_id")]
23    pub user_id: Option<i64>,
24
25    /// Display name of the user
26    #[serde(rename = "user_display_name")]
27    pub user_display_name: Option<String>,
28
29    /// Login username of the user
30    #[serde(rename = "user_login")]
31    pub user_login: Option<String>,
32
33    /// Email address of the user
34    #[serde(rename = "user_mail")]
35    pub user_mail: Option<String>,
36
37    /// First name of the user
38    #[serde(rename = "user_firstname")]
39    pub user_firstname: Option<String>,
40
41    /// Last name of the user
42    #[serde(rename = "user_lastname")]
43    pub user_lastname: Option<String>,
44
45    /// Gender of the user
46    #[serde(rename = "user_gender")]
47    pub user_gender: Option<String>,
48
49    /// Birthdate of the user
50    #[serde(rename = "user_birthdate")]
51    pub user_birthdate: Option<String>,
52
53    /// Country where the user is located
54    #[serde(rename = "user_country")]
55    pub user_country: Option<String>,
56
57    /// Timezone of the user
58    #[serde(rename = "user_timezone")]
59    pub user_timezone: Option<String>,
60
61    /// Language of the user
62    #[serde(rename = "user_language")]
63    pub user_language: Option<String>,
64
65    /// URL to the user's avatar
66    #[serde(rename = "user_avatar")]
67    pub user_avatar: Option<String>,
68
69    /// Whether the user profile is partial
70    #[serde(rename = "user_partial")]
71    pub user_partial: Option<bool>,
72
73    /// Age of the user
74    #[serde(rename = "user_age")]
75    pub user_age: Option<i64>,
76
77    /// Date when the user account was created
78    #[serde(rename = "user_created_at")]
79    pub user_created_at: Option<String>,
80
81    /// Whether the user is anonymous
82    #[serde(rename = "user_is_anonymous")]
83    pub user_is_anonymous: Option<bool>,
84
85    /// Whether the user is a subscriber
86    #[serde(rename = "user_is_subscriber")]
87    pub user_is_subscriber: Option<bool>,
88
89    /// Whether the user is on a trial
90    #[serde(rename = "user_is_trialist")]
91    pub user_is_trialist: Option<bool>,
92
93    /// Whether the user has a free account
94    #[serde(rename = "user_is_free")]
95    pub user_is_free: Option<bool>,
96
97    /// Type of subscription the user has
98    #[serde(rename = "user_subscription_type")]
99    pub user_subscription_type: Option<String>,
100
101    /// Store associated with the user
102    #[serde(rename = "user_store")]
103    pub user_store: Option<String>,
104
105    /// Zone associated with the user
106    #[serde(rename = "user_zone")]
107    pub user_zone: Option<String>,
108
109    /// Date when the user's trial expires
110    #[serde(rename = "user_trial_expire_at")]
111    pub user_trial_expire_at: Option<String>,
112
113    /// Number of days left in the user's trial
114    #[serde(rename = "user_trial_days_left")]
115    pub user_trial_days_left: Option<i64>,
116
117    /// Whether the user has used a trial
118    #[serde(rename = "user_trial_used")]
119    pub user_trial_used: Option<bool>,
120
121    /// Whether the user has a promotion
122    #[serde(rename = "user_has_promo")]
123    pub user_has_promo: Option<bool>,
124
125    /// Number of days left in the user's promotion
126    #[serde(rename = "user_promo_days_left")]
127    pub user_promo_days_left: Option<i64>,
128
129    /// Whether the user has an inbox
130    #[serde(rename = "user_has_inbox")]
131    pub user_has_inbox: Option<bool>,
132
133    /// Number of unread messages in the user's inbox
134    #[serde(rename = "user_inbox_unread_count")]
135    pub user_inbox_unread_count: Option<i32>,
136
137    /// Whether the user has newsletter subscriptions
138    #[serde(rename = "user_has_newsletter")]
139    pub user_has_newsletter: Option<bool>,
140
141    /// Whether the user is subscribed to Qobuz newsletter
142    #[serde(rename = "user_has_newsletter_qobuz")]
143    pub user_has_newsletter_qobuz: Option<bool>,
144
145    /// Whether the user is subscribed to label newsletter
146    #[serde(rename = "user_has_newsletter_label")]
147    pub user_has_newsletter_label: Option<bool>,
148
149    /// Whether the user is subscribed to partner newsletter
150    #[serde(rename = "user_has_newsletter_partner")]
151    pub user_has_newsletter_partner: Option<bool>,
152
153    /// Whether the user is subscribed to third-party newsletter
154    #[serde(rename = "user_has_newsletter_third_party")]
155    pub user_has_newsletter_third_party: Option<bool>,
156
157    /// Whether the user can stream high-resolution audio
158    #[serde(rename = "user_can_stream_hires")]
159    pub user_can_stream_hires: Option<bool>,
160
161    /// Whether the user can download high-resolution audio
162    #[serde(rename = "user_can_download_hires")]
163    pub user_can_download_hires: Option<bool>,
164
165    /// Whether the user can skip tracks
166    #[serde(rename = "user_can_skip_tracks")]
167    pub user_can_skip_tracks: Option<bool>,
168
169    /// Whether the user can repeat tracks
170    #[serde(rename = "user_can_repeat_tracks")]
171    pub user_can_repeat_tracks: Option<bool>,
172
173    /// Whether the user can create playlists
174    #[serde(rename = "user_can_create_playlist")]
175    pub user_can_create_playlist: Option<bool>,
176
177    /// Whether the user can create public playlists
178    #[serde(rename = "user_can_create_public_playlist")]
179    pub user_can_create_public_playlist: Option<bool>,
180
181    /// Whether the user can create radio stations
182    #[serde(rename = "user_can_create_radio")]
183    pub user_can_create_radio: Option<bool>,
184
185    /// Whether the user can share content
186    #[serde(rename = "user_can_share")]
187    pub user_can_share: Option<bool>,
188
189    /// Whether the user can download content
190    #[serde(rename = "user_can_download")]
191    pub user_can_download: Option<bool>,
192
193    /// Whether the user has access to instant mixes
194    #[serde(rename = "user_has_instant_mix")]
195    pub user_has_instant_mix: Option<bool>,
196
197    /// Whether the user has access to radio
198    #[serde(rename = "user_has_radio")]
199    pub user_has_radio: Option<bool>,
200
201    /// Whether the user has access to discovery features
202    #[serde(rename = "user_has_discovery")]
203    pub user_has_discovery: Option<bool>,
204
205    /// Whether the user has access to personalization features
206    #[serde(rename = "user_has_personalization")]
207    pub user_has_personalization: Option<bool>,
208
209    /// Whether the user has access to replay gain
210    #[serde(rename = "user_has_replaygain")]
211    pub user_has_replaygain: Option<bool>,
212
213    /// Whether the user has access to equalizer
214    #[serde(rename = "user_has_equalizer")]
215    pub user_has_equalizer: Option<bool>,
216
217    /// Whether the user has access to crossfade
218    #[serde(rename = "user_has_crossfade")]
219    pub user_has_crossfade: Option<bool>,
220
221    /// Whether the user has access to gapless playback
222    #[serde(rename = "user_has_gapless_playback")]
223    pub user_has_gapless_playback: Option<bool>,
224
225    /// Whether the user has access to offline mode
226    #[serde(rename = "user_has_offline_mode")]
227    pub user_has_offline_mode: Option<bool>,
228
229    /// Whether the user has access to lyrics
230    #[serde(rename = "user_has_lyrics")]
231    pub user_has_lyrics: Option<bool>,
232
233    /// Whether the user has access to captions
234    #[serde(rename = "user_has_captions")]
235    pub user_has_captions: Option<bool>,
236
237    /// Whether the user has access to audio quality settings
238    #[serde(rename = "user_has_audio_quality_settings")]
239    pub user_has_audio_quality_settings: Option<bool>,
240
241    /// Whether the user has access to UI settings
242    #[serde(rename = "user_has_ui_settings")]
243    pub user_has_ui_settings: Option<bool>,
244
245    /// Whether the user has access to account settings
246    #[serde(rename = "user_has_account_settings")]
247    pub user_has_account_settings: Option<bool>,
248
249    /// Whether the user has access to privacy settings
250    #[serde(rename = "user_has_privacy_settings")]
251    pub user_has_privacy_settings: Option<bool>,
252
253    /// Whether the user has access to subscription settings
254    #[serde(rename = "user_has_subscription_settings")]
255    pub user_has_subscription_settings: Option<bool>,
256
257    /// Whether the user has payment methods set up
258    #[serde(rename = "user_has_payment_methods")]
259    pub user_has_payment_methods: Option<bool>,
260
261    /// Whether the user has addresses saved
262    #[serde(rename = "user_has_addresses")]
263    pub user_has_addresses: Option<bool>,
264
265    /// Whether the user has playback history
266    #[serde(rename = "user_has_playback_history")]
267    pub user_has_playback_history: Option<bool>,
268
269    /// Whether the user has a library
270    #[serde(rename = "user_has_library")]
271    pub user_has_library: Option<bool>,
272
273    /// Whether the user has favorites
274    #[serde(rename = "user_has_favorites")]
275    pub user_has_favorites: Option<bool>,
276
277    /// Whether the user has playlists
278    #[serde(rename = "user_has_playlists")]
279    pub user_has_playlists: Option<bool>,
280
281    /// Whether the user has followings
282    #[serde(rename = "user_has_followings")]
283    pub user_has_followings: Option<bool>,
284
285    /// Whether the user has subscriptions
286    #[serde(rename = "user_has_subscriptions")]
287    pub user_has_subscriptions: Option<bool>,
288
289    /// Whether the user has purchases
290    #[serde(rename = "user_has_purchases")]
291    pub user_has_purchases: Option<bool>,
292
293    /// Whether the user has playback statistics
294    #[serde(rename = "user_has_playback_statistics")]
295    pub user_has_playback_statistics: Option<bool>,
296
297    /// Whether the user has recommendations
298    #[serde(rename = "user_has_recommendations")]
299    pub user_has_recommendations: Option<bool>,
300
301    /// Whether the user has access to discover features
302    #[serde(rename = "user_has_discover")]
303    pub user_has_discover: Option<bool>,
304
305    /// Whether the user has access to personal radio
306    #[serde(rename = "user_has_personal_radio")]
307    pub user_has_personal_radio: Option<bool>,
308
309    /// Whether the user has access to instant mixes
310    #[serde(rename = "user_has_instant_mixes")]
311    pub user_has_instant_mixes: Option<bool>,
312
313    /// Whether the user has access to smart playlists
314    #[serde(rename = "user_has_smart_playlists")]
315    pub user_has_smart_playlists: Option<bool>,
316
317    /// Whether the user has access to daily mixes
318    #[serde(rename = "user_has_daily_mixes")]
319    pub user_has_daily_mixes: Option<bool>,
320
321    /// Whether the user has access to weekly mixes
322    #[serde(rename = "user_has_weekly_mixes")]
323    pub user_has_weekly_mixes: Option<bool>,
324
325    /// Whether the user has access to monthly mixes
326    #[serde(rename = "user_has_monthly_mixes")]
327    pub user_has_monthly_mixes: Option<bool>,
328
329    /// Whether the user has access to yearly mixes
330    #[serde(rename = "user_has_yearly_mixes")]
331    pub user_has_yearly_mixes: Option<bool>,
332}