summaryrefslogtreecommitdiff
path: root/internal/server/api/migrations/20250109140401_messages.sql
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-01-09 17:28:46 +0200
committerKyren223 <Kyren223@proton.me>2025-01-09 17:28:46 +0200
commit936d3cf690ace9adfdfe0fb44193c11a0cb26d95 (patch)
tree3d0699aa5c50efb7ecac3dddd25fe959366b7562 /internal/server/api/migrations/20250109140401_messages.sql
parentd0cb135161b18f37c25501cb863fa783cd723758 (diff)
Added goose for migrations, refactored SQL schema, server and client
are broken
Diffstat (limited to 'internal/server/api/migrations/20250109140401_messages.sql')
-rw-r--r--internal/server/api/migrations/20250109140401_messages.sql18
1 files changed, 18 insertions, 0 deletions
diff --git a/internal/server/api/migrations/20250109140401_messages.sql b/internal/server/api/migrations/20250109140401_messages.sql
new file mode 100644
index 0000000..92f75f4
--- /dev/null
+++ b/internal/server/api/migrations/20250109140401_messages.sql
@@ -0,0 +1,18 @@
+-- +goose Up
+CREATE TABLE IF NOT EXISTS messages (
+ id INTEGER PRIMARY KEY,
+ sender_id INT NOT NULL REFERENCES users (id),
+ content TEXT NOT NULL,
+ edited BOOLEAN NOT NULL CHECK (edited IN (false, true)) DEFAULT false,
+
+ frequency_id INT REFERENCES frequencies (id) ON DELETE CASCADE,
+ receiver_id INT REFERENCES users (id),
+
+ CHECK (
+ (frequency_id IS NOT NULL AND receiver_id IS NULL) OR
+ (frequency_id IS NULL AND receiver_id IS NOT NULL)
+ )
+);
+
+-- +goose Down
+DROP TABLE IF EXISTS messages;