using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using YGNT.Infrastructure.Model;
using YGNT.QuestionLibrary.Core.Models;

namespace YGNT.QuestionLibrary.Questions.Dto
{
    public class SearchQuestionInputDto : SearchBaseInputDto
    {
        public SearchQuestionInputDto()
        {
            KnowledgePointIdList = new List<long>();
            IncludeAncestor = false;
            IncludeChildChapter = true;
        }

        /// <summary>
        /// 学科id
        /// </summary>
        [Required]
        public int DisciplineId { get; set; }

        /// <summary>
        /// 题型Id
        /// </summary>
        public int? QuestionTypeId { get; set; }

        /// <summary>
        /// 学科细分题型Id
        /// </summary>
        public int? DisciplineQuestionTypeId { get; set; }

        /// <summary>
        /// 难度Id
        /// </summary>
        public Difficulty? Difficulty { get; set; }

        /// <summary>
        /// 是否激活
        /// </summary>
        public bool? IsActive { get; set; }

        /// <summary>
        /// 知识点id(不传查询全部)
        /// </summary>
        public List<long> KnowledgePointIdList { get; set; }

        /// <summary>
        /// 章节id(不传查询全部)
        /// </summary>
        public long? ChapterId { get; set; }

        /// <summary>
        /// 是否包括子章节(默认包括)
        /// </summary>
        public bool IncludeChildChapter { get; set; }

        /// <summary>
        /// 是否包括父级知识点(默认不包括)
        /// </summary>
        public bool IncludeAncestor { get; set; }

        /// <summary>
        /// 出题年份(范围开始)
        /// </summary>
        public DateTime? StartAriseTime { get; set; }



        /// <summary>
        /// 出题年份(范围结束)
        /// </summary>
        public DateTime? EndAriseTime { get; set; }
    }
}