feat: add tables for guilds, members, channels, messages, emojis and reactions

This commit is contained in:
Radical 2025-05-03 05:31:35 +02:00
parent 838947a7ca
commit 34b984a1b5

View file

@ -71,6 +71,42 @@ async fn main() -> Result<(), Error> {
refresh_token varchar(64) UNIQUE NOT NULL REFERENCES refresh_tokens(token), refresh_token varchar(64) UNIQUE NOT NULL REFERENCES refresh_tokens(token),
uuid uuid NOT NULL REFERENCES users(uuid), uuid uuid NOT NULL REFERENCES users(uuid),
created int8 NOT NULL created int8 NOT NULL
);
CREATE TABLE IF NOT EXISTS guilds (
uuid uuid PRIMARY KEY NOT NULL,
name VARCHAR(100),
description VARCHAR(300),
created_at int8 NOT NULL
);
CREATE TABLE IF NOT EXISTS guild_members (
guild_uuid uuid NOT NULL REFERENCES guilds(uuid),
user_uuid uuid NOT NULL REFERENCES users(uuid),
permissions int8 NOT NULL DEFAULT 0,
PRIMARY KEY (guild_uuid, user_uuid)
);
CREATE TABLE IF NOT EXISTS channels (
uuid uuid PRIMARY KEY NOT NULL,
guild_uuid NOT NULL REFERENCES guilds(uuid),
name varchar(32) NOT NULL,
description varchar(500) NOT NULL
);
CREATE TABLE IF NOT EXISTS messages (
uuid uuid PRIMARY KEY NOT NULL,
channel_uuid uuid NOT NULL REFERENCES channels(uuid),
user_uuid uuid NOT NULL REFERENCES users(uuid),
message varchar(2000) NOT NULL,
created_at int8 NOT NULL
);
CREATE TABLE IF NOT EXISTS emojis (
uuid uuid PRIMARY KEY NOT NULL,
name varchar(32) NOT NULL,
guild_uuid uuid REFERENCES guilds(uuid)
);
CREATE TABLE IF NOT EXISTS message_reactions (
message_uuid uuid NOT NULL REFERENCES messages(uuid),
user_uuid uuid NOT NULL REFERENCES users(uuid),
emoji_uuid uuid NOT NULL REFERENCES emojis(uuid),
PRIMARY KEY (message_uuid, user_uuid, emoji_uuid)
) )
"#, "#,
) )