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 int ContentId { 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 string 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; }
    }

    public class SaveUserAssessmenDto
    {
        /// <summary>
        /// 创建人id
        /// </summary>
        public int CreateUserId { get; set; }

        /// <summary>
        /// 绩效日期
        /// </summary>
        public string AssessmenData { get; set; }


        /// <summary>
        /// 被评估人id
        /// </summary>
        public int AssessmenUserId { get; set; }

        /// <summary>
        /// 绩效数据
        /// </summary>
        public List<itemScore> Data { get; set; }
    }

    public class itemScore
    {
        //public int ScoreId { get; set; }
        /// <summary>
        /// 内容项id
        /// </summary>
        public int AssessmentContentSettingId {  get; set; }

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

        /// <summary>
        /// 上级评分
        /// </summary>

        public decimal HigherUpAssessment { get; set; }

        /// <summary>
        /// 上级领导id
        /// </summary>

        public int LeadersId { get; set; }
        
        /// <summary>
        /// 评估标准
        /// </summary>

        public string Status { get; set; }

    }

    public class DeleteAssessmentSettingDto
    {
        public List<int> IdArr { get; set;}

        public int UserId { get; set;}
    }
}