summaryrefslogtreecommitdiff
path: root/internal/database/migrations/001_init.up.sql
diff options
context:
space:
mode:
Diffstat (limited to 'internal/database/migrations/001_init.up.sql')
-rw-r--r--internal/database/migrations/001_init.up.sql24
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/database/migrations/001_init.up.sql b/internal/database/migrations/001_init.up.sql
new file mode 100644
index 0000000..7edbd96
--- /dev/null
+++ b/internal/database/migrations/001_init.up.sql
@@ -0,0 +1,24 @@
+BEGIN;
+CREATE TABLE user_score (
+ id INT GENERATED BY DEFAULT AS IDENTITY,
+ username TEXT UNIQUE NOT NULL,
+ burn_time TIMESTAMP NOT NULL DEFAULT NOW() + interval '1 day',
+ score SMALLINT NOT NULL,
+ created_at timestamp NOT NULL DEFAULT NOW()
+);
+
+CREATE TABLE action (
+ id INT GENERATED BY DEFAULT AS IDENTITY,
+ name TEXT NOT NULL,
+ magnitude SMALLSERIAL NOT NULL DEFAULT 1,
+ repeatable BOOLEAN NOT NULL DEFAULT FALSE,
+ type TEXT NOT NULL,
+ done BOOLEAN NOT NULL DEFAULT FALSE,
+ username TEXT NOT NULL,
+ created_at timestamp NOT NULL DEFAULT NOW(),
+ UNIQUE(username, name),
+ CONSTRAINT fk_user_score
+ FOREIGN KEY(username)
+ REFERENCES user_score(username)
+);
+COMMIT;