using octo_fiesta.Models; namespace octo_fiesta.Services; /// /// Interface pour le service de téléchargement de musique (Deezspot ou autre) /// public interface IDownloadService { /// /// Télécharge une chanson depuis un provider externe /// /// Le provider (deezer, spotify) /// L'ID sur le provider externe /// Token d'annulation /// Le chemin du fichier téléchargé Task DownloadSongAsync(string externalProvider, string externalId, CancellationToken cancellationToken = default); /// /// Télécharge une chanson et stream le résultat au fur et à mesure /// /// Le provider (deezer, spotify) /// L'ID sur le provider externe /// Token d'annulation /// Un stream du fichier audio Task DownloadAndStreamAsync(string externalProvider, string externalId, CancellationToken cancellationToken = default); /// /// Vérifie si une chanson est en cours de téléchargement /// DownloadInfo? GetDownloadStatus(string songId); /// /// Vérifie si le service est correctement configuré et fonctionnel /// Task IsAvailableAsync(); }