using System.Text.Json.Serialization; namespace Tesses.YouTubeDownloader2025Companion; public class AlbumSongQuery { [JsonPropertyName("artist-credit")] public List Artists {get;set;}=new List(); [JsonPropertyName("title")] public string Title {get;set;}=""; [JsonPropertyName("date")] public string Date {get;set;}=""; [JsonPropertyName("media")] public List Media {get;set;}=new List(); public class AlbumSongQueryMedia { [JsonPropertyName("tracks")] public List Tracks {get;set;}=new List(); public class AlbumSongQueryMediaTrack { [JsonPropertyName("position")] public int Track {get;set;} = 1; [JsonPropertyName("recording")] public AlbumSongQueryMediaTrackRecording Recording {get;set;}=new AlbumSongQueryMediaTrackRecording(); [JsonPropertyName("length")] public long Length {get;set;} = 0; public class AlbumSongQueryMediaTrackRecording { [JsonPropertyName("title")] public string Name {get;set;}=""; [JsonPropertyName("id")] public Guid Id {get;set;} [JsonPropertyName("artist-credit")] public List ContributingArtists {get;set;}=new List(); public class AlbumSongQueryMediaTrackRecordingArtists { [JsonPropertyName("joinphrase")] public string JoinPhrase {get;set;}=""; [JsonPropertyName("artist")] public AlbumSongQueryMediaTrackRecordingArtistsArtist Artist {get;set;}=new AlbumSongQueryMediaTrackRecordingArtistsArtist(); public class AlbumSongQueryMediaTrackRecordingArtistsArtist { [JsonPropertyName("name")] public string Name {get;set;}=""; [JsonPropertyName("id")] public Guid Id {get;set;} [JsonPropertyName("disambiguation")] public string Disambiguation {get;set;}=""; } } } } } }