using System; namespace Jellyfin.Plugin.Jellypod.Models; /// /// Represents a podcast episode. /// public class Episode { /// /// Gets or sets the unique identifier for this episode. /// public Guid Id { get; set; } = Guid.NewGuid(); /// /// Gets or sets the ID of the parent podcast. /// public Guid PodcastId { get; set; } /// /// Gets or sets the episode title. /// public string Title { get; set; } = string.Empty; /// /// Gets or sets the episode description. /// public string? Description { get; set; } /// /// Gets or sets the URL to the audio file. /// public string AudioUrl { get; set; } = string.Empty; /// /// Gets or sets the local file path where the episode is stored. /// public string? LocalFilePath { get; set; } /// /// Gets or sets the file size in bytes. /// public long? FileSizeBytes { get; set; } /// /// Gets or sets the episode duration. /// public TimeSpan? Duration { get; set; } /// /// Gets or sets the publish date. /// public DateTime PublishedDate { get; set; } /// /// Gets or sets the date the episode was downloaded. /// public DateTime? DownloadedDate { get; set; } /// /// Gets or sets the download status. /// public EpisodeStatus Status { get; set; } = EpisodeStatus.Available; /// /// Gets or sets the RSS GUID for deduplication. /// public string? EpisodeGuid { get; set; } /// /// Gets or sets the season number if applicable. /// public int? SeasonNumber { get; set; } /// /// Gets or sets the episode number if applicable. /// public int? EpisodeNumber { get; set; } /// /// Gets or sets the episode-specific image URL. /// public string? ImageUrl { get; set; } }