namespace YandexMusic.API;
/// Главный класс API Яндекс Музыки. Предоставляет доступ ко всем веткам API.
public class YandexMusicApi
{
/// API для работы с альбомами.
public YAlbumAPI Album { get; internal set; } = null!;
/// API для работы с исполнителями.
public YArtistAPI Artist { get; internal set; } = null!;
/// API для работы с лейблами.
public YLabelAPI Label { get; internal set; } = null!;
/// API для работы с главной страницей (лендингом).
public YLandingAPI Landing { get; internal set; } = null!;
/// API для работы с библиотекой (лайки, дизлайки).
public YLibraryAPI Library { get; internal set; } = null!;
/// API для работы с плейлистами.
public YPlaylistAPI Playlist { get; internal set; } = null!;
/// API для работы с закреплёнными объектами.
public YPinsAPI Pins { get; internal set; } = null!;
/// API для работы с радио.
public YRadioAPI Radio { get; internal set; } = null!;
/// API для поиска.
public YSearchAPI Search { get; internal set; } = null!;
/// API для работы с треками.
public YTrackAPI Track { get; internal set; } = null!;
/// API для работы с очередями.
public YQueueAPI Queue { get; internal set; } = null!;
/// API для работы с пользователем и авторизацией.
public YUserAPI User { get; internal set; } = null!;
/// API для загрузки пользовательского контента.
public YUgcAPI UserGeneratedContent { get; internal set; } = null!;
/// API для работы с протоколом Ynison (WebSocket).
public YYnisonAPI Ynison { get; internal set; } = null!;
/// Создаёт экземпляр API с инициализацией всех подсистем.
public YandexMusicApi()
{
Album = new YAlbumAPI(this);
Artist = new YArtistAPI(this);
Label = new YLabelAPI(this);
Landing = new YLandingAPI(this);
Library = new YLibraryAPI(this);
Playlist = new YPlaylistAPI(this);
Pins = new YPinsAPI(this);
Radio = new YRadioAPI(this);
Search = new YSearchAPI(this);
Track = new YTrackAPI(this);
Queue = new YQueueAPI(this);
User = new YUserAPI(this);
UserGeneratedContent = new YUgcAPI(this);
Ynison = new YYnisonAPI(this);
}
}