mirror of
https://github.com/djdevin/recflare.git
synced 2026-09-08 14:41:28 -07:00
[api] invention reports
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
-- Reporting an INVENTION (`POST /api/inventions/v1/report`) reuses the report table, as
|
||||
-- the event report next to it does: same fields, same moderation life — a moderator
|
||||
-- acting on one sets `banned` on the row exactly as they would for a player report.
|
||||
-- Generated from src/reports-db.ts (SCHEMA_DDL) — keep in sync.
|
||||
--
|
||||
-- `invention_id` names the reported invention; NULL on every other kind of report. It
|
||||
-- sits beside `event_id` and the two are mutually exclusive: a row names an event, or an
|
||||
-- invention, or neither (an ordinary player report), which is what tells the kinds apart.
|
||||
--
|
||||
-- The row's `reported_player_id` is the invention's CREATOR, read from the invention
|
||||
-- rather than sent by the client — the column is NOT NULL, and "who is answerable for
|
||||
-- this invention" is the only honest answer. No `room_id`: an invention is not tied to
|
||||
-- one room the way an event is, so there is nothing to fill it in from.
|
||||
--
|
||||
-- Neither id column is INDEXED. Both are written on every report of their kind and read
|
||||
-- by nothing — no query in any worker filters on either, and the moderation reads that do
|
||||
-- exist go by player (`idx_report_reported`) or by the ban flag. So the partial index
|
||||
-- 0011 built over `event_id` is dropped here rather than being mirrored for
|
||||
-- `invention_id`: it only cost writes. Add one back with the query that needs it.
|
||||
|
||||
ALTER TABLE report ADD COLUMN invention_id INTEGER;
|
||||
DROP INDEX IF EXISTS idx_report_event;
|
||||
Reference in New Issue
Block a user