qobuz_api_rust/models/
playlist.rs1use serde::{Deserialize, Serialize};
2
3use crate::models::{
4 Artist, Focus, Genre, Image, ItemSearchResult, Playlist as PlaylistModel, Tag, Track, User,
5};
6
7#[derive(Serialize, Deserialize, Debug, Clone, Default)]
25pub struct Playlist {
26 #[serde(rename = "id")]
28 pub id: Option<i64>,
29
30 #[serde(rename = "name")]
32 pub name: Option<String>,
33
34 #[serde(rename = "description")]
36 pub description: Option<String>,
37
38 #[serde(rename = "duration")]
40 pub duration: Option<i64>,
41
42 #[serde(rename = "created_at")]
44 pub created_at: Option<i64>,
45
46 #[serde(rename = "updated_at")]
48 pub updated_at: Option<i64>,
49
50 #[serde(rename = "public_at")]
52 pub public_at: Option<i64>,
53
54 #[serde(rename = "published_from")]
56 pub published_from: Option<i64>,
57
58 #[serde(rename = "published_to")]
60 pub published_to: Option<i64>,
61
62 #[serde(rename = "tracks_count")]
64 pub tracks_count: Option<i32>,
65
66 #[serde(rename = "users_count")]
68 pub users_count: Option<i32>,
69
70 #[serde(rename = "is_public")]
72 pub is_public: Option<bool>,
73
74 #[serde(rename = "is_featured")]
76 pub is_featured: Option<bool>,
77
78 #[serde(rename = "is_published")]
80 pub is_published: Option<bool>,
81
82 #[serde(rename = "is_collaborative")]
84 pub is_collaborative: Option<bool>,
85
86 #[serde(rename = "owner")]
88 pub owner: Option<User>,
89
90 #[serde(rename = "image")]
92 pub image: Option<Image>,
93
94 #[serde(rename = "images")]
96 pub images: Option<Vec<String>>,
97
98 #[serde(rename = "image_rectangle")]
100 pub image_rectangle: Option<Vec<String>>,
101
102 #[serde(rename = "image_rectangle_mini")]
104 pub image_rectangle_mini: Option<Vec<String>>,
105
106 #[serde(rename = "images150")]
108 pub images150: Option<Vec<String>>,
109
110 #[serde(rename = "images300")]
112 pub images300: Option<Vec<String>>,
113
114 #[serde(rename = "tracks")]
116 pub tracks: Option<ItemSearchResult<Box<Track>>>,
117
118 #[serde(rename = "genres")]
120 pub genres: Option<Vec<Genre>>,
121
122 #[serde(rename = "tags")]
124 pub tags: Option<Vec<Tag>>,
125
126 #[serde(rename = "featured_artists")]
128 pub featured_artists: Option<Vec<Box<Artist>>>,
129
130 #[serde(rename = "similar_playlists")]
132 pub similar_playlists: Option<ItemSearchResult<Box<PlaylistModel>>>,
133
134 #[serde(rename = "items_focus")]
136 pub items_focus: Option<Vec<Focus>>,
137
138 #[serde(rename = "timestamp_position")]
140 pub timestamp_position: Option<i64>,
141
142 #[serde(rename = "slug")]
144 pub slug: Option<String>,
145
146 #[serde(rename = "stores")]
148 pub stores: Option<Vec<String>>,
149}