refactor(monitoring): 重构监控模块领域实体结构
- 将 AlertRule 实体移至 AlertRule 子命名空间并重命名为 AlertRuleEntity - 将 ExternalSystem 实体移至 ExternalSystem 子命名空间并重命名为 ExternalSystemEntity - 将 SyncedRecord 实体移至 SyncedRecord 子命名空间并重命名为 SyncedRecordEntity - 将 SyncJob 实体移至 SyncJob 子命名空间并重命名为 SyncJobEntity - 新增 CredentialEntry 值对象用于凭证管理 - 新增 JobData 值对象用于同步任务数据投影 - 新增 RecordData 值对象用于同步记录数据投影 - 新增 RuleData 值对象用于告警规则数据投影 - 新增 SystemData 值对象用于外部系统配置数据投影 - 统一值对象存放至 Domain/Values 目录 - 更新实体命名空间引用路径 - 修改 SyncJobStatus 枚举名为 SyncJobStatusEnum
This commit is contained in:
parent
5332ff3867
commit
a11330936a
@ -1,14 +1,14 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json;
|
||||
using Monitoring.Domain.Enums;
|
||||
using Monitoring.Domain.Values;
|
||||
|
||||
namespace Monitoring.Domain.Entities;
|
||||
namespace Monitoring.Domain.Entities.AlertRule;
|
||||
|
||||
/// <summary>
|
||||
/// 告警规则实体。id + 外部系统Id索引列 + json_data + 审计列。
|
||||
/// jsonb 承载规则名称/指标名/阈值/运算符/严重级别/启用/冷却/触发时间。
|
||||
/// </summary>
|
||||
public class AlertRule : BaseEntity, IFullAudit
|
||||
public class AlertRuleEntity : BaseEntity, IFullAudit
|
||||
{
|
||||
/// <summary>绑定的外部系统 Id(索引列)。</summary>
|
||||
public Guid ExternalSystemId { get; set; }
|
||||
@ -1,15 +1,16 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json;
|
||||
using Monitoring.Domain.Enums;
|
||||
using Monitoring.Domain.Values;
|
||||
|
||||
namespace Monitoring.Domain.Entities;
|
||||
namespace Monitoring.Domain.Entities.ExternalSystem;
|
||||
|
||||
/// <summary>
|
||||
/// 外部系统配置实体。极简文档模式:id + 必要索引列 + json_data + 审计列。
|
||||
/// 所有可变/扩展字段(名称/类型/URL/参数/凭证/同步状态)统一存 JsonData(jsonb),
|
||||
/// 通过 <see cref="Data"/> 强类型访问,避免列爆炸。
|
||||
/// </summary>
|
||||
public class ExternalSystem : BaseEntity, IFullAudit
|
||||
public class ExternalSystemEntity : BaseEntity, IFullAudit
|
||||
{
|
||||
/// <summary>
|
||||
/// 业务数据(jsonb)。承载名称/类型/BaseUrl/参数/凭证/同步状态等全部业务字段。
|
||||
@ -1,20 +1,21 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json;
|
||||
using Monitoring.Domain.Enums;
|
||||
using Monitoring.Domain.Values;
|
||||
|
||||
namespace Monitoring.Domain.Entities;
|
||||
namespace Monitoring.Domain.Entities.SyncJob;
|
||||
|
||||
/// <summary>
|
||||
/// 同步任务记录实体。id + 外部系统Id + 状态/时间索引列 + json_data + 审计列。
|
||||
/// jsonb 承载触发来源/汇总指标/错误信息。
|
||||
/// </summary>
|
||||
public class SyncJob : BaseEntity, IFullAudit
|
||||
public class SyncJobEntity : BaseEntity, IFullAudit
|
||||
{
|
||||
/// <summary>目标外部系统 Id(索引列,高频查询)。</summary>
|
||||
public Guid ExternalSystemId { get; set; }
|
||||
|
||||
/// <summary>任务状态(索引列,统计成功率/查 Failed 排查)。</summary>
|
||||
public SyncJobStatus Status { get; set; } = SyncJobStatus.Pending;
|
||||
public SyncJobStatusEnum Status { get; set; } = SyncJobStatusEnum.Pending;
|
||||
|
||||
/// <summary>开始时间(UTC)。</summary>
|
||||
public DateTime? StartedAt { get; set; }
|
||||
@ -1,14 +1,15 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Text.Json;
|
||||
using Monitoring.Domain.Values;
|
||||
|
||||
namespace Monitoring.Domain.Entities;
|
||||
namespace Monitoring.Domain.Entities.SyncedRecord;
|
||||
|
||||
/// <summary>
|
||||
/// 同步记录实体。id + 外部系统Id/类型/去重键/发生时间索引列 + json_data + 审计列。
|
||||
/// jsonb 承载从外部拉取的原始业务数据(已换算,如金额分→元)。
|
||||
/// (ExternalSystemId, ExternalId) 由 Connector 保证幂等,重复拉取只保留最新快照。
|
||||
/// </summary>
|
||||
public class SyncedRecord : BaseEntity, IFullAudit
|
||||
public class SyncedRecordEntity : BaseEntity, IFullAudit
|
||||
{
|
||||
/// <summary>来源外部系统 Id(索引列)。</summary>
|
||||
public Guid ExternalSystemId { get; set; }
|
||||
20
src/modules/monitoring/Domain/Values/CredentialEntry.cs
Normal file
20
src/modules/monitoring/Domain/Values/CredentialEntry.cs
Normal file
@ -0,0 +1,20 @@
|
||||
namespace Monitoring.Domain.Entities;
|
||||
|
||||
/// <summary>凭证条目(内聚于 SystemData,无独立表)。</summary>
|
||||
public class CredentialEntry
|
||||
{
|
||||
/// <summary>类型:Cookie / Header / BearerToken / Query。</summary>
|
||||
public string Type { get; set; } = default!;
|
||||
|
||||
/// <summary>键名(Cookie 名/Header 名/参数名)。</summary>
|
||||
public string Key { get; set; } = default!;
|
||||
|
||||
/// <summary>值。TODO 后续加密。</summary>
|
||||
public string Value { get; set; } = default!;
|
||||
|
||||
/// <summary>是否启用。</summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>备注。</summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
14
src/modules/monitoring/Domain/Values/JobData.cs
Normal file
14
src/modules/monitoring/Domain/Values/JobData.cs
Normal file
@ -0,0 +1,14 @@
|
||||
namespace Monitoring.Domain.Entities;
|
||||
|
||||
/// <summary>同步任务 json_data 投影。</summary>
|
||||
public class JobData
|
||||
{
|
||||
/// <summary>触发来源:scheduler / manual。</summary>
|
||||
public string TriggerSource { get; set; } = "scheduler";
|
||||
|
||||
/// <summary>汇总指标(Connector 产出,如 {order_count:8283, actual_rent:9813.80})。</summary>
|
||||
public Dictionary<string, object?> SummaryMetrics { get; set; } = new();
|
||||
|
||||
/// <summary>错误信息(成功时为 null)。</summary>
|
||||
public string? ErrorMessage { get; set; }
|
||||
}
|
||||
14
src/modules/monitoring/Domain/Values/RecordData.cs
Normal file
14
src/modules/monitoring/Domain/Values/RecordData.cs
Normal file
@ -0,0 +1,14 @@
|
||||
namespace Monitoring.Domain.Entities;
|
||||
|
||||
/// <summary>同步记录 json_data 投影:拉取到的外部原始数据。</summary>
|
||||
public class RecordData
|
||||
{
|
||||
/// <summary>记录类型:order / finance / metric(由 Connector 定义)。</summary>
|
||||
public string RecordType { get; set; } = default!;
|
||||
|
||||
/// <summary>外部业务 Id(订单号/流水号)。</summary>
|
||||
public string ExternalId { get; set; } = default!;
|
||||
|
||||
/// <summary>原始数据(已换算后的业务字段,如金额已从分转元)。</summary>
|
||||
public Dictionary<string, object?> Payload { get; set; } = new();
|
||||
}
|
||||
31
src/modules/monitoring/Domain/Values/RuleData.cs
Normal file
31
src/modules/monitoring/Domain/Values/RuleData.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using Monitoring.Domain.Enums;
|
||||
|
||||
namespace Monitoring.Domain.Entities;
|
||||
|
||||
/// <summary>告警规则 json_data 投影。</summary>
|
||||
public class RuleData
|
||||
{
|
||||
/// <summary>规则名称。</summary>
|
||||
public string Name { get; set; } = default!;
|
||||
|
||||
/// <summary>监控指标名(对应 JobData.SummaryMetrics 的键)。</summary>
|
||||
public string MetricName { get; set; } = default!;
|
||||
|
||||
/// <summary>比较运算符:gt/gte/lt/lte/eq。</summary>
|
||||
public string Operator { get; set; } = "gt";
|
||||
|
||||
/// <summary>阈值。</summary>
|
||||
public string Threshold { get; set; } = default!;
|
||||
|
||||
/// <summary>严重级别。</summary>
|
||||
public AlertSeverity Severity { get; set; } = AlertSeverity.Warning;
|
||||
|
||||
/// <summary>是否启用。</summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>触发冷却(秒)。</summary>
|
||||
public int CooldownSeconds { get; set; } = 3600;
|
||||
|
||||
/// <summary>最近触发时间(UTC 毫秒时间戳)。</summary>
|
||||
public long? LastTriggeredAt { get; set; }
|
||||
}
|
||||
38
src/modules/monitoring/Domain/Values/SystemData.cs
Normal file
38
src/modules/monitoring/Domain/Values/SystemData.cs
Normal file
@ -0,0 +1,38 @@
|
||||
using Monitoring.Domain.Enums;
|
||||
|
||||
namespace Monitoring.Domain.Values;
|
||||
|
||||
/// <summary>
|
||||
/// 外部系统 json_data 投影:承载可变/扩展字段。
|
||||
/// 凭证(Cookie/Header/Token)也内聚于此,避免单独建表;Credentials 列表为空时表示无凭证。
|
||||
/// Parameters 承载 Connector 专属配置(如 u号租的 sellerId/lookbackDays)。
|
||||
/// </summary>
|
||||
public class SystemData
|
||||
{
|
||||
/// <summary>系统显示名称。</summary>
|
||||
public string Name { get; set; } = default!;
|
||||
|
||||
/// <summary>系统类型:1=UHaoZu, 100=GenericHttp。</summary>
|
||||
public ExternalSystemTypeEnum SystemType { get; set; }
|
||||
|
||||
/// <summary>Base URL。</summary>
|
||||
public string BaseUrl { get; set; } = default!;
|
||||
|
||||
/// <summary>轮询间隔(秒),0=用默认。</summary>
|
||||
public int PollIntervalSeconds { get; set; }
|
||||
|
||||
/// <summary>是否启用。</summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>Connector 专属参数(如 sellerId/lookbackDays)。</summary>
|
||||
public Dictionary<string, string?> Parameters { get; set; } = new();
|
||||
|
||||
/// <summary>凭证列表(Cookie/Header/Token),不再单独建表。</summary>
|
||||
public List<CredentialEntry> Credentials { get; set; } = new();
|
||||
|
||||
/// <summary>最近同步时间(UTC 毫秒时间戳)。</summary>
|
||||
public long? LastSyncedAt { get; set; }
|
||||
|
||||
/// <summary>最近同步任务 Id。</summary>
|
||||
public Guid? LastSyncJobId { get; set; }
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user