package provider import ( "context" "github.com/metadata-agregator/internal/domain" ) type Provider interface { Name() string GetArtist(ctx context.Context, id string) (*domain.Artist, error) SearchArtists(ctx context.Context, query string, limit, offset int) (*domain.SearchResult[domain.Artist], error) GetAlbum(ctx context.Context, id string) (*domain.Album, error) SearchAlbums(ctx context.Context, query string, artist string, limit, offset int) (*domain.SearchResult[domain.Album], error) GetArtistAlbums(ctx context.Context, artistID string, limit, offset int) (*domain.SearchResult[domain.Album], error) GetTrack(ctx context.Context, id string) (*domain.Track, error) GetAlbumTracks(ctx context.Context, albumID string) ([]domain.Track, error) GetTrackByISRC(ctx context.Context, isrc string) (*domain.Track, error) GetLabel(ctx context.Context, id string) (*domain.Label, error) GetWork(ctx context.Context, id string) (*domain.Work, error) }