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

namespace IRaCIS.Core.Application.ViewModel
{

	public class ReadingMedicineSystemQuestionView
	{
		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 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>ReadingMedicineSystemQuestionQuery  列表查询参数模型</summary>
	public class ReadingMedicineSystemQuestionQuery
	{
		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 class GetReadingMedicineTrialOtherQuestionOutDto
	{
		public Guid Id { get; set; }

		public string QuestionName { get; set; }

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

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

		public Guid Id { get; set; }
	}
	public class AddTrialDataFromSystemInDto
	{
		public Guid TrialId { get; set; }

		public List<Guid> SystemQuestionIds { get; set; }
	}

	public class ConfirmReadingMedicineQuestionInDto
    {
		[NotDefault]
		public Guid TrialId { get; set; }
	}

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

		public int ShowOrder { get; set; }


		public int? ParentShowOrder { get; set; }

	}

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

		public Guid? Id { get; set; }

		public int? ShowOrder { 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 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; }
	}

	public class ReadingMedicineTrialQuestionView
	 {
	 		public Guid Id { get; set; }
	 		public DateTime CreateTime { get; set; }
	 		public string Type { get; set; }
	 		public string ParentTriggerValue { get; set; }
	 		public string QuestionName { get; set; }
	 		public Guid UpdateUserId { get; set; }
	 		public string TypeValue { get; set; }
	 		public Guid CreateUserId { get; set; }
	 		public Guid TrialId { get; set; }
	 		public DateTime UpdateTime { 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 int?  ParentShowOrder { get; set; }
  	}


	public class GetMedicineQuestionPreviewInDto
	{
		public Guid TrialId { 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 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; }
	}

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

	}

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

	 
}