using System.Text.Json.Serialization; using YandexMusic.API.Converters; using YandexMusic.API.Models.Common; using YandexMusic.API.Models.Common.Cover; using YandexMusic.API.Models.Track; namespace YandexMusic.API.Models.Playlist; public class YPlaylist : YBaseModel { public YPlaylistUidPair GetKey() { return new YPlaylistUidPair { Uid = Owner.Uid, Kind = Kind }; } public YButton ActionButton { get; set; } public string AnimatedCoverUri { get; set; } public bool Available { get; set; } public YArtistPlaylistType ArtistPlaylistType { get; set; } public string BackgroundColor { get; set; } public string BackgroundImageUrl { get; set; } public string BackgroundVideoUrl { get; set; } public bool Collective { get; set; } [JsonConverter(typeof(YCoverConverter))] public YCover Cover { get; set; } [JsonConverter(typeof(YCoverConverter))] public YCover CoverWithoutText { get; set; } public YCustomWave CustomWave { get; set; } public List RecentTracks { get; set; } public DateTime Created { get; set; } public YDerivedColors DerivedColors { get; set; } public string Description { get; set; } public string DescriptionFormatted { get; set; } public bool DoNotIndex { get; set; } public long DurationMs { get; set; } public bool EverPlayed { get; set; } public string GeneratedPlaylistType { get; set; } public bool HasTrailer { get; set; } public string IdForFrom { get; set; } public string Image { get; set; } public bool IsBanner { get; set; } public bool IsPremiere { get; set; } [JsonConverter(typeof(IntToStringConverter))] public string Kind { get; set; } public List LastOwnerPlaylists { get; set; } public int LikesCount { get; set; } public YPlaylistMadeFor MadeFor { get; set; } public string MetrikaId { get; set; } public string Modified { get; set; } public string OgImage { get; set; } public string OgTitle { get; set; } public string OgDescription { get; set; } public YOwner Owner { get; set; } public YPager Pager { get; set; } public decimal PersonalColor { get; set; } public YPlaylistPlayCounter PlayCounter { get; set; } public string PlaylistUuid { get; set; } public List Prerolls { get; set; } public int Revision { get; set; } public List SimilarPlaylists { get; set; } public int Snapshot { get; set; } public List Tags { get; set; } public string TextColor { get; set; } public string Title { get; set; } public int TrackCount { get; set; } public List TrackIds { get; set; } public List Tracks { get; set; } public YTrailer Trailer { get; set; } public string Uid { get; set; } public string UrlPart { get; set; } public string Visibility { get; set; } }