using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace APT.MS.Domain.Entities.OG
{
    /// <summary>
    /// 考核记录详情
    /// </summary>
    [Description("考核记录详情")]
    public class T_OG_SAFE_ASSESS_RECORD_DETAIL : MesEntityBase
    {
        /// <summary>
        /// 考核记录ID
        /// </summary>
        [Description("考核记录")]
        [DataFieldForeignKey("Nav_SafeAssessRecord", "Nav_Details")]
        public Guid SAFE_ASSESS_RECORD_ID { get; set; }

        /// <summary>
        /// 导航: 考核记录
        /// </summary>
        [Description("导航: 考核记录")]
        public T_OG_SAFE_ASSESS_RECORD Nav_SafeAssessRecord { get; set; }

        /// <summary>
        /// 被考核员工ID
        /// </summary>
        [Description("被考核员工")]
        [DataFieldForeignKey("Nav_User")]
        [FormFieldEdit]
        public Guid? USER_ID { get; set; }

        /// <summary>
        /// 导航: 被考核员工
        /// </summary>
        [Description("导航: 被考核员工")]
        public T_FM_USER Nav_User { get; set; }

        /// <summary>
        /// 被考核岗位ID
        /// </summary>
        [Description("责任制岗位")]
        [DataFieldForeignKey("Nav_Post")]
        [FormFieldEdit]
        public Guid? POST_ID { get; set; }

        /// <summary>
        /// 导航: 被考核岗位
        /// </summary>
        [Description("导航: 责任制岗位")]
        public T_SC_POST Nav_Post { get; set; }

        /// <summary>
        /// 导航: 考核记录项目
        /// </summary>
        [Description("导航: 考核记录项目")]
        [FormFieldEdit]
        public ICollection<T_OG_SAFE_ASSESS_RECORD_ITEM> Nav_SafeAssessRecordItem { get; set; }

        /// <summary>
        /// 奖惩措施
        /// </summary>
        [Description("奖惩措施")]
        [FormFieldEdit]
        [DataFieldLength(200)] 
        public string REWARD_PUNISHMENT_MEASURES { get; set; }
        [Description("处理状态")]
        [EnumName("FOUserShiftStatusEnum")]     //为枚举（0待处理 1已处理）
        public FOUserShiftStatusEnum DEAL_STATUS { get; set; }
    }
}