using Exam.Infrastructure.Data.Entity;
using Exam.Infrastructure.Data.Interface;
using Exam.Infrastructure.Enums;
using Hotline.Share.Enums.Exams;
using Hotline.Share.Exams.Interface;
using System.ComponentModel;

namespace Hotline.Share.Dtos.TestPapers
{
    /// <summary>
    /// 抽题规则
    /// </summary>
    [Description("抽题规则")]
    public class ExtractRuleDto : UpdateExtractRuleDto
    {
       
        /// <summary>
        /// 抽题标签
        /// </summary>
        [Description("抽题标签")]
        public new List<RuleTagDto> RuleTagDtos { get; set; }

        /// <summary>
        /// 标签试题数
        /// </summary>
        [Description("标签试题数")]
        public new List<TagQuestionDto> TagQuestionDtos { get; set; }
    }

    /// <summary>
    /// 抽题规则
    /// </summary>
    [Description("抽题规则")]
    public class AddExtractRuleDto : IAddRequest
    {
        /// <summary>
        /// 规则名称
        /// </summary>
        [Description("规则名称")]
        public string Name { get; set; }

        /// <summary>
        /// 规则编号
        /// </summary>
        [Description("规则编号")]
        public string Code { get; set; }

        /// <summary>
        /// 规则类型
        /// </summary>
        [Description("规则类型")]
        public EExamType RuleType { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Description("备注")]
        public string Remark { get; set; }

        /// <summary>
        /// 抽题标签
        /// </summary>
        [Description("抽题标签")]
        public List<AddRuleTagDto> RuleTagDtos { get; set; }

        /// <summary>
        /// 标签试题数
        /// </summary>
        [Description("标签试题数")]
        public List<AddTagQuestionDto> TagQuestionDtos { get; set; }

    }

    /// <summary>
    /// 主键
    /// </summary>
    public class UpdateExtractRuleDto : AddExtractRuleDto,IActionRequest
    {
        [Description("主键")]
        public string Id { get; set; }

        /// <summary>
        /// 抽题标签
        /// </summary>
        [Description("抽题标签")]
        public new List<UpdateRuleTagDto> RuleTagDtos { get; set; }

        /// <summary>
        /// 标签试题数
        /// </summary>
        [Description("标签试题数")]
        public new List<UpdateTagQuestionDto> TagQuestionDtos { get; set; }
    }
}
