lyrics

lyrics
git clone git://brookjeynes.dev/bjeynes/lyrics.git
Log | Files | Refs

release.go (1590B)


      1 package domain
      2 
      3 import "time"
      4 
      5 type ReleaseType string
      6 
      7 const (
      8 	ReleaseTypeAlbum  ReleaseType = "album"
      9 	ReleaseTypeSingle ReleaseType = "single"
     10 	ReleaseTypeEP     ReleaseType = "ep"
     11 	ReleaseTypeOther  ReleaseType = "other"
     12 )
     13 
     14 var ReleaseTypes map[ReleaseType]struct{} = map[ReleaseType]struct{}{
     15 	ReleaseTypeAlbum:  {},
     16 	ReleaseTypeSingle: {},
     17 	ReleaseTypeEP:     {},
     18 	ReleaseTypeOther:  {},
     19 }
     20 
     21 type ReleaseID int64
     22 
     23 type NewRelease struct {
     24 	ID                   ReleaseID
     25 	MusicBrainzReleaseID *MusicBrainzID
     26 	Title                string
     27 	LatinTitle           *string
     28 	ReleaseDate          time.Time
     29 	Artists              []NewReleaseArtist
     30 	Type                 ReleaseType
     31 }
     32 
     33 type NewReleaseArtist struct {
     34 	ArtistID  ArtistID
     35 	Role      ArtistRole
     36 	SortOrder int
     37 }
     38 
     39 type EditRelease struct {
     40 	ID                   ReleaseID
     41 	MusicBrainzReleaseID *MusicBrainzID
     42 	Title                string
     43 	LatinTitle           *string
     44 	ReleaseDate          time.Time
     45 	Artists              []NewReleaseArtist
     46 	Songs                []EditReleaseSong
     47 	Type                 ReleaseType
     48 }
     49 
     50 type EditReleaseSong struct {
     51 	SongID      SongID
     52 	TrackNumber int
     53 }
     54 
     55 type Release struct {
     56 	ID                   ReleaseID
     57 	MusicBrainzReleaseID *MusicBrainzID
     58 	Title                string
     59 	LatinTitle           *string
     60 	ReleaseDate          time.Time
     61 	Artists              []ReleaseArtist
     62 	Songs                []ReleaseSong
     63 	Type                 ReleaseType
     64 }
     65 
     66 type ReleaseArtist struct {
     67 	Artist    Artist
     68 	Role      ArtistRole
     69 	SortOrder int
     70 }
     71 
     72 type ReleaseSong struct {
     73 	Song        Song
     74 	TrackNumber int
     75 }