From 8e039e657a43ff6cb00dfee310b98ef855359cc4 Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Sun, 14 Sep 2025 19:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E4=BF=AE=E6=94=B9=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/DbTriggerDefinition.cs | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 DMS.Infrastructure/Entities/DbTriggerDefinition.cs diff --git a/DMS.Infrastructure/Entities/DbTriggerDefinition.cs b/DMS.Infrastructure/Entities/DbTriggerDefinition.cs new file mode 100644 index 0000000..bc2ad3d --- /dev/null +++ b/DMS.Infrastructure/Entities/DbTriggerDefinition.cs @@ -0,0 +1,99 @@ +using System; +using DMS.Core.Models.Triggers; +using SqlSugar; +using SqlSugar.DbConvert; + +namespace DMS.Infrastructure.Entities; + +/// +/// 触发器定义实体类,对应数据库中的 TriggerDefinitions 表。 +/// +[SugarTable("TriggerDefinitions")] +public class DbTriggerDefinition +{ + /// + /// 触发器唯一标识符,主键。 + /// + [SugarColumn(IsPrimaryKey = true)] + public Guid Id { get; set; } + + /// + /// 关联的变量 ID。 + /// + public Guid VariableId { get; set; } + + /// + /// 触发器是否处于激活状态。 + /// + public bool IsActive { get; set; } = true; + + // --- 条件部分 --- + + /// + /// 触发条件类型。 + /// + [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))] + public ConditionType Condition { get; set; } + + /// + /// 阈值 (用于 GreaterThan, LessThan, EqualTo, NotEqualTo)。 + /// + [SugarColumn(IsNullable = true)] + public double? Threshold { get; set; } + + /// + /// 下限 (用于 InRange, OutOfRange)。 + /// + [SugarColumn(IsNullable = true)] + public double? LowerBound { get; set; } + + /// + /// 上限 (用于 InRange, OutOfRange)。 + /// + [SugarColumn(IsNullable = true)] + public double? UpperBound { get; set; } + + // --- 动作部分 --- + + /// + /// 动作类型。 + /// + [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))] + public ActionType Action { get; set; } + + /// + /// 动作配置 JSON 字符串,存储特定于动作类型的配置(如邮件收件人列表、模板 ID 等)。 + /// + [SugarColumn(Length = 2000, IsNullable = true)] + public string ActionConfigurationJson { get; set; } = "{}"; + + // --- 抑制与状态部分 --- + + /// + /// 抑制持续时间。如果设置了此值,在触发一次后,在该时间段内不会再触发。 + /// + [SugarColumn(IsNullable = true)] + public long? SuppressionDurationTicks { get; set; } + + /// + /// 上次触发的时间。用于抑制逻辑。 + /// + [SugarColumn(IsNullable = true)] + public DateTime? LastTriggeredAt { get; set; } + + /// + /// 触发器描述。 + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string Description { get; set; } = ""; + + /// + /// 创建时间。 + /// + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; + + /// + /// 最后更新时间。 + /// + public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; +} \ No newline at end of file