using System.ComponentModel;
using Hotline.Exams.Base;
using Hotline.Share.Enums.Exams;
using SqlSugar;

namespace Hotline.Exams.Practices
{
    /// <summary>
    /// 练习题目
    /// </summary>
    [Description("练习题目")]
    public class ExamPracticeQuestion:ExamBusinessEntity
    {
        /// <summary>
        /// 练习Id
        /// </summary>
        [SugarColumn(ColumnDescription ="练习Id")]
        [Description("练习Id")]
        public string PracticeId { get; set; }

        /// <summary>
        /// 试题Id
        /// </summary>
        [SugarColumn(ColumnDescription ="试题Id")]
        [Description("试题Id")]
        public string QuestionId { get; set; }

        /// <summary>
        /// 题干
        /// </summary>
        [SugarColumn(ColumnDescription = "题干")]
        [Description("题干")]
        public string Title { get; set; }

        /// <summary>
        /// 题型
        /// </summary>
        [SugarColumn(ColumnDescription = "题型")]
        [Description("题型")]
        public EQuestionType QuestionType { get; set; }

        /// <summary>
        /// 难易程度
        /// </summary>
        [SugarColumn(ColumnDescription = "难易程度")]
        [Description("难易程度")]
        public EDifficultyLevel DifficultyLevel { get; set; }


        [Navigate(NavigateType.OneToMany, nameof(ExamPracticeQuestionOptions.PracticeQuestionId))]
        public List<ExamPracticeQuestionOptions> PracticeQuestionOptionses { get; set; }

        [Navigate(NavigateType.OneToMany,nameof(ExamPracticeQuestionSourceware.PracticeQuestionId))]
        public List<ExamPracticeQuestionSourceware> PracticeQuestionSourcewares { get; set; }

        [Navigate(NavigateType.OneToMany,nameof(ExamPracticeQuestionKnowladge.PracticeQuestionId))]
        public List<ExamPracticeQuestionKnowladge> PracticeQuestionKnowladges { get; set; }
    }
}
