using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace Jellyfin.Plugin.Chaosflix.Api.Models; /// /// CCC API event (a single talk/recording). /// public class CccEvent { /// Gets or sets the GUID. [JsonPropertyName("guid")] public string Guid { get; set; } = string.Empty; /// Gets or sets the title. [JsonPropertyName("title")] public string Title { get; set; } = string.Empty; /// Gets or sets the subtitle. [JsonPropertyName("subtitle")] public string? Subtitle { get; set; } /// Gets or sets the slug. [JsonPropertyName("slug")] public string Slug { get; set; } = string.Empty; /// Gets or sets the description. [JsonPropertyName("description")] public string? Description { get; set; } /// Gets or sets the original language. [JsonPropertyName("original_language")] public string? OriginalLanguage { get; set; } /// Gets or sets the speakers. [JsonPropertyName("persons")] public List Persons { get; set; } = new(); /// Gets or sets the tags. [JsonPropertyName("tags")] public List Tags { get; set; } = new(); /// Gets or sets the view count. [JsonPropertyName("view_count")] public int ViewCount { get; set; } /// Gets or sets the event date. [JsonPropertyName("date")] public DateTimeOffset? Date { get; set; } /// Gets or sets the release date. [JsonPropertyName("release_date")] public DateTimeOffset? ReleaseDate { get; set; } /// Gets or sets the duration in seconds. [JsonPropertyName("duration")] public int Duration { get; set; } /// Gets or sets the thumbnail URL. [JsonPropertyName("thumb_url")] public string? ThumbUrl { get; set; } /// Gets or sets the poster URL. [JsonPropertyName("poster_url")] public string? PosterUrl { get; set; } /// Gets or sets the frontend link. [JsonPropertyName("frontend_link")] public string? FrontendLink { get; set; } /// Gets or sets the API URL. [JsonPropertyName("url")] public string Url { get; set; } = string.Empty; /// Gets or sets the conference title. [JsonPropertyName("conference_title")] public string? ConferenceTitle { get; set; } /// Gets or sets the conference API URL. [JsonPropertyName("conference_url")] public string? ConferenceUrl { get; set; } /// Gets or sets the recordings (only in detail response). [JsonPropertyName("recordings")] public List? Recordings { get; set; } /// Gets or sets the related events. [JsonPropertyName("related")] public List? Related { get; set; } } /// /// Wrapper for event search response. /// public class CccEventsResponse { /// Gets or sets the events. [JsonPropertyName("events")] public List Events { get; set; } = new(); }