From 9306e317859931c6e5e86ca7d528a9e28a93931a Mon Sep 17 00:00:00 2001 From: dullbananas Date: Sat, 23 Dec 2023 00:07:59 -0700 Subject: [PATCH] Update replaceable_schema.sql --- replaceable_schema.sql | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/replaceable_schema.sql b/replaceable_schema.sql index c9913765a..11dc6679a 100644 --- a/replaceable_schema.sql +++ b/replaceable_schema.sql @@ -18,6 +18,33 @@ DROP SCHEMA IF EXISTS r CASCADE; CREATE SCHEMA r; +-- These triggers resolve an item's reports when the item is removed. + +CREATE FUNCTION resolve_reports_when_post_removed () RETURNS trigger + LANGUAGE plpgsql + AS $$ +BEGIN + UPDATE + post_report + SET + resolved = TRUE, + resolver_id = mod_person_id, + updated = now() + FROM + new_removal + WHERE + post_report.post_id = new_removal.post_id AND new_removal.removed + + RETURN NULL; +END +$$; + +CREATE TRIGGER resolve_reports + AFTER INSERT ON mod_remove_post + REFERENCING NEW TABLE AS new_removal + FOR EACH STATEMENT + EXECUTE FUNCTION resolve_reports_when_post_removed (); + -- These triggers create and update rows in each aggregates table to match its associated table's rows. -- Deleting rows and updating IDs are already handled by `CASCADE` in foreign key constraints.