feat(library): let auditors correct game data
Build, Test & Push Core Service / quality-check (push) Successful in 1m0s
Build, Test & Push Core Service / docker (push) Successful in 1m25s

An AUDITOR corrects name, header image, speedrun link, moods, endless and genres of a game for every user (V20 game_correction, PUT/DELETE /api/library/games/{appid}/corrections/{field}). The value is also written into the cached row, so reads stay unchanged; the Steam sync, the image repair, the IGDB add and the mood and speedrun upserts skip corrected fields. SteamGame gets @DynamicUpdate so a sync no longer writes back columns it did not change.
This commit is contained in:
lobo committed 2026-09-28 09:31:39 +02:00
1 parent 2596df609e
commit 3c2f40036d
30 files changed
+1066 -20

No files matched your search

@@ -0,0 +1,13 @@
-- An auditor's correction of shared game data. The value is also written into the cached row (steam_game,
-- game_speedrun, game_mood), so reads need no join; the refresh writers skip a corrected field. value and
-- source_value are JSON (a string, a string list, a boolean or null); source_value is what the source had at the
-- first correction, written back by "back to source".
CREATE TABLE game_correction (
appid BIGINT NOT NULL,
field VARCHAR(16) NOT NULL,
value TEXT,
source_value TEXT,
corrected_by BIGINT NOT NULL,
corrected_at TIMESTAMPTZ NOT NULL,
PRIMARY KEY (appid, field)
);