using Exam.Infrastructure.Data.Interface;
using Exam.Infrastructure.Enums;
using Hotline.Share.Dtos.ExamManages;
using Hotline.Share.Dtos.Questions;
using Hotline.Share.Enums.Exams;
using Hotline.Share.Exams.Interface;
using System.ComponentModel;

namespace Exam.Share
{
    /// <summary>
    /// 用户考试明细
    /// </summary>
    [Description("用户考试明细")]
    public class UserExamItemDto : UpdateUserExamItemDto
    {
        /// <summary>
        /// 题干
        /// </summary>
        [Description("题干")]
        public string Title { get; set; }

        /// <summary>
        /// 用户考试明细选项
        /// </summary>
        [Description("用户考试明细选项")]
        public new List<UserExamItemOptionDto> UserExamItemOptionDtos { get; set; }

    }

    /// <summary>
    /// 用户考试明细
    /// </summary>
    [Description("用户考试明细")]
    public class AddUserExamItemDto : IAddRequest,IOperationStatus
    {
        /// <summary>
        /// 用户考试Id
        /// </summary>
        [Description("用户考试Id")]
        public string UserExamId { get; set; }

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

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

        /// <summary>
        /// 考试明细选项
        /// </summary>
        [Description("考试明细选项")]
        public List<AddUserExamItemOptionDto> UserExamItemOptionDtos { get; set; }

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

        /// <summary>
        /// 考试答案
        /// </summary>
        [Description("考试答案")]
        public string Answer { get; set; }
    }

    /// <summary>
    /// 用户考试明细
    /// </summary>
    [Description("用户考试明细")]
    public class UpdateUserExamItemDto : AddUserExamItemDto, IActionRequest
    {
        /// <summary>
        /// 主键
        /// </summary>
        [Description("主键")]
        public string Id { get; set; }

        /// <summary>
        /// 用户开始明细选项
        /// </summary>
        [Description("用户开始明细选项")]
        public new List<UpdateUserExamItemOptionDto> UserExamItemOptionDtos { get; set; }
    }
}
