feat(moderation): comment/event report and dimzou translation pages

New 内容审核 nav group covering the remaining admin API groups:
- /comment-reports — status filter; hide/delete comment or dismiss
- /event-reports — status filter; hide/delete/resolve/dismiss
- /dimzou-translations — language/status filters, draft block progress,
  requeue machine translation

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
2026-07-11 13:28:28 +08:00
co-authored by Claude Fable 5
parent ebe7665620
commit 999d5353fd
11 changed files with 908 additions and 9 deletions
+65
View File
@@ -284,3 +284,68 @@ export interface NotificationDevice {
last_seen_at?: string | null
created_at?: string
}
export type ReportStatus = 'open' | 'resolved' | 'dismissed'
export interface ReportUser {
uid: string
display_name?: string | null
}
export interface CommentReport {
id: number
comment_id: number
reason: string
message?: string | null
status: ReportStatus
created_at: string
handled_at?: string | null
handled_by?: ReportUser | null
reporter?: ReportUser | null
comment?: {
id: number
body?: string | null
status?: string
author?: ReportUser | null
} | null
}
export interface FileXEventReport {
id: number
kind?: string
event_id: number
reason: string
message?: string | null
status: ReportStatus
created_at: string
handled_at?: string | null
handled_by?: ReportUser | null
reporter?: ReportUser | null
event?: { id: number; title?: string | null } | null
}
export type DimzouTranslationStatus = 'draft' | 'awaiting_publish' | 'published'
export interface DimzouTranslation {
kind?: string
id: number
language_code: string
status: DimzouTranslationStatus
source_document?: { id: number; title?: string | null } | null
translated_document_id: number
created_by_uid: string
creator?: ReportUser | null
draft_version_id?: number | null
blocks: {
total: number
needs_translation: number
translation_failed: number
}
created_at?: string
updated_at?: string
}
export interface RetranslateResult {
translation_version_id: number
queued_blocks: number
}