commit e256d2068805006889821ef19edfd226a80d6091 parent a5c5af3c985e9adc47764b207cc8e9bbf61ef30b Author: brookjeynes <me@brookjeynes.dev> Date: Tue, 28 Apr 2026 21:13:40 +1000 feat(domain): setup song / artist models Signed-off-by: brookjeynes <me@brookjeynes.dev> Diffstat:
| A | internal/domain/artist.go | | | 6 | ++++++ |
| A | internal/domain/song-artist.go | | | 15 | +++++++++++++++ |
| A | internal/domain/song.go | | | 11 | +++++++++++ |
3 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/internal/domain/artist.go b/internal/domain/artist.go @@ -0,0 +1,6 @@ +package domain + +type Artist struct { + ID int64 + Name string +} diff --git a/internal/domain/song-artist.go b/internal/domain/song-artist.go @@ -0,0 +1,15 @@ +package domain + +type SongArtistRole string + +const ( + RolePrimary SongArtistRole = "primary" + RoleFeatured SongArtistRole = "featured" +) + +type SongArtist struct { + SongID int64 + ArtistID int64 + Role SongArtistRole + Order int +} diff --git a/internal/domain/song.go b/internal/domain/song.go @@ -0,0 +1,11 @@ +package domain + +import "time" + +type Song struct { + ID int64 + Title string + Lyrics string + Date time.Time + Artists []SongArtist +}