import '../entities/album.dart'; import '../entities/artist.dart'; import '../entities/song.dart'; abstract class MusicDataInfoRepository { Stream> get songUpdateStream; Future getSongByPath(String path); Stream> get songStream; Stream> getAlbumSongStream(Album album); Stream> getArtistSongStream(Artist artist); Stream> get albumStream; Stream> getArtistAlbumStream(Artist artist); Stream> get artistStream; } abstract class MusicDataRepository extends MusicDataInfoRepository { Future updateDatabase(); Future setSongBlocked(Song song, bool blocked); Future incrementSkipCount(Song song); Future resetSkipCount(Song song); Future incrementLikeCount(Song song); Future decrementLikeCount(Song song); Future resetLikeCount(Song song); Future incrementPlayCount(Song song); Future resetPlayCount(Song song); }