using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.HM;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace APT.MS.Domain.Entities.BS
{
    /// <summary>
    /// 检查明细人员
    /// </summary>
    [Description("检查明细人员")]
    public class T_BS_SAFE_CHECK_DETAIL_USER : MesEntityBase
    {
        /// <summary>
        /// 安全检查 冗余字段
        /// </summary>
        [Description("安全检查")]
        [DataFieldForeignKey("Nav_SafeCheck")]
        public Guid SAFE_CHECK_ID { get; set; }

        /// <summary>
        /// 导航：安全检查
        /// </summary>
        [Description("导航：安全检查")]
        public virtual T_BS_SAFE_CHECK Nav_SafeCheck { get; set; }

        /// <summary>
        /// 检查明细
        /// </summary>
        [Description("检查明细")]
        [DataFieldForeignKey("Nav_SafeCheckDetail", "Nav_ListCheckDetailUser")]
        public Guid SAFE_CHECK_DETAIL_ID { get; set; }

        /// <summary>
        /// 导航：检查明细
        /// </summary>
        [Description("导航：检查明细")]
        public virtual T_BS_SAFE_CHECK_DETAIL Nav_SafeCheckDetail { get; set; }

        /// <summary>
        /// 检查明细人员
        /// </summary>
        [Description("检查明细人员")]
        [DataFieldForeignKey("Nav_User")]
        [FormFieldEdit]
        public Guid USER_ID { get; set; }

        /// <summary>
        /// 导航属性：检查明细人员
        /// </summary>
        [Description("导航：检查明细人员")]
        public virtual T_FM_USER Nav_User { get; set; }



        /// <summary>
        /// 安全检查操作状态 默认未查看
        /// </summary>
        [Description("安全检查操作状态")]
        [EnumName("SAFECHECKSTATEEnum")]
        public int? SAFECHECKSTATE { get; set; } = 10;

        /// <summary>
        /// 是否主要检查（有操作权限）
        /// </summary>
        [Description("是否主要检查")]
        public bool ISMAINCHECK { get; set; } = false;

        /// <summary>
        /// 是否与主检查写的一致（现在都是要一样）
        /// </summary>
        [Description("是否与主检查写的一致")]
        public bool? ISSAMEMAINCHECKOK { get; set; }

        /// <summary>
        /// 不一致原因(暂时这个不需要，都是一致)
        /// </summary>
        [Description("不一致原因")]
        public int? CHECKFALSEREASON { get; set; }

        /// <summary>
        /// 是否签名（如果是主要检查，填写了就确认）
        /// </summary>
        [Description("是否确认")]
        public bool ISCHECK { get; set; } = false;

        /// <summary>
        /// 确认时间
        /// </summary>
        [Description("确认时间")]
        public DateTime? CHECKTIME { get; set; }
    }
}