aboutsummaryrefslogtreecommitdiff
path: root/migrations
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-03-05 12:21:04 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-03-07 13:31:35 +0100
commit88e1b886e5471552c055374f71d848d3a3dcb4b6 (patch)
treed3e64db1fa350339ac147c04d02ab7baea82e6d9 /migrations
parent89b23632f5ceeebd82132210c1407dc9514a547b (diff)
feat(db): connect with sql instead of gorm
Diffstat (limited to 'migrations')
-rw-r--r--migrations/000-leave-gorm.sql44
1 files changed, 44 insertions, 0 deletions
diff --git a/migrations/000-leave-gorm.sql b/migrations/000-leave-gorm.sql
new file mode 100644
index 0000000..91addd8
--- /dev/null
+++ b/migrations/000-leave-gorm.sql
@@ -0,0 +1,44 @@
+CREATE DOMAIN snowflake AS NUMERIC(20,0) CHECK (VALUE < 36893488147419103232 and CHECK VALUE > 0);
+CREATE DOMAIN uint AS INTEGER CHECK (VALUE >= 0);
+
+CREATE TABLE IF NOT EXISTS guilds (
+ id snowflake PRIMARY KEY,
+ disabled_channels TEXT,
+ fallback_channel snowflake,
+ days_xp_remains INTEGER CHECK (VALUE > 0) DEFAULT 90
+);
+
+CREATE TABLE IF NOT EXISTS copaings (
+ id snowflake PRIMARY KEY,
+ guild_id snowflake REFERENCES guilds(id) NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS copaing_xps (
+ copaing_id snowflake REFERENCES copaings(id) NOT NULL,
+ guild_id snowflake REFERENCES copaings(id) NOT NULL,
+ xp uint DEFAULT 0,
+ created_at TIMESTAMP DEFAULT NOW,
+ PRIMARY KEY(copaing_id, guild_id, created_at)
+);
+
+CREATE TABLE IF NOT EXISTS xp_roles (
+ xp uint,
+ role snowflake,
+ guild_id snowflake REFERENCES guilds(id),
+ PRIMARY KEY(xp, role, guild_id)
+);
+
+CREATE TABLE IF NOT EXISTS role_react_messages (
+ id SERIAL PRIMARY KEY,
+ message_id snowflake,
+ channel_id snowflake,
+ guild_id snowflake REFERENCES guilds(id),
+ note TEXT
+);
+
+CREATE TABLE IF NOT EXISTS role_reacts (
+ role snowflake,
+ message_id snowflake REFERENCES role_react_messages(id),
+ reaction TEXT,
+ PRIMARY KEY(role, message_id, reaction)
+);