added IF NOT EXISTS to create and CRUD for each table

This commit is contained in:
2025-04-16 12:12:17 -05:00
parent faa25fe745
commit c20cac4015
18 changed files with 161 additions and 11 deletions
@@ -0,0 +1,17 @@
-- name: CreateArtistCredit :one
INSERT INTO artist_credit (text) VALUES (?)
RETURNING *;
-- name: GetArtistCredit :one
SELECT * FROM artist_credit
WHERE id = ? LIMIT 1;
-- name: UpdateArtistCredit :exec
UPDATE artist_credit
SET text = ?
WHERE id =?;
-- name: DeleteArtistCredit :exec
DELETE FROM artist_credit
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateArtistCreditArtist :one
INSERT INTO artist_credit_artist (artist_id, credit_id) VALUES (?, ?)
RETURNING *;
-- name: GetArtistCreditArtist :one
SELECT * FROM artist_credit_artist
WHERE id = ? LIMIT 1;
-- name: UpdateArtistCreditArtist :exec
UPDATE artist_credit_artist
SET artist_id = ?, credit_id = ?
WHERE id =?;
-- name: DeleteArtistCreditArtist :exec
DELETE FROM artist_credit_artist
WHERE id =?;
+17
View File
@@ -0,0 +1,17 @@
-- name: CreateArtist :one
INSERT INTO artists (name) VALUES (?)
RETURNING *;
-- name: GetArtist :one
SELECT * FROM artists
WHERE id = ? LIMIT 1;
-- name: UpdateArtist :exec
UPDATE artists
SET name = ?
WHERE id =?;
-- name: DeleteArtist :exec
DELETE FROM artists
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateAudioFile :one
INSERT INTO audio_files (file_path, length_milliseconds, file_type_id, recording_id) VALUES (?, ?, ?, ?)
RETURNING *;
-- name: GetAudioFile :one
SELECT * FROM audio_files
WHERE id = ? LIMIT 1;
-- name: UpdateAudioFile :exec
UPDATE audio_files
SET file_path = ?, length_milliseconds = ?, file_type_id = ?, recording_id = ?
WHERE id =?;
-- name: DeleteAudioFile :exec
DELETE FROM audio_files
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateCoverArt :one
INSERT INTO cover_art (is_embedded, file_path, file_type_id) VALUES (?, ?, ?)
RETURNING *;
-- name: GetCoverArt :one
SELECT * FROM cover_art
WHERE id = ? LIMIT 1;
-- name: UpdateCoverArt :exec
UPDATE cover_art
SET is_embedded = ?, file_path = ?, file_type_id = ?
WHERE id =?;
-- name: DeleteCoverArt :exec
DELETE FROM cover_art
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateFileType :one
INSERT INTO file_types (extension) VALUES (?)
RETURNING *;
-- name: GetFileType :one
SELECT * FROM file_types
WHERE id = ? LIMIT 1;
-- name: UpdateFileType :exec
UPDATE file_types
SET extension = ?
WHERE id =?;
-- name: DeleteFileType :exec
DELETE FROM file_types
WHERE id =?;
+16 -2
View File
@@ -1,3 +1,17 @@
-- name: GetAuthor :one
SELECT * FROM recordings
-- name: CreateRecording :one
INSERT INTO recordings (name) VALUES (?)
RETURNING *;
-- name: GetRecording :one
SELECT * FROM recordings
WHERE id = ? LIMIT 1;
-- name: UpdateRecording :exec
UPDATE recordings
SET name = ?
WHERE id =?;
-- name: DeleteRecording :exec
DELETE FROM recordings
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateReleaseGroupRecording :one
INSERT INTO release_group_recordings (release_group_id, recording_id) VALUES (?,?)
RETURNING *;
-- name: GetReleaseGroupRecording :one
SELECT * FROM release_group_recordings
WHERE id = ? LIMIT 1;
-- name: UpdateReleaseGroupRecording :exec
UPDATE release_group_recordings
SET release_group_id = ?
WHERE id =?;
-- name: DeleteReleaseGroupRecording :exec
DELETE FROM release_group_recordings
WHERE id =?;
@@ -0,0 +1,17 @@
-- name: CreateReleaseGroup :one
INSERT INTO release_groups (name) VALUES (?)
RETURNING *;
-- name: GetReleaseGroup :one
SELECT * FROM release_groups
WHERE id = ? LIMIT 1;
-- name: UpdateReleaseGroup :exec
UPDATE release_groups
SET name = ?
WHERE id =?;
-- name: DeleteReleaseGroup :exec
DELETE FROM release_groups
WHERE id =?;
@@ -1,4 +1,4 @@
CREATE TABLE artist_credit (
CREATE TABLE IF NOT EXISTS artist_credit (
id int PRIMARY KEY,
text string NOT NULL
);
@@ -1,4 +1,4 @@
CREATE TABLE artist_credit_artist (
CREATE TABLE IF NOT EXISTS artist_credit_artist (
id int PRIMARY KEY,
FOREIGN KEY(artist_id) REFERENCES artists(id),
FOREIGN KEY(credit_id) REFERENCES artist_credit(id)
+1 -1
View File
@@ -1,4 +1,4 @@
CREATE TABLE artists (
CREATE TABLE IF NOT EXISTS artists (
id int PRIMARY KEY,
name text NOT NULL
);
+1 -1
View File
@@ -1,4 +1,4 @@
CREATE TABLE audio_files (
CREATE TABLE IF NOT EXISTS audio_files (
id int PRIMARY KEY,
file_path text NOT NULL UNIQUE,
length_milliseconds int NOT NULL,
+1 -1
View File
@@ -1,4 +1,4 @@
CREATE TABLE cover_art (
CREATE TABLE IF NOT EXISTS cover_art (
id int PRIMARY KEY,
is_embedded bool NOT NULL DEFAULT(false),
file_path text NOT NULL,
+1 -1
View File
@@ -1,4 +1,4 @@
CREATE TABLE file_types (
CREATE TABLE IF NOT EXISTS file_types (
id INTEGER PRIMARY KEY,
extension text NOT NULL UNIQUE
);
+1 -1
View File
@@ -1,4 +1,4 @@
CREATE TABLE recordings (
CREATE TABLE IF NOT EXISTS recordings (
id int PRIMARY KEY,
name text NOT NULL,
FOREIGN KEY(artist_credit_id) REFERENCES artist_credit(id)
@@ -1,4 +1,4 @@
CREATE TABLE release_group_recordings (
CREATE TABLE IF NOT EXISTS release_group_recordings (
id int PRIMARY KEY,
FOREIGN KEY(release_group_id) REFERENCES release_groups(id),
FOREIGN KEY(recording_id) REFERENCES recordings(id)
@@ -1,4 +1,4 @@
CREATE TABLE release_groups (
CREATE TABLE IF NOT EXISTS release_groups (
id int PRIMARY KEY,
name text NOT NULL,
FOREIGN KEY(cover_art_id) REFERENCES cover_art(id)