-- 2023-12-27: Add moderation log -- +migrate Up create table audit_log ( id bigint primary key, -- the target user of this action -- this is *not* a foreign key. if the user is deleted the audit log entry should stay, just showing as "deleted user " target_user_id bigint not null, -- the target member of this action target_member_id bigint, -- the moderator that took this action -- as with target_user_id, the audit log entry should not be deleted if the moderator's account is. moderator_id bigint not null, -- the report this was in response to. may be null if this action was taken by a moderator not responding to a report. report_id integer references reports (id) on delete set null, -- the reason for this action. always set, but may be 'None' if the action taken was 'ignore'. reason text not null default 'None', action_taken text not null, -- enum, currently: 'ignore', 'warn', 'suspend' cleared_data jsonb null -- backup of the cleared data. may be null if no data was cleared ); create index audit_log_target_user_idx on audit_log (target_user_id); create index audit_log_target_member_idx on audit_log (target_member_id); create index audit_log_moderator_idx on audit_log (moderator_id); -- +migrate Down drop table audit_log;