namespace Admin.NET.Plugin.ApprovalFlow; /// /// 审批流通知渠道配置覆盖层(P4-16 延伸) /// 一条记录 = 一个渠道的运行时覆盖。 /// FlowNotifyService 读取时:DB 有则用 DB,无则回退 ApprovalFlow.json。零破坏升级。 /// [SugarTable(null, "审批流通知渠道配置")] [SugarIndex("idx_notifycfg_channel", nameof(ChannelKey), OrderByType.Asc, true)] public class ApprovalFlowNotifyConfig : EntityBase { /// /// 渠道标识(SignalR / Email / Sms / DingTalk / WorkWeixin),与 INotifyPusher.Channel 对齐 /// [SugarColumn(ColumnDescription = "渠道标识", Length = 16)] [Required, MaxLength(16)] public string ChannelKey { get; set; } = ""; /// /// 是否启用 /// [SugarColumn(ColumnDescription = "是否启用", DefaultValue = "0")] public bool Enabled { get; set; } /// /// Webhook URL(钉钉 / 企业微信群机器人) /// [SugarColumn(ColumnDescription = "WebhookURL", Length = 512, IsNullable = true)] [MaxLength(512)] public string? WebhookUrl { get; set; } /// /// 加签 Secret(钉钉,可选) /// [SugarColumn(ColumnDescription = "加签Secret", Length = 128, IsNullable = true)] [MaxLength(128)] public string? Secret { get; set; } /// /// 短信运营商模板 Id /// [SugarColumn(ColumnDescription = "短信模板Id", Length = 64, IsNullable = true)] [MaxLength(64)] public string? TemplateId { get; set; } /// /// 备注 /// [SugarColumn(ColumnDescription = "备注", Length = 256, IsNullable = true)] [MaxLength(256)] public string? Remark { get; set; } }