//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-06-07 13:16:33 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace IRaCIS.Core.Application.ViewModel
{
    /// <summary> TaskAllocationRuleView  列表视图模型 </summary>
    public class TaskAllocationRuleView : TaskAllocationRuleAddOrEdit
    {
        public string UserCode { get; set; }
        public string UserName { get; set; }
        public string FullName { get; set; }

        public string UserTypeShortName { get; set; }

        public Guid CreateUserId { get; set; }
        public DateTime CreateTime { get; set; }
        public DateTime UpdateTime { get; set; }
        public Guid UpdateUserId { get; set; }






        //该医生已经应用的 Subject数量
        public int? SelfApplyedSubjectCount { get; set; }

        //该医生已经分配Subject数量
        public int? SelfSubjectCount { get; set; }


        //该医生未应用Subject 数量    不是两者相减  跟批量勾选有关系
        public int? WaitApplySelfSubjectCount { get; set; }




        //该医生已应用的任务数
        public int? SelfTaskCount { get; set; }

        //已分配但是未读片签名的数量
        public int? SelfUndoTaskCount { get; set; }

        //该医生未应用的任务数
        public int? WaitApplySelfTaskCount { get; set; }



        //总共已应用 的Subject 数
        public int? ApplyedTotalSubjectCount { get; set; }

        //未应用的Subejct 数量
        public int? WaitApplyTotalSubjectCount { get; set; }

        //系统  Subject数
        public int? TotalSubjectCount { get; set; }

        //总任务数
        public int? TotalTaskCount { get; set; }

        //总共 已经应用的任务总数
        public int? ApplyedTotalTaskCount { get; set; }




    }






    public class AllocateInfo
    {
        public int? TotalTaskCount { get; set; }

        public int? SelfTaskCount { get; set; }

        public int PlanReadingRatio { get; set; }

        public Guid DoctorUserId { get; set; }

        //public List<int> ArmList { get; set; } = new List<int>();

        //public double? TargetCount => TotalTaskCount * PlanReadingRatio * 0.01;

        //public double? Diff => TargetCount - SelfTaskCount;


    }


    ///<summary>TaskAllocationRuleQuery  列表查询参数模型</summary>
    public class TaskAllocationRuleQuery
    {
        [NotDefault]
        public Guid TrialId { get; set; }
    }

    ///<summary> TaskAllocationRuleAddOrEdit  列表查询参数模型</summary>
    public class TaskAllocationRuleAddOrEdit
    {
        public Guid? Id { get; set; }
        public Guid TrialId { get; set; }
        public int PlanReadingRatio { get; set; }
        public Guid DoctorUserId { get; set; }
        public bool IsEnable { get; set; }
        public string Note { get; set; } = string.Empty;
    }

    public class  TrialDoctorUserSelectView
    {
        public Guid TrialId { get; set; }

        public ReadingMethod ReadingType { get; set; }

        public Guid? DoctorUserId { get; set; }

        public string UserCode { get; set; }

        public string UserName { get; set; }

        public string FullName { get; set; }

        public UserTypeEnum UserTypeEnum { get; set; }
    }


}