Initial Template
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
-- Metadata {{{
|
||||
CREATE TABLE VersionHistory(
|
||||
version INTEGER NOT NULL,
|
||||
time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
author TEXT
|
||||
CREATE TABLE version_history(
|
||||
component TEXT NOT NULL,
|
||||
from_version INTEGER NOT NULL,
|
||||
to_version INTEGER NOT NULL,
|
||||
author TEXT NOT NULL,
|
||||
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
);
|
||||
INSERT INTO VersionHistory (version, author) VALUES (1, 'Initial Creation');
|
||||
INSERT INTO version_history (component, from_version, to_version, author) VALUES ('ROOT', 0, 1, 'Initial Creation');
|
||||
|
||||
|
||||
CREATE OR REPLACE FUNCTION update_timestamp_column()
|
||||
@@ -31,76 +33,6 @@ CREATE TABLE bot_config(
|
||||
);
|
||||
-- }}}
|
||||
|
||||
-- Channel Linker {{{
|
||||
|
||||
CREATE TABLE links(
|
||||
linkid SERIAL PRIMARY KEY,
|
||||
name TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE channel_webhooks(
|
||||
channelid BIGINT PRIMARY KEY,
|
||||
webhookid BIGINT NOT NULL,
|
||||
token TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE channel_links(
|
||||
linkid INTEGER NOT NULL REFERENCES links (linkid) ON DELETE CASCADE,
|
||||
channelid BIGINT NOT NULL REFERENCES channel_webhooks (channelid) ON DELETE CASCADE,
|
||||
PRIMARY KEY (linkid, channelid)
|
||||
);
|
||||
|
||||
|
||||
-- }}}
|
||||
|
||||
-- Stream Alerts {{{
|
||||
|
||||
-- DROP TABLE IF EXISTS stream_alerts;
|
||||
-- DROP TABLE IF EXISTS streams;
|
||||
-- DROP TABLE IF EXISTS alert_channels;
|
||||
-- DROP TABLE IF EXISTS streamers;
|
||||
|
||||
CREATE TABLE streamers(
|
||||
userid BIGINT PRIMARY KEY,
|
||||
login_name TEXT NOT NULL,
|
||||
display_name TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE alert_channels(
|
||||
subscriptionid SERIAL PRIMARY KEY,
|
||||
guildid BIGINT NOT NULL,
|
||||
channelid BIGINT NOT NULL,
|
||||
streamerid BIGINT NOT NULL REFERENCES streamers (userid) ON DELETE CASCADE,
|
||||
created_by BIGINT NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
paused BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
end_delete BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
live_message TEXT,
|
||||
end_message TEXT
|
||||
);
|
||||
CREATE INDEX alert_channels_guilds ON alert_channels (guildid);
|
||||
CREATE UNIQUE INDEX alert_channels_channelid_streamerid ON alert_channels (channelid, streamerid);
|
||||
|
||||
CREATE TABLE streams(
|
||||
streamid SERIAL PRIMARY KEY,
|
||||
streamerid BIGINT NOT NULL REFERENCES streamers (userid) ON DELETE CASCADE,
|
||||
start_at TIMESTAMPTZ NOT NULL,
|
||||
twitch_stream_id BIGINT,
|
||||
game_name TEXT,
|
||||
title TEXT,
|
||||
end_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE TABLE stream_alerts(
|
||||
alertid SERIAL PRIMARY KEY,
|
||||
streamid INTEGER NOT NULL REFERENCES streams (streamid) ON DELETE CASCADE,
|
||||
subscriptionid INTEGER NOT NULL REFERENCES alert_channels (subscriptionid) ON DELETE CASCADE,
|
||||
sent_at TIMESTAMPTZ NOT NULL,
|
||||
messageid BIGINT NOT NULL,
|
||||
resolved_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
|
||||
-- }}}
|
||||
-- TODO: Profile data
|
||||
|
||||
-- vim: set fdm=marker:
|
||||
|
||||
Reference in New Issue
Block a user