2020-03-24 22:17:03 +01:00
|
|
|
import 'package:dartz/dartz.dart';
|
|
|
|
|
2020-03-28 14:35:41 +01:00
|
|
|
import '../../core/error/failures.dart';
|
2020-03-24 22:17:03 +01:00
|
|
|
import '../entities/album.dart';
|
2020-08-08 19:02:03 +02:00
|
|
|
import '../entities/artist.dart';
|
2020-03-28 14:35:41 +01:00
|
|
|
import '../entities/song.dart';
|
2020-03-24 22:17:03 +01:00
|
|
|
|
|
|
|
abstract class MusicDataRepository {
|
2020-11-15 16:36:50 +01:00
|
|
|
Stream<List<Song>> get songStream;
|
|
|
|
Stream<List<Song>> getAlbumSongStream(Album album);
|
2020-12-29 21:01:31 +01:00
|
|
|
Stream<List<Album>> getArtistAlbumStream(Artist artist);
|
2020-12-19 12:22:57 +01:00
|
|
|
|
2020-03-28 14:35:41 +01:00
|
|
|
Future<Either<Failure, List<Song>>> getSongs();
|
2020-04-16 08:04:34 +02:00
|
|
|
Future<Either<Failure, List<Song>>> getSongsFromAlbum(Album album);
|
2020-03-24 22:17:03 +01:00
|
|
|
Future<Either<Failure, List<Album>>> getAlbums();
|
2020-08-08 19:02:03 +02:00
|
|
|
Future<Either<Failure, List<Artist>>> getArtists();
|
2020-03-24 22:17:03 +01:00
|
|
|
Future<void> updateDatabase();
|
2020-09-19 17:08:48 +02:00
|
|
|
|
|
|
|
Future<void> setSongBlocked(Song song, bool blocked);
|
2020-10-18 12:18:37 +02:00
|
|
|
Future<void> toggleNextSongLink(Song song);
|
2020-12-21 11:50:46 +01:00
|
|
|
}
|