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

namespace APT.MS.Domain.Entities.FO
{
    /// <summary>
    /// 班前会议记录表
    /// </summary>
    [Description("班前会议记录表")]
    public class T_FO_PRE_SHIFT_MEETING_RECORD : MesEntityBase
    {
        [Description("编码")]
        [FormFieldEdit]
        [DataFieldLength(50)]
        public string CODE { get; set; }

        [Description("名称")]
        [FormFieldEdit]
        [DataFieldLength(50)]

        public string NAME { get; set; }
        [Description("会议时间")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        public DateTime MEETING_TIME { get; set; }

        [Description("上班开始时间")]
        [FormFieldEdit]
        public DateTime START_TIME { get; set; }

        [Description("上班结束时间")]
        [FormFieldEdit]
        public DateTime END_TIME { get; set; }

        [Description("班组当班工作内容")]
        [FormFieldEdit]
        [DataFieldLength(1000)]

        public string JOB_CONTENT { get; set; }

        [Description("安全注意事项及防护措施")]
        [FormFieldEdit]
        [DataFieldLength(1000)]

        public string PROTECT_MEASURE { get; set; }

        [Description("其他内容")]
        [FormFieldEdit]
        [DataFieldLength(1000)]

        public string OTHER_CONTENT { get; set; }

        [Description("完成进度")]
        [FormFieldTable]
        public string RATE { get; set; }

        [Description("班次")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Class")]
        public Guid? CLASS_ID { get; set; }
        [Description("导航:班次")]
        public T_FM_CLASS Nav_Class { get; set; }

        [Description("部门")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Department")]

        public Guid? DEPARTMENT_ID { get; set; }

        [Description("导航:部门")]
        public T_FM_DEPARTMENT Nav_Department { get; set; }
        [Description("班组")]
        [FormFieldTable]
        [FormFieldQuery]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_Team")]
        public Guid? TEAM_ID { get; set; }

        [Description("导航:班组")]
        public T_FM_TEAM Nav_Team { get; set; }

        /// <summary>
        /// 班前会议记录状态
        /// </summary>
        [EnumName("FOPreMeetingStatusEnum")]
        [Description("班前会议记录状态")]
        [FormFieldTable]
        [FormFieldQuery]
        public FOPreMeetingStatusEnum PRE_MEETING_STATUS { get; set; }

        [Description("主持人")]
        [FormFieldTable]
        [FormFieldEdit]
        [DataFieldForeignKey("Nav_User")]
        public Guid? USER_ID { get; set; }
        [Description("导航属性：主持人")]
        public T_FM_USER Nav_User { get; set; }

        [Description("导航：参会成员")]
        [FormFieldEdit]
        public ICollection<T_FO_PRE_SHIFT_MEETING_RECORD_USER> Nav_Users { get; set; }
        /// <summary>
        /// 头像文件
        /// </summary>
        [Description("导航：附件表")]
        public List<T_FO_PRE_SHIFT_MEETING_RECORD_FILE> Nav_Files { get; set; }
        [Description("是否超时")]
        public FOISOVERTIME OVERTIME { get; set; }

        [Description("是否跑批")]
        public WFDisableStatusEnum IS_RUN { get; set; }
        [DataFieldIngore]
        public int IS_OVERTIME { get; set; }
        [Description("排班信息表")]
        public Guid? DEPARTMENT_SCHEDULING_ID { get; set; }
    }
}
