54 lines
1.3 KiB
SQL
54 lines
1.3 KiB
SQL
DROP TABLE IF EXISTS role_menu_history CASCADE;
|
|
DROP TABLE IF EXISTS role_menu_roles CASCADE;
|
|
DROP TABLE IF EXISTS role_menus CASCADE;
|
|
DROP TYPE IF EXISTS RoleMenuType;
|
|
|
|
|
|
CREATE TYPE RoleMenuType AS ENUM(
|
|
'REACTION',
|
|
'BUTTON',
|
|
'DROPDOWN'
|
|
);
|
|
|
|
|
|
CREATE TABLE role_menus(
|
|
menuid SERIAL PRIMARY KEY,
|
|
guildid BIGINT NOT NULL REFERENCES guild_config (guildid) ON DELETE CASCADE,
|
|
channelid BIGINT,
|
|
messageid BIGINT,
|
|
name TEXT NOT NULL,
|
|
enabled BOOLEAN NOT NULL DEFAULT True,
|
|
required_roleid BIGINT,
|
|
sticky BOOLEAN,
|
|
refunds BOOLEAN,
|
|
obtainable INTEGER,
|
|
menutype RoleMenuType NOT NULL,
|
|
templateid INTEGER,
|
|
rawmessage TEXT
|
|
);
|
|
|
|
|
|
CREATE TABLE role_menu_roles(
|
|
menuroleid SERIAL PRIMARY KEY,
|
|
menuid INTEGER NOT NULL REFERENCES role_menus (menuid) ON DELETE CASCADE,
|
|
roleid BIGINT NOT NULL,
|
|
label TEXT NOT NULL,
|
|
emoji TEXT,
|
|
description TEXT,
|
|
price INTEGER,
|
|
duration INTEGER,
|
|
rawreply TEXT
|
|
);
|
|
|
|
|
|
CREATE TABLE role_menu_history(
|
|
equipid SERIAL PRIMARY KEY,
|
|
menuid INTEGER NOT NULL REFERENCES role_menus (menuid) ON DELETE CASCADE,
|
|
roleid BIGINT NOT NULL,
|
|
userid BIGINT NOT NULL,
|
|
obtained_at TIMESTAMPTZ NOT NULL,
|
|
transactionid INTEGER REFERENCES coin_transactions (transactionid) ON DELETE SET NULL,
|
|
expires_at TIMESTAMPTZ,
|
|
expired_at TIMESTAMPTZ
|
|
);
|