topfans/backend/services/moderationService/config/moderation_config.go
2026-06-22 17:19:48 +08:00

49 lines
1.3 KiB
Go

package config
import "time"
// ModerationConfig 举报反馈服务配置 (spec §11.1)
type ModerationConfig struct {
AutoHideThreshold int
CounterTTL time.Duration
UserMarkerTTL time.Duration
LockTTL time.Duration
MaxDescriptionLen int
MaxEvidenceCount int
MaxContactLen int
MaxReplyLen int
MaxEvidenceSize int64
AllowedMimeTypes []string
RateLimitUserPerDay int
RateLimitIPPerDay int
RateLimitDevPerDay int
RateLimitFbUserDay int
ClaimTimeout time.Duration
PIIAnonymizeAfter time.Duration
AutoArchiveAfter time.Duration
RedisKeyPrefix string
PathDCounterPolicy string
}
var Default = ModerationConfig{
AutoHideThreshold: 5,
CounterTTL: 7 * 24 * time.Hour,
UserMarkerTTL: 24 * time.Hour,
LockTTL: 5 * time.Second,
MaxDescriptionLen: 500,
MaxEvidenceCount: 5,
MaxContactLen: 320,
MaxReplyLen: 2000,
MaxEvidenceSize: 5 * 1024 * 1024,
AllowedMimeTypes: []string{"image/png", "image/jpeg"},
RateLimitUserPerDay: 30,
RateLimitIPPerDay: 200,
RateLimitDevPerDay: 200,
RateLimitFbUserDay: 5,
ClaimTimeout: 15 * time.Minute,
PIIAnonymizeAfter: 90 * 24 * time.Hour,
AutoArchiveAfter: 90 * 24 * time.Hour,
RedisKeyPrefix: "mod:report",
PathDCounterPolicy: "preserve",
}