From 3aef338b1bf2e85bfa1c7629cf1f2b63cc5fd606 Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Fri, 17 Jan 2025 18:10:49 +0300 Subject: [PATCH] feat(models): add credits to person and artist model --- internal/models/models.go | 41 +++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/internal/models/models.go b/internal/models/models.go index 5142103..3659194 100644 --- a/internal/models/models.go +++ b/internal/models/models.go @@ -6,6 +6,21 @@ import ( //#region Objects +type Role struct { + ID string `json:"id"` + Name string `json:"name"` +} + +type PersonCredit struct { + Track TrackBrief `json:"track"` + Role Role `json:"role"` +} + +type TrackCredit struct { + Person PersonBrief `json:"person"` + Role Role `json:"role"` +} + type PersonBrief struct { ID string `json:"id"` Name string `json:"name"` @@ -14,19 +29,10 @@ type PersonBrief struct { type Person struct { PersonBrief - Birthdate string `json:"birthdate"` - Deathdate string `json:"deathdate"` - Info string `json:"info"` -} - -type Role struct { - ID string `json:"id"` - Name string `json:"name"` -} - -type Credit struct { - Person PersonBrief `json:"person"` - Role Role `json:"role"` + Birthdate string `json:"birthdate"` + Deathdate string `json:"deathdate"` + Credits []PersonCredit `json:"credits"` + Info string `json:"info"` } type ArtistBrief struct { @@ -36,7 +42,8 @@ type ArtistBrief struct { type Artist struct { ArtistBrief - Info string `json:"info"` + Tracks []TrackBrief `json:"tracks"` + Info string `json:"info"` } type TrackBrief struct { @@ -51,9 +58,9 @@ type TrackBrief struct { type Track struct { TrackBrief - Credits []Credit `json:"credits"` - Lyrics string `json:"lyrics"` - Info string `json:"info"` + Credits []TrackCredit `json:"credits"` + Lyrics string `json:"lyrics"` + Info string `json:"info"` } type Alias struct {