Add related cases and duplicate review suggestions
This commit is contained in:
@@ -179,3 +179,26 @@ export function migrateModerationCaseAssessments(handle: Database.Database): voi
|
||||
);
|
||||
`);
|
||||
}
|
||||
|
||||
export function migrateModerationCaseRelationships(handle: Database.Database): void {
|
||||
handle.exec(`
|
||||
CREATE TABLE IF NOT EXISTS moderation_case_relationships (
|
||||
id TEXT PRIMARY KEY,
|
||||
case_id TEXT NOT NULL REFERENCES moderation_cases(id),
|
||||
target_case_id TEXT NOT NULL REFERENCES moderation_cases(id),
|
||||
relation TEXT NOT NULL CHECK(relation IN ('same_incident','appeal_of','duplicate_of')),
|
||||
actor_id TEXT NOT NULL,
|
||||
actor TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
removed_at TEXT,
|
||||
CHECK(case_id != target_case_id),
|
||||
CHECK(relation != 'same_incident' OR case_id < target_case_id)
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS moderation_case_relationship_active
|
||||
ON moderation_case_relationships(case_id,target_case_id,relation) WHERE removed_at IS NULL;
|
||||
CREATE INDEX IF NOT EXISTS moderation_case_relationship_target
|
||||
ON moderation_case_relationships(target_case_id,removed_at);
|
||||
CREATE INDEX IF NOT EXISTS moderation_case_subject_recent
|
||||
ON moderation_cases(game,guid,updated_at DESC,id);
|
||||
`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user