From 80782e4f67980fb07808bb6baebd9e5c00719330 Mon Sep 17 00:00:00 2001 From: Masahiko AMANO Date: Tue, 14 Jan 2025 00:32:57 +0300 Subject: [PATCH] init(models): initialize models also add .gitignore --- .gitignore | 3 +++ internal/models/models.go | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 .gitignore create mode 100644 internal/models/models.go 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"` +}