feat: fetch all artist albums with caching, filter by type in handler

- Provider fetches all release groups via paginated browse, no type filter
- Service caches all albums in DB, ensures referenced artists exist first
- Server handler filters by album_types (default: album|ep|single), excludes secondary types
- Add secondary_types to domain, DB schema, and MB types
- Add ErrBadRequest handling for MusicBrainz 400 errors
- Replace migrations with single schema.sql
- Add GetAllByArtistID and SaveAll to album repository
This commit is contained in:
Alexander
2026-05-07 20:03:04 +02:00
parent 35ac167952
commit 9f1318e79e
17 changed files with 302 additions and 172 deletions
+13 -12
View File
@@ -17,18 +17,19 @@ type Artist struct {
}
type Album struct {
ID string
Title string
Type string
ReleaseDate *time.Time
UPC string
TotalTracks int
TotalDiscs int
CoverURL string
Artists []ArtistCredit
Label *Label
Genres []Genre
ExternalIDs []ExternalID
ID string
Title string
Type string
SecondaryTypes []string
ReleaseDate *time.Time
UPC string
TotalTracks int
TotalDiscs int
CoverURL string
Artists []ArtistCredit
Label *Label
Genres []Genre
ExternalIDs []ExternalID
}
type Track struct {