feat: social graph features
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-- Post reports — a viewer flags a specific post (not its author) with a
|
||||
-- category + optional free-text reason. Mirrors user_reports but keyed to
|
||||
-- a post; resolved_at is one-way (admins clear it later). The partial
|
||||
-- index keeps the open-reports queue cheap to list.
|
||||
CREATE TABLE IF NOT EXISTS post_reports (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
reporter_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
post_id UUID NOT NULL REFERENCES posts(id) ON DELETE CASCADE,
|
||||
category VARCHAR(32) NOT NULL,
|
||||
reason TEXT NOT NULL DEFAULT '',
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
resolved_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS post_reports_post_idx
|
||||
ON post_reports (post_id, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS post_reports_unresolved_idx
|
||||
ON post_reports (created_at DESC) WHERE resolved_at IS NULL;
|
||||
Reference in New Issue
Block a user