diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-03-05 12:21:04 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-03-07 13:31:35 +0100 |
| commit | 88e1b886e5471552c055374f71d848d3a3dcb4b6 (patch) | |
| tree | d3e64db1fa350339ac147c04d02ab7baea82e6d9 /migrations | |
| parent | 89b23632f5ceeebd82132210c1407dc9514a547b (diff) | |
feat(db): connect with sql instead of gorm
Diffstat (limited to 'migrations')
| -rw-r--r-- | migrations/000-leave-gorm.sql | 44 |
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) +); |
