using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text.Json.Serialization; namespace Jellyfin.Plugin.SRFPlay.Api.Models; /// /// Represents a chapter (video/episode) in the SRF API response. /// public class Chapter { /// /// Gets or sets the unique identifier. /// [JsonPropertyName("id")] public string Id { get; set; } = string.Empty; /// /// Gets or sets the URN (Uniform Resource Name). /// [JsonPropertyName("urn")] public string Urn { get; set; } = string.Empty; /// /// Gets or sets the title. /// [JsonPropertyName("title")] public string Title { get; set; } = string.Empty; /// /// Gets or sets the lead/description. /// [JsonPropertyName("lead")] public string? Lead { get; set; } /// /// Gets or sets the description. /// [JsonPropertyName("description")] public string? Description { get; set; } /// /// Gets or sets the image URL. /// [JsonPropertyName("imageUrl")] public string? ImageUrl { get; set; } /// /// Gets or sets the duration in milliseconds. /// [JsonPropertyName("duration")] public long Duration { get; set; } /// /// Gets or sets the publication date. /// [JsonPropertyName("date")] public DateTime? Date { get; set; } /// /// Gets or sets the valid from date. /// [JsonPropertyName("validFrom")] public DateTime? ValidFrom { get; set; } /// /// Gets or sets the valid to date (expiration). /// [JsonPropertyName("validTo")] public DateTime? ValidTo { get; set; } /// /// Gets or sets the list of available resources (streams). /// [JsonPropertyName("resourceList")] public IReadOnlyList ResourceList { get; set; } = new List(); /// /// Gets or sets the episode number. /// [JsonPropertyName("episodeNumber")] public int? EpisodeNumber { get; set; } /// /// Gets or sets the season number. /// [JsonPropertyName("seasonNumber")] public int? SeasonNumber { get; set; } /// /// Gets or sets the media type. /// [JsonPropertyName("mediaType")] public string? MediaType { get; set; } }