using System; using System.Collections.Generic; namespace BetterGenshinImpact.Service.GearTask.Execution; /// /// GearTask 执行链路中的统一事件基类。 /// 执行器只负责发布事件,记录器、UI 投影和其他消费者按需订阅并消费。 /// public abstract class GearTaskExecutionEvent { /// /// 当前执行记录的唯一标识。 /// public string RecordId { get; set; } = string.Empty; /// /// 任务定义展示名。 /// public string TaskDefinitionName { get; set; } = string.Empty; /// /// 任务定义对应的安全文件名,用于历史记录目录划分。 /// public string TaskDefinitionFileKey { get; set; } = string.Empty; /// /// 任务树中的节点路径,例如 0/1/2。 /// public string NodeId { get; set; } = string.Empty; public string? ParentNodeId { get; set; } public string TaskName { get; set; } = string.Empty; public string TaskType { get; set; } = string.Empty; public string TaskPath { get; set; } = string.Empty; public int NodeDepth { get; set; } public int NodeOrder { get; set; } /// /// 事件发生时间,默认使用本地时间,便于直接展示在历史时间线中。 /// public DateTime Timestamp { get; set; } = DateTime.Now; /// /// 预留给具体任务类型的扩展字段,避免事件模型为了单个任务不断膨胀。 /// public Dictionary Extra { get; set; } = []; }