diff --git a/api/sqlc.json b/api/sqlc.json index a428de3..b7ff52e 100644 --- a/api/sqlc.json +++ b/api/sqlc.json @@ -4,7 +4,7 @@ { "engine": "postgresql", "schema": "../db/db.sql", - "queries": "./queries/", + "queries": "../db/queries/", "gen": { "go": { "package": "sqlc", diff --git a/db/db.sql b/db/db.sql index ee5110f..a1795a8 100644 --- a/db/db.sql +++ b/db/db.sql @@ -8,29 +8,43 @@ CREATE TABLE IF NOT EXISTS users ( CREATE TABLE IF NOT EXISTS albums ( id UUID PRIMARY KEY, + musicbrainz_id UUID UNIQUE, name VARCHAR(255) NOT NULL, - artist VARCHAR(255) NOT NULL, + extra_info VARCHAR(255), + artist_id VARCHAR(255) NOT NULL, release_date DATE, album_art_url VARCHAR(255) + FOREIGN KEY (artist_id) REFERENCES artists(id) ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS artists ( id UUID PRIMARY KEY, + musicbrainz_id UUID UNIQUE, name VARCHAR(255) NOT NULL, - genre VARCHAR(255), - bio TEXT, - artist_image_url VARCHAR(255) + ); CREATE TABLE IF NOT EXISTS user_albums ( - user_id UUID, + user_id UUID PRIMARY KEY, album_id UUID, date_added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, album_owned BOOLEAN NOT NULL DEFAULT FALSE, album_want BOOLEAN NOT NULL DEFAULT FALSE, + album_condition VARCHAR(50) CHECK (album_condition IN ('Mint', 'Near Mint', 'Very Good Plus', 'Very Good', 'Good Plus', 'Good', 'Fair', 'Poor')), is_vinyl BOOLEAN NOT NULL DEFAULT FALSE, is_cd BOOLEAN NOT NULL DEFAULT FALSE, - PRIMARY KEY (user_id, album_id), FOREIGN KEY (user_id) REFERENCES Users(id) ON DELETE CASCADE, FOREIGN KEY (album_id) REFERENCES Albums(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS tags ( + id UUID PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE +); + +CREATE TABLE IF NOT EXISTS artist_tags ( + artist_id UUID PRIMARY KEY, + tag_id UUID, + FOREIGN KEY (artist_id) REFERENCES Artists(id) ON DELETE CASCADE, + FOREIGN KEY (tag_id) REFERENCES Tags(id) ON DELETE CASCADE ); \ No newline at end of file diff --git a/api/queries/albums.sql b/db/queries/albums.sql similarity index 100% rename from api/queries/albums.sql rename to db/queries/albums.sql diff --git a/api/queries/artists.sql b/db/queries/artists.sql similarity index 100% rename from api/queries/artists.sql rename to db/queries/artists.sql diff --git a/api/queries/user_albums.sql b/db/queries/user_albums.sql similarity index 100% rename from api/queries/user_albums.sql rename to db/queries/user_albums.sql diff --git a/api/queries/users.sql b/db/queries/users.sql similarity index 100% rename from api/queries/users.sql rename to db/queries/users.sql