feat: Basic message logger.
This commit is contained in:
53
data/schema.sql
Normal file
53
data/schema.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE logging_guilds(
|
||||
guildid BIGINT PRIMARY KEY,
|
||||
webhook_url TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
_timestamp TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TRIGGER logging_guilds_timestamp BEFORE UPDATE ON logging_guilds
|
||||
FOR EACH ROW EXECUTE FUNCTION update_timestamp_column();
|
||||
|
||||
|
||||
CREATE TABLE logged_messages(
|
||||
messageid BIGINT PRIMARY KEY,
|
||||
guildid BIGINT NOT NULL REFERENCES logging_guilds ON DELETE CASCADE,
|
||||
channelid BIGINT NOT NULL,
|
||||
userid BIGINT NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL,
|
||||
deleted_at TIMESTAMPTZ,
|
||||
_timestamp TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TRIGGER logged_messages_timestamp BEFORE UPDATE ON logged_messages
|
||||
FOR EACH ROW EXECUTE FUNCTION update_timestamp_column();
|
||||
|
||||
CREATE TABLE message_states(
|
||||
stateid INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
messageid BIGINT NOT NULL REFERENCES logged_messages ON DELETE CASCADE,
|
||||
content TEXT NOT NULL,
|
||||
embeds_raw TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
CREATE INDEX message_states_messageid ON message_states (messageid);
|
||||
|
||||
CREATE TABLE logged_attachments(
|
||||
attachment_id BIGINT PRIMARY KEY,
|
||||
proxy_url TEXT NOT NULL,
|
||||
url TEXT NOT NULL,
|
||||
content_type TEXT NOT NULL,
|
||||
filesize INTEGER NOT NULL,
|
||||
filename TEXT NOT NULL,
|
||||
permalink TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE logged_messages_attachments(
|
||||
stateid INTEGER NOT NULL REFERENCES message_states(stateid) ON DELETE CASCADE,
|
||||
attachment_id BIGINT NOT NULL REFERENCES logged_attachments(attachment_id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX logged_messages_attachments_stateid ON logged_messages_attachments (stateid);
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user