using Fengling.RiskControl.Domain.Aggregates.RiskRules; namespace Fengling.RiskControl.Infrastructure.SeedData; public static class RiskControlSeedData { public static IEnumerable GetDefaultRules() { yield return RiskRule.Create( "高频抽奖限制", "限制单日抽奖次数,防止沉迷", RiskRuleType.FrequencyLimit, RiskRuleAction.Block, """{"maxCount": 10, "windowMinutes": 1440, "points": 30}""", priority: 10); yield return RiskRule.Create( "单次大额抽奖限制", "单次抽奖投入不能超过1000积分", RiskRuleType.AmountLimit, RiskRuleAction.Block, """{"maxAmount": 1000, "points": 40}""", priority: 9); yield return RiskRule.Create( "设备异常检测", "同一设备频繁切换账号", RiskRuleType.DeviceFingerprint, RiskRuleAction.RequireVerification, """{"maxAccountsPerDevice": 3, "windowMinutes": 60, "points": 50}""", priority: 8); yield return RiskRule.Create( "IP地址异常", "同一IP短时间内大量请求", RiskRuleType.VelocityCheck, RiskRuleAction.RateLimit, """{"maxRequests": 100, "windowMinutes": 1, "points": 20}""", priority: 7); yield return RiskRule.Create( "行为模式异常", "检测非正常用户行为模式", RiskRuleType.BehaviorPattern, RiskRuleAction.FlagForReview, """{"patterns": ["rapid_clicks", "pattern_sequences"]}""", priority: 5); yield return RiskRule.Create( "VIP会员白名单", "VIP会员享受较低风控等级", RiskRuleType.Whitelist, RiskRuleAction.Allow, """{"vipLevels": [3, 4, 5]}""", priority: 100); } }