#![allow(unused_results)]
use std::collections::HashMap;
use api_request_utils::serde_json::Value;
use crate::SortBy;
pub struct TrackSearchQuery(pub(crate) HashMap<&'static str,Value>);
impl TrackSearchQuery {
pub fn new() -> Self {
TrackSearchQuery(HashMap::new())
}
pub fn song_title(mut self, q_track: Option<&str>) -> Self {
static KEY : &str = "q_track";
self.0.insert(KEY, q_track.into());
self
}
pub fn song_artist(mut self, q_artist: Option<&str>) -> Self {
static KEY : &str = "q_artist";
self.0.insert(KEY, q_artist.into());
self
}
pub fn lyrics_contain_word(mut self, q_lyrics: Option<&str>) -> Self {
static KEY : &str = "q_lyrics";
self.0.insert(KEY, q_lyrics.into());
self
}
pub fn song_title_or_artist_contains_word(mut self, q_track_artist: Option<&str>) -> Self {
static KEY : &str = "q_track_artist";
self.0.insert(KEY, q_track_artist.into());
self
}
pub fn search_writers(mut self, q_writer: Option<&str>) -> Self {
static KEY : &str = "q_writer";
self.0.insert(KEY, q_writer.into());
self
}
pub fn search_all_contains_word(mut self, q: Option<&str>) -> Self {
static KEY : &str = "q";
self.0.insert(KEY,q.into());
self
}
pub fn artist_id(mut self, f_artist_id: Option<u32>) -> Self {
static KEY : &str = "f_artist_id";
self.0.insert(KEY, f_artist_id.into());
self
}
pub fn music_genre_id(mut self, f_music_genre_id: Option<u32>) -> Self {
static KEY : &str = "f_music_genre_id";
self.0.insert(KEY, f_music_genre_id.into());
self
}
pub fn lyrics_language(mut self, f_lyrics_language: Option<&str>) -> Self {
static KEY : &str = "f_lyrics_language";
self.0.insert(KEY, f_lyrics_language.into());
self
}
pub fn has_lyrics(mut self, f_has_lyrics: Option<bool>) -> Self {
static KEY : &str = "f_has_lyrics";
self.0.insert(KEY, f_has_lyrics.into());
self
}
pub fn track_release_group_first_release_date_min(mut self, f_track_release_group_first_release_date_min: Option<&str>) -> Self {
static KEY : &str = "f_track_release_group_first_release_date_min";
self.0.insert(KEY, f_track_release_group_first_release_date_min.into());
self
}
pub fn track_release_group_first_release_date_max(mut self, f_track_release_group_first_release_date_max: Option<&str>) -> Self {
static KEY : &str = "f_track_release_group_first_release_date_max";
self.0.insert(KEY, f_track_release_group_first_release_date_max.into());
self
}
pub fn artist_rating(mut self, s_artist_rating: Option<SortBy>) -> Self {
static KEY : &str = "s_artist_rating";
self.0.insert(KEY, s_artist_rating.into());
self
}
pub fn track_rating(mut self, s_track_rating: Option<SortBy>) -> Self {
static KEY : &str = "q_artist";
self.0.insert(KEY, s_track_rating.into());
self
}
pub fn quorum_factor(mut self, quorum_factor: Option<f32>) -> Self {
static KEY : &str = "q_artist";
self.0.insert(KEY, quorum_factor.into());
self
}
pub fn page(mut self, page: Option<u8>) -> Self {
static KEY : &str = "q_artist";
self.0.insert(KEY, page.into());
self
}
pub fn page_size(mut self, page_size: Option<u32>) -> Self {
static KEY : &str = "q_artist";
self.0.insert(KEY, page_size.into());
self
}
}