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();
}