feat: 扩展领域模型与配置

This commit is contained in:
贺爱泽
2025-12-01 13:26:05 +08:00
parent a08804658b
commit 5ddad07658
148 changed files with 8519 additions and 2 deletions

View File

@@ -0,0 +1,35 @@
using TakeoutSaaS.Domain.Analytics.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Analytics.Entities;
/// <summary>
/// 指标告警规则。
/// </summary>
public sealed class MetricAlertRule : MultiTenantEntityBase
{
/// <summary>
/// 关联指标。
/// </summary>
public Guid MetricDefinitionId { get; set; }
/// <summary>
/// 触发条件 JSON。
/// </summary>
public string ConditionJson { get; set; } = string.Empty;
/// <summary>
/// 告警级别。
/// </summary>
public MetricAlertSeverity Severity { get; set; } = MetricAlertSeverity.Warning;
/// <summary>
/// 通知渠道。
/// </summary>
public string NotificationChannels { get; set; } = "email";
/// <summary>
/// 是否启用。
/// </summary>
public bool Enabled { get; set; } = true;
}

View File

@@ -0,0 +1,34 @@
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Analytics.Entities;
/// <summary>
/// 指标定义,描述可观测的数据点。
/// </summary>
public sealed class MetricDefinition : MultiTenantEntityBase
{
/// <summary>
/// 指标编码。
/// </summary>
public string Code { get; set; } = string.Empty;
/// <summary>
/// 指标名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 说明。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 维度描述 JSON。
/// </summary>
public string? DimensionsJson { get; set; }
/// <summary>
/// 默认聚合方式。
/// </summary>
public string DefaultAggregation { get; set; } = "sum";
}

View File

@@ -0,0 +1,34 @@
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Analytics.Entities;
/// <summary>
/// 指标快照,用于大盘展示。
/// </summary>
public sealed class MetricSnapshot : MultiTenantEntityBase
{
/// <summary>
/// 指标定义 ID。
/// </summary>
public Guid MetricDefinitionId { get; set; }
/// <summary>
/// 维度键JSON
/// </summary>
public string DimensionKey { get; set; } = string.Empty;
/// <summary>
/// 统计时间窗口开始。
/// </summary>
public DateTime WindowStart { get; set; }
/// <summary>
/// 统计时间窗口结束。
/// </summary>
public DateTime WindowEnd { get; set; }
/// <summary>
/// 数值。
/// </summary>
public decimal Value { get; set; }
}

View File

@@ -0,0 +1,22 @@
namespace TakeoutSaaS.Domain.Analytics.Enums;
/// <summary>
/// 指标告警严重程度。
/// </summary>
public enum MetricAlertSeverity
{
/// <summary>
/// 信息提示。
/// </summary>
Info = 0,
/// <summary>
/// 告警。
/// </summary>
Warning = 1,
/// <summary>
/// 严重。
/// </summary>
Critical = 2
}