using dodohold.core; using System.Text.Json.Serialization; using YunhuiKit; namespace molilian.core { [Table("tk_override_rules")] public class OverrideRuleDTO { [Key] public int id { get; set; } public string platform { get; set; } = string.Empty; public string original_text { get; set; } = string.Empty; public string rule { get; set; } = string.Empty; public string output_text { get; set; } = string.Empty; public string output_type { get; set; } = string.Empty; [JsonConverter(typeof(NumericBooleanConverter))] public bool status { get; set; } [IgnoreUpdate] [JsonConverter(typeof(NullableDateTimeConverter))] public DateTime create_time { get; set; } [JsonConverter(typeof(NullableDateTimeConverter))] public DateTime last_time { get; set; } /// /// 备注 /// public string description { get; set; } = string.Empty; [JsonConverter(typeof(NumericBooleanConverter))] public bool use_risk_control { get; set; } /// /// 每日最高调用次数限制 /// public int daily_calls_limit { get; set; } = 0; /// /// 每小时最高调用次数限制 /// public int hourly_calls_limit { get; set; } = 0; [IgnoreInsert, IgnoreUpdate] public int current_daily_calls { get; set; } = 0; [IgnoreInsert, IgnoreUpdate] public int current_hourly_calls { get; set; } = 0; /// /// 是否验证参数:0不限制, 1入参special_text=1 时才匹配 /// public int use_special_text { get; set; } public int sort { get; set; } /// /// 命中规则后覆写的响应结果 success:true成功,false失败 /// [JsonConverter(typeof(NumericBooleanConverter))] public bool response_success { get; set; } = true; /// /// 命中规则后覆写的 message,为空时沿用默认值 /// public string response_message { get; set; } = string.Empty; /// /// 命中规则后覆写的 reason(同时作为 sub_message 输出),为空时沿用默认值 /// public string response_reason { get; set; } = string.Empty; public string ResolveMessage(string fallback) => string.IsNullOrEmpty(response_message) ? fallback : response_message; public string ResolveReason(string fallback) => string.IsNullOrEmpty(response_reason) ? fallback : response_reason; public OverrideRuleDTO Clone() => (OverrideRuleDTO)MemberwiseClone(); } }