-- Metadata {{{ CREATE TABLE VersionHistory( version INTEGER NOT NULL, time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, author TEXT ); INSERT INTO VersionHistory (version, author) VALUES (1, 'Initial Creation'); CREATE OR REPLACE FUNCTION update_timestamp_column() RETURNS TRIGGER AS $$ BEGIN NEW._timestamp = (now() at time zone 'utc'); RETURN NEW; END; $$ language 'plpgsql'; -- }}} -- App metadata {{{ CREATE TABLE app_config( appname TEXT PRIMARY KEY, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); CREATE TABLE bot_config( appname TEXT PRIMARY KEY REFERENCES app_config(appname) ON DELETE CASCADE, sponsor_prompt TEXT, sponsor_message TEXT, default_skin TEXT ); -- }}} -- 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) ); -- }}} -- vim: set fdm=marker: