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

namespace Hotline.Share.Dtos.TestPapers
{
    /// <summary>
    /// 标签试题数
    /// </summary>
    [Description("标签试题数")]
    public class TagQuestionDto : UpdateTagQuestionDto
    {
        /// <summary>
        /// 标签
        /// </summary>
        [Description("标签")]
        public string Tag { get; set; }
        /// <summary>
        /// 试题类型
        /// </summary>
        [Description("试题类型")]
        public string QuestionTypeDes
        {
            get
            {
                return QuestionType.GetDescription();
            }
        }

        /// <summary>
        /// 总数
        /// </summary>
        [Description("总数")]
        public int TotalCount { get; set; }

    }

    /// <summary>
    /// 标签试题数
    /// </summary>
    [Description("标签试题数")]
    public class AddTagQuestionDto : IAddRequest, IOperationStatus
    {
        /// <summary>
        /// 标签Id
        /// </summary>
        [Description("标签Id")]
        public string TagId { get; set; }


        /// <summary>
        /// 规则Id
        /// </summary>
        [Description("规则Id")]
        public string RuleId { get; set; }

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


        /// <summary>
        /// 试题数量
        /// </summary>
        [Description("试题数量")]
        public int? Count { get; set; }

        /// <summary>
        /// 操作状态        
        /// </summary>
        [Description("操作状态")]
        public EEOperationStatus OperationStatus { get; set; }
    }


    /// <summary>
    /// 标签试题数
    /// </summary>
    [Description("标签试题数")]
    public class UpdateTagQuestionDto : AddTagQuestionDto, IActionRequest
    {
        /// <summary>
        /// 主键
        /// </summary>
        [Description("主键")]
        public string Id { get; set; }
    }
}
