namespace IRaCIS.Application.Contracts
{
    public class TrialExperienceCommand
    {

        /// <summary>
        /// 数据类型
        /// </summary>
        public ExperienceDataType ExperienceDataType { get; set; }

        /// <summary>
        /// 适应症类型ID
        /// </summary>
        public Guid IndicationTypeId { get; set; } = Guid.Empty;

        /// <summary>
        /// 项目Id
        /// </summary>
        public Guid? TrialId { get; set; }

        /// <summary>
        /// 适应症的枚举
        /// </summary>
        public int IndicationEnum { get; set; } = -1;

        public Guid? Id { get; set; }

        public Guid DoctorId { get; set; }

        public Guid? PhaseId { get; set; }

        public DateTime? StartTime { get; set; }

        public DateTime? EndTime { get; set; }

        public string EvaluationContent { get; set; } = String.Empty;

        public int VisitReadingCount { get; set; }

        /// <summary>
        /// 其他分期
        /// </summary>
        public string OtherStages { get; set; } = string.Empty;

        /// <summary>
        /// 其他标准
        /// </summary>
        public string OtherCriterion { get; set; } = string.Empty;

        //public string Term { get; set; }

        //public string EvaluationCriteria { get; set; }

        public List<Guid> EvaluationCriteriaIdList { get; set; } = new List<Guid>();


    }

    public class GetTrialExperienceListInDto
    {
       public Guid DoctorId { get; set; }
       public Guid? TrialId { get; set; }
    }

    public class TrialExperienceListDTO : TrialExperienceCommand
    {
        public string Phase { get; set; } = String.Empty;



        /// <summary>
        /// 阅片标准
        /// </summary>
        public CriterionType? CriterionType { get; set; }

        public List<string> EvaluationCriteriaList { get; set; } = new List<string>();

    }

    //public class EvaluationCriteriaDTO
    //{
    //    public Guid EvaluationCriteriaId { get; set; }
    //    public string EvaluationCriteria { get; set; }
    //}

    public class TrialExperienceModelIndto
    {
        public Guid DoctorId { get; set; }

        public Guid? TrialId { get; set; }
    }

    public class TrialExperienceModel : GcpAndOtherExperienceDTO
    {
        public List<TrialExperienceListDTO> ClinicalTrialExperienceList = new List<TrialExperienceListDTO>();

        public string ExpiryDateStr { get; set; } = string.Empty;
        public string GCPFullPath { get; set; } = String.Empty;

    }


    public class GcpAndOtherExperienceDTO
    {
        public Guid Id { get; set; }

        public int GCP { get; set; }

        public Guid? GCPId { get; set; }

        /// <summary>
        /// GCP证书的时间
        /// </summary>
        public DateTime? GCPTime { get; set; }

        /// <summary>
        /// GCP机构
        /// </summary>
        public string GCPAgencies { get; set; }

        public string OtherClinicalExperience { get; set; } = String.Empty;
        public string OtherClinicalExperienceCN { get; set; } = String.Empty;

        public string Type { get; set; } = string.Empty;

        public string Path { get; set; } = string.Empty;

        public string FileName { get; set; } = string.Empty;

    }

    public class GCPExperienceCommand
    {
        public Guid Id { get; set; }
        public int GCP { get; set; }

        public Guid? GCPId { get; set; }

        /// <summary>
        /// GCP证书的时间
        /// </summary>
        public DateTime? GCPTime { get; set; }

        /// <summary>
        /// GCP机构
        /// </summary>
        public string GCPAgencies { get; set; }
    }

    public class ClinicalExperienceCommand
    {
        public Guid DoctorId { get; set; }

        public Guid? TrialId { get; set; }

        public string OtherClinicalExperience { get; set; } = String.Empty;
        public string OtherClinicalExperienceCN { get; set; } = String.Empty;
    }
}