using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
{
    public class ReadingMedicineSystemQuestionView: ReadingMedicineSystemQuestionAddOrEdit
    {
       
        /// 
        /// 排序
        /// 
        public int? ParentShowOrder { get; set; }
    }
    ///ReadingMedicineSystemQuestionQuery  列表查询参数模型
    public class ReadingMedicineSystemQuestionQuery:PageInput
    {
        public string Type { get; set; } = string.Empty;
        public string ParentTriggerValue { get; set; } = string.Empty;
        public string QuestionName { get; set; } = string.Empty;
        public string TypeValue { get; set; } = string.Empty;
        public CriterionType? CurrentCriterionType { get; set; }
        public CriterionType? CriterionTypeEnum { get; set; }
        public bool? IsGeneral { get; set; }
        public Guid? TrialReadingCriterionId { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory? ReadingCategory { get; set; }
    }
    public class GetReadingMedicineTrialOtherQuestionOutDto
    {
        public Guid Id { get; set; }
        public string QuestionName { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory ReadingCategory { get; set; }
    }
    public class DeleteReadingMedicineTrialQuestion
    {
        public Guid TrialId { get; set; }
        public Guid Id { get; set; }
    }
    public class TrialDataFromSystem : ReadingMedicineTrialQuestion
    {
        public Guid SystemQuestionId { get; set; }
    }
    public class AddTrialDataFromSystemInDto
    {
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
        public List SystemQuestionIds { get; set; }
    }
    public class ConfirmReadingMedicineQuestionInDto
    {
        [NotDefault]
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
    }
    public class TrialQuestion
    {
        public Guid Id { get; set; }
        public int ShowOrder { get; set; }
        public int? ParentShowOrder { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory ReadingCategory { get; set; }
    }
    public class GetReadingMedicineSystemOtherQuestionInDto
    {
        public Guid? Id { get; set; }
        public int? ShowOrder { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory? ReadingCategory { get; set; }
    }
    /// 
    /// 获取项目的其他问题
    /// 
    public class GetReadingMedicineTrialOtherQuestionInDto
    {
        public Guid TrialId { get; set; }
        public Guid? Id { get; set; }
        public int? ShowOrder { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory? ReadingCategory { get; set; }
    }
    /// ReadingMedicineSystemQuestionAddOrEdit  列表查询参数模型
    public class ReadingMedicineSystemQuestionAddOrEdit
    {
        public Guid? Id { get; set; }
        /// 
        /// 类型
        /// 
        public string Type { get; set; }
        /// 
        /// 父问题触发
        /// 
        public string ParentTriggerValue { get; set; } = string.Empty;
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// 是否是必须
        /// 
        public bool IsRequired { get; set; }
        /// 
        /// 排序
        /// 
        public int ShowOrder { get; set; }
        /// 
        /// 父问题ID
        /// 
        public Guid? ParentId { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 是否启用
        /// 
        public bool IsEnable { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory ReadingCategory { get; set; }
        public CriterionType? CriterionTypeEnum { get; set; }
        public bool IsGeneral { get; set; }
    }
    public class ReadingMedicineTrialQuestionView : ReadingMedicineSystemQuestionAddOrEdit
    {
        public DateTime CreateTime { get; set; }
      
        public Guid UpdateUserId { get; set; }
        public Guid CreateUserId { get; set; }
        public Guid TrialId { get; set; }
        public DateTime UpdateTime { get; set; }
       
        public bool? IsConfirm { get; set; }
        public int? ParentShowOrder { get; set; }
    }
    public class GetMedicineQuestionPreviewInDto
    {
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory? ReadingCategory { get; set; }
    }
    public class GetMedicineQuestionPreviewOutDto
    {
        public Guid Id { get; set; }
        /// 
        /// 类型
        /// 	
        public string Type { get; set; }
        /// 
        /// 父问题触发值
        /// 
        public string ParentTriggerValue { get; set; } = string.Empty;
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 项目ID
        /// 
        public Guid TrialId { get; set; }
        /// 
        /// 是否启用
        /// 
        public bool IsEnable { get; set; }
        /// 
        /// 是否必须
        /// 
        public bool IsRequired { get; set; }
        /// 
        /// 排序
        /// 
        public int ShowOrder { get; set; }
        /// 
        /// 父问题
        /// 
        public Guid? ParentId { get; set; }
        /// 
        /// 是否确认
        /// 
        public bool? IsConfirm { get; set; }
        public List Childrens { get; set; }
    }
    ///ReadingMedicineTrialQuestionQuery  列表查询参数模型
    public class ReadingMedicineTrialQuestionQuery:PageInput
    {
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        public Guid TrialReadingCriterionId { get; set; }
        public string Type { get; set; } = string.Empty;
        public string ParentTriggerValue { get; set; } = string.Empty;
        public string QuestionName { get; set; } = string.Empty;
        public string TypeValue { get; set; } = string.Empty;
        /// 
        /// 任务类型
        /// 
        public ReadingCategory? ReadingCategory { get; set; }
    }
    /// ReadingMedicineTrialQuestionAddOrEdit  列表查询参数模型
    public class ReadingMedicineTrialQuestionAddOrEdit
    {
        public Guid? Id { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
        public string Type { get; set; }
        public string? ParentTriggerValue { get; set; } = string.Empty;
        public string QuestionName { get; set; }
        public string TypeValue { get; set; }
        public Guid TrialId { get; set; }
        public bool IsEnable { get; set; }
        public bool IsRequired { get; set; }
        public int ShowOrder { get; set; }
        public Guid? ParentId { get; set; }
        public bool? IsConfirm { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory ReadingCategory { get; set; }
    }
}