using System.Text.Json.Serialization; using Manager.YouTube.Models.Innertube; namespace Manager.YouTube.Models; public class YouTubeVideo { [JsonPropertyName("videoId")] public required string VideoId { get; set; } [JsonPropertyName("title")] public string Title { get; set; } = ""; [JsonPropertyName("description")] public string Description { get; set; } = ""; [JsonPropertyName("hashTags")] public string[] HashTags { get; set; } = []; [JsonPropertyName("viewCount")] public long ViewCount { get; set; } [JsonPropertyName("likeCount")] public long LikeCount { get; set; } [JsonPropertyName("channelId")] public string ChannelId { get; set; } = ""; [JsonPropertyName("author")] public string Author { get; set; } = ""; [JsonPropertyName("playabilityStatus")] public string PlayabilityStatus { get; set; } = ""; [JsonPropertyName("lengthSeconds")] public long LengthSeconds { get; set; } [JsonPropertyName("isOwnerViewing")] public bool IsOwnerViewing { get; set; } [JsonPropertyName("allowRating")] public bool AllowRating { get; set; } [JsonPropertyName("isCrawlable")] public bool IsCrawlable { get; set; } [JsonPropertyName("isPrivate")] public bool IsPrivate { get; set; } [JsonPropertyName("isUnpluggedCorpus")] public bool IsUnpluggedCorpus { get; set; } [JsonPropertyName("isLive")] public bool IsLive { get; set; } [JsonPropertyName("isFamilySafe")] public bool IsFamilySave { get; set; } [JsonPropertyName("availableCountries")] public string[] AvailableCountries { get; set; } = []; [JsonPropertyName("isUnlisted")] public bool IsUnlisted { get; set; } [JsonPropertyName("hasYpcMetadata")] public bool HasYpcMetadata { get; set; } [JsonPropertyName("publishDate")] public DateTime PublishDate { get; set; } [JsonPropertyName("uploadDate")] public DateTime UploadDate { get; set; } [JsonPropertyName("isShortsEligible")] public bool IsShortsEligible { get; set; } [JsonPropertyName("category")] public string Category { get; set; } = ""; public StreamingData StreamingData { get; set; } = new(); [JsonPropertyName("thumbnail")] public List Thumbnails { get; set; } = []; public PlayerConfig? PlayerConfig { get; set; } public StoryBoard? StoryBoard { get; set; } }