Add case follow-up queues and personal update notifications
This commit is contained in:
@@ -202,3 +202,24 @@ export function migrateModerationCaseRelationships(handle: Database.Database): v
|
||||
ON moderation_cases(game,guid,updated_at DESC,id);
|
||||
`);
|
||||
}
|
||||
|
||||
export function migrateModerationCaseFollowups(handle: Database.Database): void {
|
||||
const columns = handle.pragma('table_info(moderation_cases)') as { name: string }[];
|
||||
if (!columns.some((column) => column.name === 'review_at'))
|
||||
handle.exec(`ALTER TABLE moderation_cases ADD COLUMN review_at TEXT;
|
||||
ALTER TABLE moderation_cases ADD COLUMN review_reason TEXT NOT NULL DEFAULT '';
|
||||
ALTER TABLE moderation_cases ADD COLUMN review_sanction_id TEXT REFERENCES moderation_sanctions(id) ON DELETE SET NULL;`);
|
||||
handle.exec(`
|
||||
CREATE INDEX IF NOT EXISTS moderation_case_review_due ON moderation_cases(review_at) WHERE review_at IS NOT NULL;
|
||||
CREATE TABLE IF NOT EXISTS moderation_case_notifications (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id TEXT NOT NULL REFERENCES auth_users(id) ON DELETE CASCADE,
|
||||
case_id TEXT NOT NULL REFERENCES moderation_cases(id),
|
||||
kind TEXT NOT NULL CHECK(kind IN ('evidence','assignment')),
|
||||
created_at TEXT NOT NULL,
|
||||
read_at TEXT
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS moderation_case_notifications_unread ON moderation_case_notifications(user_id,read_at,id DESC);
|
||||
CREATE INDEX IF NOT EXISTS moderation_case_notifications_case ON moderation_case_notifications(user_id,case_id,read_at,id DESC);
|
||||
`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user