|
@@ -1,105 +1,105 @@
|
|
-- v1: Initial revision
|
|
-- v1: Initial revision
|
|
|
|
|
|
CREATE TABLE portal (
|
|
CREATE TABLE portal (
|
|
- channel_id TEXT,
|
|
|
|
- receiver TEXT,
|
|
|
|
- mxid TEXT UNIQUE,
|
|
|
|
|
|
+ channel_id TEXT,
|
|
|
|
+ receiver TEXT,
|
|
|
|
+ mxid TEXT UNIQUE,
|
|
|
|
|
|
- name TEXT NOT NULL,
|
|
|
|
- topic TEXT NOT NULL,
|
|
|
|
|
|
+ name TEXT NOT NULL,
|
|
|
|
+ topic TEXT NOT NULL,
|
|
|
|
|
|
- avatar TEXT NOT NULL,
|
|
|
|
- avatar_url TEXT,
|
|
|
|
|
|
+ avatar TEXT NOT NULL,
|
|
|
|
+ avatar_url TEXT,
|
|
|
|
|
|
- encrypted BOOLEAN NOT NULL DEFAULT false,
|
|
|
|
|
|
+ encrypted BOOLEAN NOT NULL DEFAULT false,
|
|
|
|
|
|
- type INT,
|
|
|
|
- dmuser TEXT,
|
|
|
|
|
|
+ type INT,
|
|
|
|
+ dmuser TEXT,
|
|
|
|
|
|
- first_event_id TEXT,
|
|
|
|
|
|
+ first_event_id TEXT,
|
|
|
|
|
|
- PRIMARY KEY (channel_id, receiver)
|
|
|
|
|
|
+ PRIMARY KEY (channel_id, receiver)
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE puppet (
|
|
CREATE TABLE puppet (
|
|
- id TEXT PRIMARY KEY,
|
|
|
|
- display_name TEXT,
|
|
|
|
|
|
+ id TEXT PRIMARY KEY,
|
|
|
|
+ display_name TEXT,
|
|
|
|
|
|
- avatar TEXT,
|
|
|
|
- avatar_url TEXT,
|
|
|
|
|
|
+ avatar TEXT,
|
|
|
|
+ avatar_url TEXT,
|
|
|
|
|
|
- enable_presence BOOLEAN NOT NULL DEFAULT true,
|
|
|
|
- enable_receipts BOOLEAN NOT NULL DEFAULT true,
|
|
|
|
|
|
+ enable_presence BOOLEAN NOT NULL DEFAULT true,
|
|
|
|
+ enable_receipts BOOLEAN NOT NULL DEFAULT true,
|
|
|
|
|
|
- custom_mxid TEXT,
|
|
|
|
- access_token TEXT,
|
|
|
|
- next_batch TEXT
|
|
|
|
|
|
+ custom_mxid TEXT,
|
|
|
|
+ access_token TEXT,
|
|
|
|
+ next_batch TEXT
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE "user" (
|
|
CREATE TABLE "user" (
|
|
- mxid TEXT PRIMARY KEY,
|
|
|
|
- id TEXT UNIQUE,
|
|
|
|
|
|
+ mxid TEXT PRIMARY KEY,
|
|
|
|
+ id TEXT UNIQUE,
|
|
|
|
|
|
- management_room TEXT,
|
|
|
|
|
|
+ management_room TEXT,
|
|
|
|
|
|
- token TEXT
|
|
|
|
|
|
+ token TEXT
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE message (
|
|
CREATE TABLE message (
|
|
- channel_id TEXT NOT NULL,
|
|
|
|
- receiver TEXT NOT NULL,
|
|
|
|
|
|
+ channel_id TEXT NOT NULL,
|
|
|
|
+ receiver TEXT NOT NULL,
|
|
|
|
|
|
- discord_message_id TEXT NOT NULL,
|
|
|
|
- matrix_message_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
+ discord_message_id TEXT NOT NULL,
|
|
|
|
+ matrix_message_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
- author_id TEXT NOT NULL,
|
|
|
|
- timestamp BIGINT NOT NULL,
|
|
|
|
|
|
+ author_id TEXT NOT NULL,
|
|
|
|
+ timestamp BIGINT NOT NULL,
|
|
|
|
|
|
- PRIMARY KEY(discord_message_id, channel_id, receiver),
|
|
|
|
- FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
|
|
|
|
+ PRIMARY KEY(discord_message_id, channel_id, receiver),
|
|
|
|
+ FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE reaction (
|
|
CREATE TABLE reaction (
|
|
- channel_id TEXT NOT NULL,
|
|
|
|
- receiver TEXT NOT NULL,
|
|
|
|
|
|
+ channel_id TEXT NOT NULL,
|
|
|
|
+ receiver TEXT NOT NULL,
|
|
|
|
|
|
- discord_message_id TEXT NOT NULL,
|
|
|
|
- matrix_event_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
+ discord_message_id TEXT NOT NULL,
|
|
|
|
+ matrix_event_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
- author_id TEXT NOT NULL,
|
|
|
|
|
|
+ author_id TEXT NOT NULL,
|
|
|
|
|
|
- matrix_name TEXT,
|
|
|
|
- matrix_url TEXT,
|
|
|
|
|
|
+ matrix_name TEXT,
|
|
|
|
+ matrix_url TEXT,
|
|
|
|
|
|
- discord_id TEXT,
|
|
|
|
|
|
+ discord_id TEXT,
|
|
|
|
|
|
- UNIQUE (discord_id, author_id, discord_message_id, channel_id, receiver),
|
|
|
|
- FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
|
|
|
|
+ UNIQUE (discord_id, author_id, discord_message_id, channel_id, receiver),
|
|
|
|
+ FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE attachment (
|
|
CREATE TABLE attachment (
|
|
- channel_id TEXT NOT NULL,
|
|
|
|
- receiver TEXT NOT NULL,
|
|
|
|
|
|
+ channel_id TEXT NOT NULL,
|
|
|
|
+ receiver TEXT NOT NULL,
|
|
|
|
|
|
- discord_message_id TEXT NOT NULL,
|
|
|
|
- discord_attachment_id TEXT NOT NULL,
|
|
|
|
|
|
+ discord_message_id TEXT NOT NULL,
|
|
|
|
+ discord_attachment_id TEXT NOT NULL,
|
|
|
|
|
|
- matrix_event_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
+ matrix_event_id TEXT NOT NULL UNIQUE,
|
|
|
|
|
|
- PRIMARY KEY(discord_attachment_id, matrix_event_id),
|
|
|
|
- FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
|
|
|
|
+ PRIMARY KEY(discord_attachment_id, matrix_event_id),
|
|
|
|
+ FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE emoji (
|
|
CREATE TABLE emoji (
|
|
- discord_id TEXT PRIMARY KEY,
|
|
|
|
- discord_name TEXT,
|
|
|
|
- matrix_url TEXT
|
|
|
|
|
|
+ discord_id TEXT PRIMARY KEY,
|
|
|
|
+ discord_name TEXT,
|
|
|
|
+ matrix_url TEXT
|
|
);
|
|
);
|
|
|
|
|
|
CREATE TABLE guild (
|
|
CREATE TABLE guild (
|
|
- discord_id TEXT NOT NULL,
|
|
|
|
- guild_id TEXT NOT NULL,
|
|
|
|
- guild_name TEXT NOT NULL,
|
|
|
|
- bridge BOOLEAN DEFAULT FALSE,
|
|
|
|
- PRIMARY KEY(discord_id, guild_id)
|
|
|
|
|
|
+ discord_id TEXT NOT NULL,
|
|
|
|
+ guild_id TEXT NOT NULL,
|
|
|
|
+ guild_name TEXT NOT NULL,
|
|
|
|
+ bridge BOOLEAN DEFAULT FALSE,
|
|
|
|
+ PRIMARY KEY(discord_id, guild_id)
|
|
);
|
|
);
|