using System; using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysis; namespace Jellyfin.Plugin.Jellypod.Models; /// /// Represents a podcast subscription. /// public class Podcast { /// /// Gets or sets the unique identifier for this podcast. /// public Guid Id { get; set; } = Guid.NewGuid(); /// /// Gets or sets the podcast title. /// public string Title { get; set; } = string.Empty; /// /// Gets or sets the podcast description. /// public string Description { get; set; } = string.Empty; /// /// Gets or sets the RSS feed URL. /// public string FeedUrl { get; set; } = string.Empty; /// /// Gets or sets the podcast artwork URL. /// public string? ImageUrl { get; set; } /// /// Gets or sets the podcast author/publisher. /// public string? Author { get; set; } /// /// Gets or sets the podcast language. /// public string? Language { get; set; } /// /// Gets or sets the podcast category. /// public string? Category { get; set; } /// /// Gets or sets the last time the feed was updated. /// public DateTime LastUpdated { get; set; } /// /// Gets or sets the date this podcast was added. /// public DateTime DateAdded { get; set; } = DateTime.UtcNow; /// /// Gets or sets a value indicating whether auto-download is enabled for this podcast. /// public bool AutoDownloadEnabled { get; set; } = true; /// /// Gets or sets the maximum episodes to keep (0 = unlimited). /// public int MaxEpisodesToKeep { get; set; } /// /// Gets or sets the list of episodes. /// [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "Required for JSON deserialization")] public Collection Episodes { get; set; } = new(); }