tfb-groupme-bridge/tfbbridge/schema.sql

32 lines
1.0 KiB
SQL

DROP TABLE IF EXISTS child_groups;
DROP TABLE IF EXISTS parent_groups;
CREATE TABLE organizations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
org_name TEXT NOT NULL,
admin_url TEXT UNIQUE NOT NULL, /* should be private */
addition_url TEXT UNIQUE NOT NULL /* can be public */
);
CREATE TABLE channels (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_name TEXT NOT NULL,
group_id TEXT UNIQUE NOT NULL,
bot_id TEXT UNIQUE,
/*
chan_type enum
1: a channel that recieves only announcements -- no one within may send things.
2: a channel that can recieve annonuncements, and select people can send announcements.
3: a channel in which everyone can send announcements.
*/
chan_type TEXT CHECK( chan_type in ('1', '2', '3') ) NOT NULL,
organization INTEGER NOT NULL,
FOREIGN KEY(organization) REFERENCES organizations(id)
);
CREATE TABLE allowlisted_users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id TEXT NOT NULL,
channel INTEGER NOT NULL,
FOREIGN KEY(channel) REFERENCES channels(id)
);