using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Dtos.PersonnelModule
{
    public class TreeNode
    {
        public int Id { get; set; }
        public string Name { get; set; }
        /// <summary>
        /// 考核占比
        /// </summary>
        public decimal AssessmentProportion { get; set; }

        /// <summary>
        /// 评分标准
        /// </summary>
        public string AssessmentStandard { get; set; }

        /// <summary>
        /// 父编号
        /// </summary>
        public int ParentId { get; set; }

        /// <summary>
        /// 项目设置表id
        /// </summary>
        public int AssessmentSettingId { get; set; }

        /// <summary>
        /// 占比
        /// </summary>
        public decimal AssessmentProportionChi { get; set; }

        /// <summary>
        /// 目标值
        /// </summary>
        public string TargetValue { get; set; }

        /// <summary>
        /// 岗位id
        /// </summary>
        public int JobId { get; set; }

        /// <summary>
        /// 员工id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 固定标识 (1 是固定 2 是灵活)
        /// </summary>
        public int Fixed { get; set; }

        public List<TreeNode> Children { get; set; }

        public decimal AssessmentProportion_Percentage { get; set; }



        /// <summary>
        /// 年月份
        /// </summary>
        public DateTime YearMonth { get; set; }


        /// <summary>
        /// 达成情况
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 自评
        /// </summary>
        public decimal SelfAssessment { get; set; }

        /// <summary>
        /// 上级评分
        /// </summary>
        public decimal HigherUpAssessment { get; set; }

        /// <summary>
        /// 该项得分
        /// </summary>
        public decimal Score { get; set; }

        /// <summary>
        /// 绩效分
        /// </summary>
        public decimal ScoreTotal { get; set; }

        /// <summary>
        /// 上级确认
        /// </summary>
        public int HigherUpConfig { get; set; }

        /// <summary>
        /// 上级员工id
        /// </summary>
        public int HigherUpUserId { get; set; }

        /// <summary>
        /// 详细信息
        /// </summary>
        //public string Details { get; set; }

    }

    public class PerAssessmentSettingOperationDto
    {
        [Required(ErrorMessage = "项名称不能为空")]
        public string Name { get; set; }
        public decimal AssessmentProportion { get; set; }
        public string AssessmentStandard { get; set; }
        public int ParentId { get; set; }
        public int Id { get; set; }

        public int CreateId { get; set; }

        public string Remark { get; set; }
    }

    public class AssessmentSettingOperationContenDto
    {

        public int Id { get; set; }

        public int CreateUserId { get; set; }
        /// <summary>
        /// 项目设置表id
        /// </summary>
        public int AssessmentSettingId { get; set; }

        /// <summary>
        /// 占比
        /// </summary>
        public decimal AssessmentProportionChi { get; set; }

        /// <summary>
        /// 目标值
        /// </summary>
        public string TargetValue { get; set; }

        /// <summary>
        /// 岗位id
        /// </summary>
        public int JobId { get; set; }

        /// <summary>
        /// 员工id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 固定标识 (1 是固定 2 是灵活)
        /// </summary>
        public int Fixed { get; set; }

        public string Remark { get; set; }
    }

    public class QueryAssessmentSettingListOffsetAsyncDto 
    {
        public  int pageIndex { get; set; }
        
        public int pageSize { get; set; }

        public string SearchValue { get; set; }
    }

    public class QueryAssessmentByUser
    {
        public int UserId { get; set; }

        public string Start { get; set; }
        public string End { get; set; }
    }
}