using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace IRaCIS.Core.Application.ViewModel
{

    public class ReadingMedicineSystemQuestionView: ReadingMedicineSystemQuestionAddOrEdit
    {
       

        /// <summary>
        /// 排序
        /// </summary>
        public int? ParentShowOrder { get; set; }
    }

    ///<summary>ReadingMedicineSystemQuestionQuery  列表查询参数模型</summary>
    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;

		/// <summary>
		/// 语言类型
		/// </summary>
		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; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory? ReadingCategory { get; set; }




    }


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

        public string QuestionName { get; set; }

		/// <summary>
		/// 语言类型
		/// </summary>
		public LanguageType LanguageType { get; set; } = LanguageType.Chinese;

		/// <summary>
		/// 类型值
		/// </summary>
		public string TypeValue { get; set; }

        /// <summary>
        /// 任务类型
        /// </summary>
        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<Guid> 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<Guid> 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; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory ReadingCategory { get; set; }
    }

    public class GetReadingMedicineSystemOtherQuestionInDto
    {
        public Guid? Id { get; set; }



        public int? ShowOrder { get; set; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory? ReadingCategory { get; set; }

    }

    /// <summary>
    /// 获取项目的其他问题
    /// </summary>
    public class GetReadingMedicineTrialOtherQuestionInDto
    {
        public Guid TrialId { get; set; }

        public Guid? Id { get; set; }

        public int? ShowOrder { get; set; }


        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory? ReadingCategory { get; set; }
    }


    ///<summary> ReadingMedicineSystemQuestionAddOrEdit  列表查询参数模型</summary>
    public class ReadingMedicineSystemQuestionAddOrEdit
    {
        public Guid? Id { get; set; }

        /// <summary>
        /// 类型
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// 父问题触发
        /// </summary>
        public string ParentTriggerValue { get; set; } = string.Empty;

        /// <summary>
        /// 问题名称
        /// </summary>
        public string QuestionName { get; set; }

		/// <summary>
		/// 语言类型
		/// </summary>
		public LanguageType LanguageType { get; set; } = LanguageType.Chinese;

		/// <summary>
		/// 是否是必须
		/// </summary>
		public bool IsRequired { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int ShowOrder { get; set; }

        /// <summary>
        /// 父问题ID
        /// </summary>
        public Guid? ParentId { get; set; }

        /// <summary>
        /// 类型值
        /// </summary>
        public string TypeValue { get; set; }

        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnable { get; set; }

        /// <summary>
        /// 任务类型
        /// </summary>
        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; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory? ReadingCategory { get; set; }
    }

    public class VerifyIsCanConfirmInDto
    {
		public Guid TrialReadingCriterionId { get; set; }
	}

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

        /// <summary>
        /// 类型
        /// </summary>	
        public string Type { get; set; }

        /// <summary>
        /// 父问题触发值
        /// </summary>
        public string ParentTriggerValue { get; set; } = string.Empty;

        /// <summary>
        /// 问题名称
        /// </summary>
        public string QuestionName { get; set; }

		/// <summary>
		/// 语言类型
		/// </summary>
		public LanguageType LanguageType { get; set; } = LanguageType.Chinese;

		/// <summary>
		/// 类型值
		/// </summary>
		public string TypeValue { get; set; }



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



        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnable { get; set; }

        /// <summary>
        /// 是否必须
        /// </summary>
        public bool IsRequired { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int ShowOrder { get; set; }

        /// <summary>
        /// 父问题
        /// </summary>
        public Guid? ParentId { get; set; }

        /// <summary>
        /// 是否确认
        /// </summary>
        public bool? IsConfirm { get; set; }

        public List<GetMedicineQuestionPreviewOutDto> Childrens { get; set; }
    }

    public class EmptMedicineTrialQuestionInDto
    {
        public Guid TrialReadingCriterionId { get; set; }
    }

    ///<summary>ReadingMedicineTrialQuestionQuery  列表查询参数模型</summary>
    public class ReadingMedicineTrialQuestionQuery:PageInput
    {
        /// <summary>
        /// 项目Id
        /// </summary>
        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;

		/// <summary>
		/// 语言类型
		/// </summary>
		public LanguageType? LanguageType { get; set; }

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

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory? ReadingCategory { get; set; }

    }

    ///<summary> ReadingMedicineTrialQuestionAddOrEdit  列表查询参数模型</summary>
    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; }

		/// <summary>
		/// 语言类型
		/// </summary>
		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; }

        /// <summary>
        /// 任务类型
        /// </summary>
        public ReadingCategory ReadingCategory { get; set; }
    }


}