using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Domain.Share;
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 LanguageType? LanguageType { get; set; }
        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 LanguageType LanguageType { get; set; } = LanguageType.Chinese;
        /// 
        /// 类型值
        /// 
        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 BatchDeteteCriterionMedicineQuestionInDto
    {
        public Guid TrialReadingCriterionId { get; set; }
        public List Ids { get; set; }
    }
    public class TrialDataFromSystem : ReadingMedicineTrialQuestion
    {
    }
    public class AddDefaultQuestionsInDto
    {
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
        public LanguageType LanguageType { 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; }
        /// 
        /// 类型
        /// 
        [DictionaryTranslate("QcType")] 
        public string Type { get; set; }
        /// 
        /// 父问题触发
        /// 
        public string ParentTriggerValue { get; set; } = string.Empty;
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// 语言类型
        /// 
        [DictionaryTranslate("LanguageType")]
        public LanguageType LanguageType { get; set; } = LanguageType.Chinese;
        /// 
        /// 是否是必须
        /// 
        [DictionaryTranslate("YesOrNo")] 
        public bool IsRequired { get; set; }
        /// 
        /// 排序
        /// 
        public int ShowOrder { get; set; }
        /// 
        /// 父问题ID
        /// 
        public Guid? ParentId { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 是否启用
        /// 
        [DictionaryTranslate("YesOrNo")]
        public bool IsEnable { get; set; }
        /// 
        /// 任务类型
        /// 
        [DictionaryTranslate("ReadingCategory")] 
        public ReadingCategory ReadingCategory { get; set; }
        [DictionaryTranslate("CriterionType")]
        public CriterionType? CriterionTypeEnum { get; set; }
        [DictionaryTranslate("YesOrNo")] 
        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 VerifyIsCanConfirmInDto
    {
        public Guid TrialReadingCriterionId { 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 LanguageType LanguageType { get; set; } = LanguageType.Chinese;
        /// 
        /// 类型值
        /// 
        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; }
    }
    public class EmptMedicineTrialQuestionInDto
    {
        public Guid TrialReadingCriterionId { 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 LanguageType? LanguageType { get; set; }
        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 LanguageType LanguageType { get; set; } = LanguageType.Chinese;
        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; }
    }
}