mirror of
https://github.com/austinried/subtracks.git
synced 2026-02-10 15:02:42 +01:00
playlists list
This commit is contained in:
@@ -32,6 +32,11 @@ enum SongsColumn {
|
||||
albumArtist,
|
||||
}
|
||||
|
||||
enum PlaylistsColumn {
|
||||
name,
|
||||
created,
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class SortingTerm with _$SortingTerm {
|
||||
const factory SortingTerm.albums({
|
||||
@@ -39,16 +44,53 @@ abstract class SortingTerm with _$SortingTerm {
|
||||
required AlbumsColumn by,
|
||||
}) = AlbumsSortingTerm;
|
||||
|
||||
static AlbumsSortingTerm albumsAsc(AlbumsColumn by) {
|
||||
return AlbumsSortingTerm(dir: SortDirection.asc, by: by);
|
||||
}
|
||||
|
||||
static AlbumsSortingTerm albumsDesc(AlbumsColumn by) {
|
||||
return AlbumsSortingTerm(dir: SortDirection.desc, by: by);
|
||||
}
|
||||
|
||||
const factory SortingTerm.artists({
|
||||
required SortDirection dir,
|
||||
required ArtistsColumn by,
|
||||
}) = ArtistsSortingTerm;
|
||||
|
||||
static ArtistsSortingTerm artistsAsc(ArtistsColumn by) {
|
||||
return ArtistsSortingTerm(dir: SortDirection.asc, by: by);
|
||||
}
|
||||
|
||||
static ArtistsSortingTerm artistsDesc(ArtistsColumn by) {
|
||||
return ArtistsSortingTerm(dir: SortDirection.desc, by: by);
|
||||
}
|
||||
|
||||
const factory SortingTerm.songs({
|
||||
required SortDirection dir,
|
||||
required SongsColumn by,
|
||||
}) = SongsSortingTerm;
|
||||
|
||||
static SongsSortingTerm songsAsc(SongsColumn by) {
|
||||
return SongsSortingTerm(dir: SortDirection.asc, by: by);
|
||||
}
|
||||
|
||||
static SongsSortingTerm songsDesc(SongsColumn by) {
|
||||
return SongsSortingTerm(dir: SortDirection.desc, by: by);
|
||||
}
|
||||
|
||||
const factory SortingTerm.playlists({
|
||||
required SortDirection dir,
|
||||
required PlaylistsColumn by,
|
||||
}) = PlaylistsSortingTerm;
|
||||
|
||||
static PlaylistsSortingTerm playlistsAsc(PlaylistsColumn by) {
|
||||
return PlaylistsSortingTerm(dir: SortDirection.asc, by: by);
|
||||
}
|
||||
|
||||
static PlaylistsSortingTerm playlistsDesc(PlaylistsColumn by) {
|
||||
return PlaylistsSortingTerm(dir: SortDirection.desc, by: by);
|
||||
}
|
||||
|
||||
factory SortingTerm.fromJson(Map<String, Object?> json) =>
|
||||
_$SortingTermFromJson(json);
|
||||
}
|
||||
@@ -122,3 +164,27 @@ abstract class SongsFilter with _$SongsFilter {
|
||||
factory SongsFilter.fromJson(Map<String, Object?> json) =>
|
||||
_$SongsFilterFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class PlaylistsQuery with _$PlaylistsQuery {
|
||||
const factory PlaylistsQuery({
|
||||
required int sourceId,
|
||||
@Default(IListConst([])) IList<PlaylistsFilter> filter,
|
||||
required IList<PlaylistsSortingTerm> sort,
|
||||
int? limit,
|
||||
int? offset,
|
||||
}) = _PlaylistsQuery;
|
||||
|
||||
factory PlaylistsQuery.fromJson(Map<String, Object?> json) =>
|
||||
_$PlaylistsQueryFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class PlaylistsFilter with _$PlaylistsFilter {
|
||||
const factory PlaylistsFilter.nameSearch(String name) =
|
||||
PlaylistsFilterNameSearch;
|
||||
const factory PlaylistsFilter.public(bool public) = PlaylistsFilterPublic;
|
||||
|
||||
factory PlaylistsFilter.fromJson(Map<String, Object?> json) =>
|
||||
_$PlaylistsFilterFromJson(json);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user