groupme/database/upgrades/00-latest-revision.sql
Sumner Evans 88615a43e1
Got the bridge bot to respond to me
Signed-off-by: Sumner Evans <sumner@beeper.com>
2022-10-21 17:27:15 -05:00

84 lines
2.2 KiB
SQL

-- v0 -> v1: Latest revision
CREATE TABLE "user" (
mxid TEXT PRIMARY KEY,
gmid TEXT UNIQUE,
auth_token TEXT,
management_room TEXT,
space_room TEXT
);
CREATE TABLE portal (
gmid TEXT,
receiver TEXT,
mxid TEXT UNIQUE,
name TEXT NOT NULL,
name_set BOOLEAN NOT NULL DEFAULT false,
topic TEXT NOT NULL,
topic_set BOOLEAN NOT NULL DEFAULT false,
avatar TEXT NOT NULL,
avatar_url TEXT,
avatar_set BOOLEAN NOT NULL DEFAULT false,
encrypted BOOLEAN NOT NULL DEFAULT false,
PRIMARY KEY (gmid, receiver)
);
CREATE TABLE puppet (
gmid TEXT PRIMARY KEY,
displayname TEXT,
name_set BOOLEAN NOT NULL DEFAULT false,
avatar TEXT,
avatar_url TEXT,
avatar_set BOOLEAN NOT NULL DEFAULT false,
custom_mxid TEXT,
access_token TEXT,
next_batch TEXT,
enable_presence BOOLEAN NOT NULL DEFAULT true,
enable_receipts BOOLEAN NOT NULL DEFAULT true
);
CREATE TABLE message (
chat_gmid TEXT,
chat_receiver TEXT,
gmid TEXT,
mxid TEXT UNIQUE,
sender TEXT,
timestamp BIGINT,
sent BOOLEAN,
PRIMARY KEY (chat_gmid, chat_receiver, gmid),
FOREIGN KEY (chat_gmid, chat_receiver) REFERENCES portal(gmid, receiver) ON DELETE CASCADE
);
CREATE TABLE reaction (
chat_gmid TEXT,
chat_receiver TEXT,
target_gmid TEXT,
sender TEXT,
mxid TEXT NOT NULL,
gmid TEXT NOT NULL,
PRIMARY KEY (chat_gmid, chat_receiver, target_gmid, sender),
FOREIGN KEY (chat_gmid, chat_receiver, target_gmid) REFERENCES message(chat_gmid, chat_receiver, gmid)
ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE user_portal (
user_mxid TEXT,
portal_gmid TEXT,
portal_receiver TEXT,
in_space BOOLEAN NOT NULL DEFAULT false,
PRIMARY KEY (user_mxid, portal_gmid, portal_receiver),
FOREIGN KEY (user_mxid) REFERENCES "user"(mxid) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (portal_gmid, portal_receiver) REFERENCES portal(gmid, receiver) ON UPDATE CASCADE ON DELETE CASCADE
);