﻿
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace IoT3D.Framework.DataModel
{
    public class RealTimeEventItem
    {
        /// <summary>
        /// 遥测/遥信号
        /// </summary>
        public int Ycyxno { get; set; }
        /// <summary>
        /// 设备通讯故障	E
        /// 设备通讯恢复 e
        /// 设备状态故障 S
        /// 设备状态恢复 s
        /// 模拟量越限（遥测）	C
        /// 模拟量恢复（遥测）	c
        /// 状态量报警（遥信）	X
        /// 状态量恢复（遥信）	x
        /// </summary>
        public string Type { get; set; }
        /// <summary>
        /// 设备号
        /// </summary>
        public int Equipno { get; set; }
        /// <summary>
        /// 告警声音文件
        /// </summary>
        public string Wavefile { get; set; }
        /// <summary>
        /// 相关图片
        /// </summary>
        public string Related_pic { get; set; }
        /// <summary>
        /// 提示信息
        /// </summary>
        public string Proc_advice_Msg { get; set; }
        /// <summary>
        /// 发生时间
        /// </summary>
        public DateTime Time { get; set; }
        /// <summary>
        /// 事件信息
        /// </summary>
        public string EventMsg { get; set; }
        /// <summary>
        /// 确认时间
        /// </summary>
        public DateTime Dt_Confirmed { get; set; }
        /// <summary>
        /// 确认用户
        /// </summary>
        public string User_Confirmed { get; set; }
        /// <summary>
        /// 确认时间
        /// </summary>
        public DateTime DT_Confirm { get; set; }
        /// <summary>
        /// 确认用户
        /// </summary>
        public string User_confirm { get; set; }
        /// <summary>
        /// 是否已确认
        /// </summary>
        public bool bConfirmed { get; set; }
        /// <summary>
        /// 预案号
        /// </summary>
        public string planNo { get; set; }
        /// <summary>
        /// 关联视频
        /// </summary>
        public string related_video { get; set; }
        /// <summary>
        /// guid标识
        /// </summary>
        public string guid { get; set; }
        /// <summary>
        /// 资产ID
        /// </summary>
        public string ziChanID { get; set; }
        /// <summary>
        ///	SnapshotName SnapshotLevelMin SnapshotLevelMax
        ///	故障	     10003	            10004	
        /// 警告	       2	              9	
        ///	信息	       0	              1	
        ///	设置	     10001	            10001	
        /// 资产	     10002           	10002	
        /// </summary>
        public int Level
        {
            get { return level; }
            set
            {
                level = value;
                if (level >= 0 && level < 2)
                    eventLevel = EventLevel.None;
                if (level >= 2 && level < 10)
                    eventLevel = EventLevel.Warning;
                if (level == 10001)
                    eventLevel = EventLevel.None;
                if (level == 10002)
                    eventLevel = EventLevel.None;
                if (level == 10003 || level == 10004)
                    eventLevel = EventLevel.Error;
            }
        }
        private int level;
        /// <summary>
        /// 事件级别
        /// </summary>
        public EventLevel eventLevel { get; set; }
    }
    public enum EventLevel
    {
        Log = 0,
        Warning,
        Error,
        None
    }
    public class RealTimeEventItemConfirm
    {
        public RealTimeEventItem RealTimeEventItem { get => realTimeEventItem; }
        public Action<RealTimeEventItem> RealTimeEventItemChange { get => m_RealTimeEventItemChange; }

        private Action<RealTimeEventItem> m_RealTimeEventItemChange;
        private RealTimeEventItem realTimeEventItem;

        public RealTimeEventItemConfirm(RealTimeEventItem realTimeEventItem, Action<RealTimeEventItem> action)
        {
            this.realTimeEventItem = realTimeEventItem;
            this.m_RealTimeEventItemChange = action;
        }
    }
}

