qobuz_api/models/
search.rs1use serde::{Deserialize, Serialize};
4
5use crate::models::{album::Album, artist::Artist, playlist::Playlist, track::Track};
6
7#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
9pub struct AlbumSearchResponse {
10 pub albums: ItemSearchResult<Box<Album>>,
12}
13
14#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
16pub struct ArtistSearchResponse {
17 pub artists: ItemSearchResult<Box<Artist>>,
19}
20
21#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
23pub struct ItemSearchResult<T> {
24 pub items: Option<Vec<T>>,
26 pub total: Option<i32>,
28 pub limit: Option<i32>,
30 pub offset: Option<i32>,
32}
33
34#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
36pub struct PlaylistSearchResponse {
37 pub playlists: ItemSearchResult<Box<Playlist>>,
39}
40
41#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
43pub struct SearchResult {
44 pub albums: Option<ItemSearchResult<Box<Album>>>,
46 pub artists: Option<ItemSearchResult<Box<Artist>>>,
48 pub tracks: Option<ItemSearchResult<Box<Track>>>,
50 pub playlists: Option<ItemSearchResult<Box<Playlist>>>,
52}
53
54#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
56pub struct TrackSearchResponse {
57 pub tracks: ItemSearchResult<Box<Track>>,
59}
60
61#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
63pub struct UserFavorites {
64 pub albums: Option<ItemSearchResult<Box<Album>>>,
66 pub artists: Option<ItemSearchResult<Box<Artist>>>,
68 pub tracks: Option<ItemSearchResult<Box<Track>>>,
70 pub article_ids: Option<Vec<i32>>,
72 pub artist_ids: Option<Vec<i32>>,
74 pub album_ids: Option<Vec<i32>>,
76 pub track_ids: Option<Vec<i32>>,
78}