using System; using System.Collections.Generic; using System.Threading.Tasks; using Jellyfin.Plugin.Jellypod.Models; namespace Jellyfin.Plugin.Jellypod.Services; /// /// Service for storing and retrieving podcast data. /// public interface IPodcastStorageService { /// /// Gets all subscribed podcasts. /// /// List of all podcasts. Task> GetAllPodcastsAsync(); /// /// Gets a podcast by its ID. /// /// The podcast ID. /// The podcast, or null if not found. Task GetPodcastAsync(Guid id); /// /// Adds a new podcast subscription. /// /// The podcast to add. /// Task representing the operation. Task AddPodcastAsync(Podcast podcast); /// /// Updates an existing podcast. /// /// The podcast to update. /// Task representing the operation. Task UpdatePodcastAsync(Podcast podcast); /// /// Deletes a podcast subscription. /// /// The podcast ID to delete. /// Task representing the operation. Task DeletePodcastAsync(Guid id); /// /// Gets the local file path for an episode. /// /// The parent podcast. /// The episode. /// The file path where the episode should be stored. string GetEpisodeFilePath(Podcast podcast, Episode episode); /// /// Gets the storage path for podcasts. /// /// The base path for podcast storage. string GetStoragePath(); }