using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Search;
using YandexMusic.API.Requests.Search;
namespace YandexMusic.API;
/// API для поиска.
public class YSearchAPI : YCommonAPI
{
public YSearchAPI(YandexMusicApi api) : base(api) { }
public Task TrackAsync(string trackName, int page = 0, int pageSize = 20)
=> SearchAsync(trackName, YSearchType.Track, page, pageSize);
public Task AlbumsAsync(string albumName, int page = 0, int pageSize = 20)
=> SearchAsync(albumName, YSearchType.Album, page, pageSize);
public Task ArtistAsync(string artistName, int page = 0, int pageSize = 20)
=> SearchAsync(artistName, YSearchType.Artist, page, pageSize);
public Task PlaylistAsync(string playlistName, int page = 0, int pageSize = 20)
=> SearchAsync(playlistName, YSearchType.Playlist, page, pageSize);
public Task PodcastEpisodeAsync(string podcastName, int page = 0, int pageSize = 20)
=> SearchAsync(podcastName, YSearchType.PodcastEpisode, page, pageSize);
public Task VideosAsync(string videoName, int page = 0, int pageSize = 20)
=> SearchAsync(videoName, YSearchType.Video, page, pageSize);
public Task UsersAsync(string userName, int page = 0, int pageSize = 20)
=> SearchAsync(userName, YSearchType.User, page, pageSize);
public Task SearchAsync(string searchText, YSearchType searchType, int page = 0, int pageSize = 20)
=> new YSearchBuilder(Api).ExecuteAsync((searchText, searchType, page, pageSize));
public Task GetSearchSuggestionsAsync(string searchText)
=> new YSearchSuggestBuilder(Api).ExecuteAsync(searchText);
}