Lisoveliy aebe654c38
Some checks are pending
Deploy / update (push) Waiting to run
Build Project .NET / build (push) Waiting to run
chore: init commit from GitHub
2025-05-12 19:44:33 +03:00

269 lines
6.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Text.Json.Serialization;
namespace SWAD.API.Models.JsonStructures.MusicAPI.Yandex;
/*
* ВНИМАНИЕ
* Yandex API писали шизы поэтому когда будешь добавлять поля в YandexSearchResponse
* ПОМНИ: ID у артистов и альбомов в разных местах JSON в одних и тех же объектах то string то number
* ЭТО ВЫЗОВЕТ ИСКЛЮЧЕНИЕ
* Думой
*/
public class YandexSearchResponse
{
[JsonPropertyName("status")]
public string Status { get; set; }
[JsonPropertyName("entities")]
public List<Entity> Entities { get; set; }
}
public class Album
{
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("year")]
public int? Year { get; set; }
[JsonPropertyName("trackCount")]
public int? TrackCount { get; set; }
}
public class Album2
{
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("year")]
public int? Year { get; set; }
[JsonPropertyName("trackCount")]
public int? TrackCount { get; set; }
}
public class Artist
{
[JsonPropertyName("name")]
public string Name { get; set; }
}
public class Artist2
{
[JsonPropertyName("name")]
public string Name { get; set; }
}
public class Counts
{
[JsonPropertyName("tracks")]
public int? Tracks { get; set; }
[JsonPropertyName("directAlbums")]
public int? DirectAlbums { get; set; }
[JsonPropertyName("alsoAlbums")]
public int? AlsoAlbums { get; set; }
[JsonPropertyName("alsoTracks")]
public int? AlsoTracks { get; set; }
}
public class Cover
{
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("prefix")]
public string Prefix { get; set; }
[JsonPropertyName("uri")]
public string Uri { get; set; }
}
public class DerivedColors
{
[JsonPropertyName("average")]
public string Average { get; set; }
[JsonPropertyName("waveText")]
public string WaveText { get; set; }
[JsonPropertyName("miniPlayer")]
public string MiniPlayer { get; set; }
[JsonPropertyName("accent")]
public string Accent { get; set; }
}
public class Entity
{
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("results")]
public List<Result> Results { get; set; }
}
public class Fade
{
[JsonPropertyName("inStart")]
public double? InStart { get; set; }
[JsonPropertyName("inStop")]
public double? InStop { get; set; }
[JsonPropertyName("outStart")]
public double? OutStart { get; set; }
[JsonPropertyName("outStop")]
public double? OutStop { get; set; }
}
public class Label
{
[JsonPropertyName("id")]
public int? Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
}
public class LyricsInfo
{
[JsonPropertyName("hasAvailableSyncLyrics")]
public bool? HasAvailableSyncLyrics { get; set; }
[JsonPropertyName("hasAvailableTextLyrics")]
public bool? HasAvailableTextLyrics { get; set; }
}
public class Major
{
[JsonPropertyName("id")]
public int? Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
}
public class R128
{
[JsonPropertyName("i")]
public double? I { get; set; }
[JsonPropertyName("tp")]
public double? Tp { get; set; }
}
public class Ratings
{
[JsonPropertyName("month")]
public int? Month { get; set; }
}
public class Result
{
[JsonPropertyName("text")]
public string Text { get; set; }
[JsonPropertyName("track")]
public Track Track { get; set; }
}
public class Track
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("realId")]
public string RealId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("version")]
public string Version { get; set; }
[JsonPropertyName("trackSource")]
public string TrackSource { get; set; }
[JsonPropertyName("major")]
public Major Major { get; set; }
[JsonPropertyName("available")]
public bool? Available { get; set; }
[JsonPropertyName("availableForPremiumUsers")]
public bool? AvailableForPremiumUsers { get; set; }
[JsonPropertyName("availableFullWithoutPermission")]
public bool? AvailableFullWithoutPermission { get; set; }
[JsonPropertyName("disclaimers")]
public List<object> Disclaimers { get; set; }
[JsonPropertyName("availableForOptions")]
public List<string> AvailableForOptions { get; set; }
[JsonPropertyName("albums")]
public List<Album> Albums { get; set; }
[JsonPropertyName("durationMs")]
public int? DurationMs { get; set; }
[JsonPropertyName("storageDir")]
public string StorageDir { get; set; }
[JsonPropertyName("fileSize")]
public int? FileSize { get; set; }
[JsonPropertyName("r128")]
public R128 R128 { get; set; }
[JsonPropertyName("fade")]
public Fade Fade { get; set; }
[JsonPropertyName("previewDurationMs")]
public int? PreviewDurationMs { get; set; }
[JsonPropertyName("coverUri")]
public string CoverUri { get; set; }
[JsonPropertyName("ogImage")]
public string OgImage { get; set; }
[JsonPropertyName("lyricsAvailable")]
public bool? LyricsAvailable { get; set; }
[JsonPropertyName("lyricsInfo")]
public LyricsInfo LyricsInfo { get; set; }
[JsonPropertyName("derivedColors")]
public DerivedColors DerivedColors { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("rememberPosition")]
public bool? RememberPosition { get; set; }
[JsonPropertyName("trackSharingFlag")]
public string TrackSharingFlag { get; set; }
[JsonPropertyName("contentWarning")]
public string ContentWarning { get; set; }
}
public class TrackPosition
{
[JsonPropertyName("volume")]
public int? Volume { get; set; }
[JsonPropertyName("index")]
public int? Index { get; set; }
}