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