using System;
using System.Collections.Generic;
using Abp.Application.Services.Dto;
using Mapster;
using YGNT.QuestionLibrary.Core.BaseData;
using YGNT.QuestionLibrary.Core.BaseData.Enum;
using YGNT.QuestionLibrary.Core.Tasks.Enum;
using YGNT.QuestionLibrary.KnowledgePoints.Dto;

namespace YGNT.QuestionLibrary.Questions.Dto
{
    public class QuestionDto : EntityDto<long>
    {
        /// <summary>
        /// 试题简称
        /// </summary>
        public string ShortName { get; set; }

        /// <summary>
        /// 试题html
        /// </summary>
        public string Html { get; set; }

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

        /// <summary>
        /// 所属学科id
        /// </summary>
        public int DisciplineId { get; set; }

        /// <summary>
        /// 所属学科
        /// </summary>
        [AdaptIgnore]
        public string Discipline { get; set; }

        /// <summary>
        /// 题型
        /// </summary>
        [AdaptIgnore]
        public string QuestionType { get; set; }

        /// <summary>
        /// 题型类别
        /// </summary>
        public QuestionCategory QuestionCategory { get; set; }

        /// <summary>
        /// 试题转换状态
        /// </summary>
        public QuestionConvertState QuestionConvertState { get; set; }

        /// <summary>
        /// 转换失败信息
        /// </summary>
        public string ConvertFailMessage { get; set; }

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

        /// <summary>
        /// 学科细分题型
        /// </summary>
        [AdaptIgnore]
        public string DisciplineQuestionType { get; set; }

        /// <summary>
        /// 难度
        /// </summary>
        [AdaptIgnore]
        public string Difficulty { get; set; }

        /// <summary>
        /// 出题年份
        /// </summary>
        public DateTime? AriseTime { get; set; }

        /// <summary>
        /// 考点
        /// </summary>
        public string CheckPoints { get; set; }

        /// <summary>
        /// 答案html
        /// </summary>
        public string Answer { get; set; }

        /// <summary>
        /// 解析html
        /// </summary>
        public string Analysis { get; set; }

        /// <summary>
        /// 章节
        /// </summary>
        [AdaptIgnore]
        public string Chapter { get; set; }

        /// <summary>
        /// 知识点
        /// </summary>
        public List<KnowledgePointDto> KnowledgePoints { get; set; }
    }
}