fix: capture server nickname (member displayName) per action

Rename server_name (guild name) to server_nick and populate it from
the member's server-specific display name (metadata.member.displayName)
at write time. This is what the moderation dashboard should show as
TARGET — e.g. server nick 'Bandar Togel「✔ ᵛᵉʳᶦᶠᶦᵉᵈ 」' for global
username '.nichiyobi'. Backfilled 210 existing actions from messages
metadata (reset_nickname rows now show 'Sarjana .jav', 'Penindas
Minoritas', etc). Frontend TARGET shows server nick with global
username as secondary context.
This commit is contained in:
asepharyana
2026-08-27 13:50:37 +07:00
parent 4991164591
commit ea23c405fa
10 changed files with 46 additions and 19 deletions
@@ -643,7 +643,7 @@ export const pgModerationActionsTable = pgTable(
evidence: pgText("evidence"), // JSON array of short quoted snippets
policy_version: pgText("policy_version"), // rules.ts policy version string
username: pgText("username"), // denormalized from messages table for retention safety
server_name: pgText("server_name"), // denormalized guild name for retention safety
server_nick: pgText("server_nick"), // member's server-specific display name (nickname), from metadata.member.displayName
},
(table) => ({
messageIdIdx: pgIndex("idx_moderation_actions_message_id").on(
@@ -60,7 +60,7 @@ export const pgModerationActionsTable = pgTable(
evidence: pgText("evidence"), // JSON array of short quoted snippets
policy_version: pgText("policy_version"), // rules.ts policy version string
username: pgText("username"), // denormalized from messages table for retention safety
server_name: pgText("server_name"), // denormalized guild name for retention safety
server_nick: pgText("server_nick"), // member's server-specific display name (nickname), from metadata.member.displayName
},
(table) => ({
messageIdIdx: pgIndex("idx_moderation_actions_message_id").on(