feat: add content report governance

This commit is contained in:
2026-01-16 11:36:04 +08:00
parent 3af3c854c9
commit 609ca7b980
18 changed files with 2480 additions and 101 deletions

View File

@@ -0,0 +1,100 @@
package dto
import "quyun/v2/app/requests"
// SuperContentReportListFilter 超管内容举报列表过滤条件。
type SuperContentReportListFilter struct {
requests.Pagination
// ID 举报ID精确匹配。
ID *int64 `query:"id"`
// TenantID 租户ID精确匹配。
TenantID *int64 `query:"tenant_id"`
// TenantCode 租户编码,模糊匹配。
TenantCode *string `query:"tenant_code"`
// TenantName 租户名称,模糊匹配。
TenantName *string `query:"tenant_name"`
// ContentID 内容ID精确匹配。
ContentID *int64 `query:"content_id"`
// ContentTitle 内容标题关键字,模糊匹配。
ContentTitle *string `query:"content_title"`
// ReporterID 举报人用户ID精确匹配。
ReporterID *int64 `query:"reporter_id"`
// ReporterName 举报人用户名/昵称,模糊匹配。
ReporterName *string `query:"reporter_name"`
// HandledBy 处理人用户ID精确匹配。
HandledBy *int64 `query:"handled_by"`
// HandledByName 处理人用户名/昵称,模糊匹配。
HandledByName *string `query:"handled_by_name"`
// Reason 举报原因关键字,模糊匹配。
Reason *string `query:"reason"`
// Keyword 举报描述关键字,模糊匹配。
Keyword *string `query:"keyword"`
// Status 处理状态pending/approved/rejected/all
Status *string `query:"status"`
// CreatedAtFrom 举报时间起始RFC3339
CreatedAtFrom *string `query:"created_at_from"`
// CreatedAtTo 举报时间结束RFC3339
CreatedAtTo *string `query:"created_at_to"`
// HandledAtFrom 处理时间起始RFC3339
HandledAtFrom *string `query:"handled_at_from"`
// HandledAtTo 处理时间结束RFC3339
HandledAtTo *string `query:"handled_at_to"`
// Asc 升序字段id/created_at/handled_at/status
Asc *string `query:"asc"`
// Desc 降序字段id/created_at/handled_at/status
Desc *string `query:"desc"`
}
// SuperContentReportItem 超管内容举报列表项。
type SuperContentReportItem struct {
// ID 举报ID。
ID int64 `json:"id"`
// TenantID 租户ID。
TenantID int64 `json:"tenant_id"`
// TenantCode 租户编码。
TenantCode string `json:"tenant_code"`
// TenantName 租户名称。
TenantName string `json:"tenant_name"`
// ContentID 内容ID。
ContentID int64 `json:"content_id"`
// ContentTitle 内容标题。
ContentTitle string `json:"content_title"`
// ContentStatus 内容状态。
ContentStatus string `json:"content_status"`
// ContentOwnerID 内容作者用户ID。
ContentOwnerID int64 `json:"content_owner_id"`
// ContentOwnerName 内容作者用户名/昵称。
ContentOwnerName string `json:"content_owner_name"`
// ReporterID 举报人用户ID。
ReporterID int64 `json:"reporter_id"`
// ReporterName 举报人用户名/昵称。
ReporterName string `json:"reporter_name"`
// Reason 举报原因。
Reason string `json:"reason"`
// Detail 举报描述。
Detail string `json:"detail"`
// Status 处理状态。
Status string `json:"status"`
// HandledBy 处理人用户ID。
HandledBy int64 `json:"handled_by"`
// HandledByName 处理人用户名/昵称。
HandledByName string `json:"handled_by_name"`
// HandledAction 处理动作block/unpublish/ignore
HandledAction string `json:"handled_action"`
// HandledReason 处理说明。
HandledReason string `json:"handled_reason"`
// CreatedAt 举报时间RFC3339
CreatedAt string `json:"created_at"`
// HandledAt 处理时间RFC3339
HandledAt string `json:"handled_at"`
}
// SuperContentReportProcessForm 超管内容举报处理表单。
type SuperContentReportProcessForm struct {
// Action 处理动作approve/reject
Action string `json:"action"`
// ContentAction 内容处置动作block/unpublish/ignore仅在 approve 时生效。
ContentAction string `json:"content_action"`
// Reason 处理说明(可选,用于审计记录)。
Reason string `json:"reason"`
}