package musicbrainz import "time" // ReleaseGroup represents a MusicBrainz Release Group entity. // This is the primary data model for the provider - we work with // Release Groups to minimize duplicates from different releases. type ReleaseGroup struct { ID string Title string Type string Status string ArtistID string ArtistName string ReleaseDate string } // Artist represents a MusicBrainz artist entity. type Artist struct { ID string Name string } // ExternalRelease is the normalized form stored in the database, // matching the external_releases table schema. type ExternalRelease struct { RGID string ArtistID string Title string Type string ReleaseDate string CachedAt time.Time } // ParsedReleaseGroups holds the result of parsing a MusicBrainz // release-group list XML response. type ParsedReleaseGroups struct { ReleaseGroups []ReleaseGroup Count int } // ParsedArtist holds the result of parsing a MusicBrainz artist lookup. type ParsedArtist struct { ID string Name string }