using OASystem.Domain.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Entities.PersonnelModule
{
    /// <summary>
    /// 人事 任务单
    /// 任务分配关联人员(完成者)
    /// </summary>
    [SugarTable("Pm_TaskRelevanceUser")]
    public class Pm_TaskRelevanceUser: EntityBase
    {
        /// <summary>
        /// 任务表外键 Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int TAId { get; set; }

        /// <summary>
        /// 接受任务人员 Id
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int UserId { get; set; }

        /// <summary>
        /// 实际开始时间
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string? BeginTime { get; set; } = "";

        /// <summary>
        /// 实际结束时间
        /// 大于任务分配的预计结束时间 默认未完成 其他原因
        /// 大于任务分配的预计结束时间且未开始 默认未完成 原因 未开始
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
        public string? OverTime { get; set; } = "";

        /// <summary>
        /// 任务状态 
        /// -1 未开始 0 已知晓 1 进行中 2 待审核 3 未完成  4 已完成 5任务中止
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public TaskerEnum TaskStatus { get; set; } = TaskerEnum.NotStarted;

        /// <summary>
        /// 未完成原因
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
        public string? Cause { get; set; } = "";

        /// <summary>
        /// 评分 
        /// 0 未评分 1 不合格(0-5)  2  一般(5-6)  3 良好(7-9) 4 优秀(9-10)
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
        public int Score { get; set; } = 0;
    }
}
