#region << 版 本 注 释 >>

/*--------------------------------------------------------------------
* 版权所有 (c) 2025 WenJY 保留所有权利。
* CLR版本：4.0.30319.42000
* 机器名称：Mr.Wen's MacBook Pro
* 命名空间：Sln.lmm.Collection.Model.CoreCommunications.Heartbeat
* 唯一标识：035F77CA-B714-4F86-B4BB-BB419017DD52
*
* 创建者：WenJY
* 电子邮箱：
* 创建时间：2025-10-16 11:29:33
* 版本：V1.0.0
* 描述：
*
*--------------------------------------------------------------------
* 修改人：
* 时间：
* 修改说明：
*
* 版本：V1.0.0
*--------------------------------------------------------------------*/

#endregion << 版 本 注 释 >>

namespace Sln.Iot.Model.api.Common.Fault
{
    /// <summary>
    /// 故障信息
    /// 设备当前激活的故障信息
    /// </summary>
    public class Fault
    {
        /// <summary>
        /// 错误发生的根本原因
        /// </summary>
        public FaultCause Cause { get; set; }
    
        /// <summary>
        /// 错误的等级划分
        /// 0=Information 1=Warning 2=Error(须停机) 3=Alarm(须停机)
        /// </summary>
        public FaultSeverity Severity { get; set; }
    
        /// <summary>
        /// 错误代码，请参考台达错误代码文件进行填写
        /// </summary>
        public string FaultCode { get; set; }
    
        /// <summary>
        /// 错误的唯一代码
        /// </summary>
        public Guid FaultOccurrenceId { get; set; }
    
        /// <summary>
        /// 错误发生轨道的描述
        /// </summary>
        public int? Lane { get; set; }
    
        /// <summary>
        /// 对于工位的描述
        /// </summary>
        public Stage.Stage Stage { get; set; }
    
        /// <summary>
        /// 错误发生的位置方位
        /// </summary>
        public SideLocation SideLocation { get; set; }
    
        /// <summary>
        /// 对于错误应在哪里处理的判断
        /// 0=Unknown 1=Ignore 现场处理 2=Local 派工处理 3=Remote 远程处理
        /// </summary>
        public AccessType AccessType { get; set; }
    
        /// <summary>
        /// 对于错误的描述须撰写英文
        /// </summary>
        public string Description { get; set; }
    
        /// <summary>
        /// 设置对不同语言错误描述翻译
        /// Key 为语言标签，Value 翻译
        /// Key 采用国际RFC 4646 标准
        /// </summary>
        public Dictionary<string, string> DescriptionTranslations { get; set; }
    
        /// <summary>
        /// 发生错误的时间点
        /// </summary>
        public DateTime OccurredAt { get; set; }
    
        /// <summary>
        /// 错误应处理的时间
        /// </summary>
        public DateTime? DueDateTime { get; set; }
    
        /// <summary>
        /// 由 WorkStarted 消息指定的相关事务 ID
        /// </summary>
        public Guid TransactionID { get; set; }
    
        /// <summary>
        /// 故障影响范围
        /// </summary>
        public FaultImpact Impact { get; set; }
    }
}