song.go (1027B)
1 package domain 2 3 import ( 4 "time" 5 ) 6 7 type SongID int64 8 9 type NewSong struct { 10 ID SongID 11 MusicBrainzRecordingID *MusicBrainzID 12 Title string 13 LatinTitle *string 14 Lyrics string 15 ReleaseDate time.Time 16 Artists []NewSongArtist 17 Releases []NewSongRelease 18 Genres []Genre 19 } 20 21 type NewSongArtist struct { 22 ArtistID ArtistID 23 Role ArtistRole 24 SortOrder int 25 } 26 27 type NewSongRelease struct { 28 ReleaseID ReleaseID 29 TrackNumber int 30 } 31 32 type Song struct { 33 ID SongID 34 MusicBrainzRecordingID *MusicBrainzID 35 Title string 36 LatinTitle *string 37 Lyrics string 38 ReleaseDate time.Time 39 Artists []SongArtist 40 Releases []SongRelease 41 Genres []Genre 42 } 43 44 type SongArtist struct { 45 Artist Artist 46 Role ArtistRole 47 SortOrder int 48 } 49 50 type SongRelease struct { 51 Release Release 52 TrackNumber int 53 }