| 5eb57578 Andy McCall ↶ |
1 |
|
| 2 |
|
| 3 |
CREATE TABLE channels ( |
| 4 |
id TEXT PRIMARY KEY, |
| 5 |
name TEXT NOT NULL UNIQUE, |
| 6 |
kind TEXT NOT NULL, |
| 7 |
project TEXT, |
| 8 |
purpose TEXT, |
| 9 |
members TEXT NOT NULL, |
| 10 |
seq INTEGER NOT NULL |
| 11 |
); |
| 12 |
|
| 13 |
CREATE TABLE messages ( |
| 14 |
id TEXT PRIMARY KEY, |
| 15 |
channel TEXT NOT NULL, |
| 16 |
reply_to TEXT, |
| 17 |
author TEXT NOT NULL, |
| 18 |
kind TEXT NOT NULL, |
| 19 |
body TEXT NOT NULL, |
| 20 |
payload TEXT, |
| 21 |
mentions TEXT NOT NULL, |
| 22 |
refs TEXT NOT NULL, |
| 23 |
at_ms INTEGER NOT NULL, |
| 24 |
seq INTEGER NOT NULL, |
| 25 |
replies INTEGER NOT NULL DEFAULT 0, |
| 26 |
redacted TEXT |
| 27 |
); |
| 28 |
CREATE INDEX messages_channel ON messages(channel, seq); |
| 29 |
CREATE INDEX messages_thread ON messages(reply_to, seq); |
| 30 |
|
| 31 |
CREATE TABLE reactions ( |
| 32 |
message TEXT NOT NULL, |
| 33 |
actor TEXT NOT NULL, |
| 34 |
reaction TEXT NOT NULL, |
| 35 |
PRIMARY KEY (message, actor, reaction) |
| 36 |
); |
| 37 |
|
| 38 |
|
| 39 |
CREATE TABLE inbox ( |
| 40 |
principal TEXT NOT NULL, |
| 41 |
item TEXT NOT NULL, |
| 42 |
kind TEXT NOT NULL, |
| 43 |
seq INTEGER NOT NULL, |
| 44 |
delivered INTEGER NOT NULL DEFAULT 0, |
| 45 |
read INTEGER NOT NULL DEFAULT 0, |
| 46 |
PRIMARY KEY (principal, item) |
| 47 |
); |
| 48 |
|
| 49 |
CREATE VIRTUAL TABLE messages_fts USING fts5(id UNINDEXED, channel UNINDEXED, author UNINDEXED, body, tokenize = 'porter unicode61'); |