diff --git a/src/environment/database/migrations/up/004_create_guild_members.sql b/src/environment/database/migrations/up/004_create_guild_members.sql new file mode 100644 index 0000000..10143ca --- /dev/null +++ b/src/environment/database/migrations/up/004_create_guild_members.sql @@ -0,0 +1,19 @@ +CREATE TABLE IF NOT EXISTS guild_members ( + guild_id TEXT, + user_id TEXT, + joined_at TIMESTAMP, + roles SET, + nickname TEXT, + permissions BIGINT, + PRIMARY KEY (guild_id, user_id) +); + +CREATE INDEX IF NOT EXISTS guild_members_user_idx ON guild_members (user_id); + +CREATE TABLE IF NOT EXISTS guild_members_by_user ( + user_id TEXT, + joined_at TIMESTAMP, + guild_id TEXT, + guild_name TEXT, + PRIMARY KEY (user_id, joined_at, guild_id) +) WITH CLUSTERING ORDER BY (joined_at DESC); diff --git a/src/environment/database/migrations/up/005_create_guild_roles.sql b/src/environment/database/migrations/up/005_create_guild_roles.sql new file mode 100644 index 0000000..a79469f --- /dev/null +++ b/src/environment/database/migrations/up/005_create_guild_roles.sql @@ -0,0 +1,14 @@ +CREATE TABLE IF NOT EXISTS guild_roles ( + guild_id TEXT, + role_id TEXT, + name TEXT, + color INT, + position INT, + permissions BIGINT, + mentionable BOOLEAN, + created_at TIMESTAMP, + updated_at TIMESTAMP, + PRIMARY KEY (guild_id, role_id) +); + +CREATE INDEX IF NOT EXISTS guild_roles_position_idx ON guild_roles (guild_id, position); diff --git a/src/environment/database/migrations/up/006_create_guild_invites.sql b/src/environment/database/migrations/up/006_create_guild_invites.sql new file mode 100644 index 0000000..5db4678 --- /dev/null +++ b/src/environment/database/migrations/up/006_create_guild_invites.sql @@ -0,0 +1,15 @@ +CREATE TABLE IF NOT EXISTS guild_invites ( + code TEXT PRIMARY KEY, + guild_id TEXT, + inviter_id TEXT, + channel_id TEXT, + max_uses INT, + uses INT, + max_age INT, + temporary BOOLEAN, + created_at TIMESTAMP, + expires_at TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS guild_invites_guild_idx ON guild_invites (guild_id); +CREATE INDEX IF NOT EXISTS guild_invites_expires_idx ON guild_invites (expires_at); diff --git a/src/lib/utils/idGenerator.ts b/src/lib/utils/idGenerator.ts index 7452d44..480f9f1 100644 --- a/src/lib/utils/idGenerator.ts +++ b/src/lib/utils/idGenerator.ts @@ -16,6 +16,16 @@ const pika = new Pika([ prefix: "guild", description: "Guild ID", }, + "invite", + { + prefix: "invite", + description: "Guild Invite ID", + }, + "role", + { + prefix: "role", + description: "Guild Role ID", + }, ]); export { pika };