commit 80782e4f67980fb07808bb6baebd9e5c00719330 Author: Masahiko AMANO Date: Tue Jan 14 00:32:57 2025 +0300 init(models): initialize models also add .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ccdf59 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +bin/ +.vscode/ +.stfolder/ diff --git a/internal/models/models.go b/internal/models/models.go new file mode 100644 index 0000000..e28c166 --- /dev/null +++ b/internal/models/models.go @@ -0,0 +1,41 @@ +package models + +import ( + "database/sql" + "time" +) + +type Person struct { + ID string `json:"id"` + Name string `json:"name"` + Birthdate time.Time `json:"birthdate"` + Deathdate sql.NullTime `json:"deathdate"` + Info sql.NullString `json:"info"` +} + +type Role struct { + ID string `json:"id"` + Name string `json:"name"` +} + +type Credit struct { + Person Person `json:"person"` + Role Role `json:"role"` +} + +type Artist struct { + ID string `json:"id"` + Name string `json:"name"` + Notes sql.NullString `json:"notes"` +} + +type Track struct { + ID string `json:"id"` + Name string `json:"name"` + Artists []Artist `json:"artists"` + ReleaseDate sql.NullTime `json:"release_date"` + AcquireDate time.Time `json:"acquire_date"` + ISRC sql.NullString `json:"isrc"` + Credits []Credit `json:"credits"` + Notes sql.NullString `json:"notes"` +}