feat(notifications): alert oversight review queues
This commit is contained in:
@@ -67,6 +67,28 @@ CREATE TABLE IF NOT EXISTS notification_preferences (
|
||||
updated_at TEXT NOT NULL,
|
||||
PRIMARY KEY(user_id, category)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS oversight_notification_preferences (
|
||||
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
oversight_category TEXT NOT NULL CHECK(oversight_category IN ('data_changes', 'avatars')),
|
||||
frequency TEXT NOT NULL DEFAULT 'immediate' CHECK(frequency IN ('immediate', '15_minutes', '1_hour', 'daily')),
|
||||
updated_at TEXT NOT NULL,
|
||||
PRIMARY KEY(user_id, oversight_category)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS oversight_notification_queue (
|
||||
id TEXT PRIMARY KEY,
|
||||
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
oversight_category TEXT NOT NULL CHECK(oversight_category IN ('data_changes', 'avatars')),
|
||||
review_item_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
summary TEXT NOT NULL,
|
||||
link TEXT NOT NULL,
|
||||
frequency TEXT NOT NULL CHECK(frequency IN ('15_minutes', '1_hour', 'daily')),
|
||||
created_at TEXT NOT NULL,
|
||||
deliver_after TEXT NOT NULL,
|
||||
delivered_at TEXT
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS oversight_notification_queue_due_idx ON oversight_notification_queue(delivered_at, deliver_after);
|
||||
CREATE INDEX IF NOT EXISTS oversight_notification_queue_user_category_idx ON oversight_notification_queue(user_id, oversight_category, delivered_at);
|
||||
CREATE INDEX IF NOT EXISTS avatar_reviews_status_submitted_idx ON avatar_reviews(status, submitted_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS avatar_reviews_user_submitted_idx ON avatar_reviews(user_id, submitted_at DESC);
|
||||
CREATE TABLE IF NOT EXISTS builds (id TEXT PRIMARY KEY, owner_id TEXT NOT NULL REFERENCES users(id), title TEXT NOT NULL, slug TEXT NOT NULL UNIQUE, visibility TEXT NOT NULL DEFAULT 'private', summary TEXT, guide_body TEXT, source_build_id TEXT REFERENCES builds(id), loadout_json TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL);
|
||||
|
||||
Reference in New Issue
Block a user