using octo_fiesta.Models;
namespace octo_fiesta.Services;
///
/// Interface pour le service de recherche de métadonnées musicales externes
/// (Deezer API, Spotify API, MusicBrainz, etc.)
///
public interface IMusicMetadataService
{
///
/// Recherche des chansons sur les providers externes
///
/// Terme de recherche
/// Nombre maximum de résultats
/// Liste des chansons trouvées
Task> SearchSongsAsync(string query, int limit = 20);
///
/// Recherche des albums sur les providers externes
///
Task> SearchAlbumsAsync(string query, int limit = 20);
///
/// Recherche des artistes sur les providers externes
///
Task> SearchArtistsAsync(string query, int limit = 20);
///
/// Recherche combinée (chansons, albums, artistes)
///
Task SearchAllAsync(string query, int songLimit = 20, int albumLimit = 20, int artistLimit = 20);
///
/// Récupère les détails d'une chanson externe
///
Task GetSongAsync(string externalProvider, string externalId);
///
/// Récupère les détails d'un album externe avec ses chansons
///
Task GetAlbumAsync(string externalProvider, string externalId);
///
/// Récupère les détails d'un artiste externe
///
Task GetArtistAsync(string externalProvider, string externalId);
///
/// Récupère les albums d'un artiste
///
Task> GetArtistAlbumsAsync(string externalProvider, string externalId);
}