Files
OrpaonVision/OrpaonVision.Model/Production/RunStateTransitionLogModel.cs
2026-04-06 22:38:23 +08:00

134 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace OrpaonVision.Model.Production;
/// <summary>
/// 运行状态转换日志模型。
/// </summary>
public sealed class RunStateTransitionLogModel
{
/// <summary>
/// 日志ID。
/// </summary>
public Guid LogId { get; set; }
/// <summary>
/// 产品会话ID。
/// </summary>
public Guid SessionId { get; set; }
/// <summary>
/// 层级会话ID可选
/// </summary>
public Guid? LayerSessionId { get; set; }
/// <summary>
/// 转换前状态。
/// </summary>
public string FromState { get; set; } = string.Empty;
/// <summary>
/// 转换后状态。
/// </summary>
public string ToState { get; set; } = string.Empty;
/// <summary>
/// 触发事件。
/// </summary>
public string TriggerEvent { get; set; } = string.Empty;
/// <summary>
/// 转换原因。
/// </summary>
public string Reason { get; set; } = string.Empty;
/// <summary>
/// 转换类型。
/// </summary>
public RunStateTransitionType TransitionType { get; set; }
/// <summary>
/// 操作者ID。
/// </summary>
public string? OperatorId { get; set; }
/// <summary>
/// 操作者姓名。
/// </summary>
public string? OperatorName { get; set; }
/// <summary>
/// 是否人工干预。
/// </summary>
public bool IsManualIntervention { get; set; }
/// <summary>
/// 关联数据JSON格式
/// </summary>
public string? ContextJson { get; set; }
/// <summary>
/// 截图路径(可选)。
/// </summary>
public string? ScreenshotPath { get; set; }
/// <summary>
/// 转换时间UTC
/// </summary>
public DateTime TransitionAtUtc { get; set; }
/// <summary>
/// 处理耗时(毫秒)。
/// </summary>
public long ProcessingTimeMs { get; set; }
/// <summary>
/// 错误信息(如果有)。
/// </summary>
public string? ErrorMessage { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
}
/// <summary>
/// 运行状态转换类型。
/// </summary>
public enum RunStateTransitionType
{
/// <summary>
/// 自动转换。
/// </summary>
Automatic = 0,
/// <summary>
/// 人工干预。
/// </summary>
Manual = 1,
/// <summary>
/// 系统触发。
/// </summary>
System = 2,
/// <summary>
/// 错误恢复。
/// </summary>
ErrorRecovery = 3,
/// <summary>
/// 超时处理。
/// </summary>
Timeout = 4,
/// <summary>
/// 异常终止。
/// </summary>
Exception = 5
}