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

namespace Exam.Share
{
    /// <summary>
    /// 考试管理
    /// </summary>
    [Description("考试管理")]
    public class ExamManageDto:UpdateExamManageDto
    {
        /// <summary>
        /// 题型分数
        /// </summary>
        [Description("题型分数")]
        public new List<ExamQuestionScoreDto> ExamQuestionScoreDtos { get; set; }

        /// <summary>
        /// 参考人员
        /// </summary>
        [Description("参考人员")]
        public new  List<UserExamDto> UserExamDtos { get; set; }
    }

    /// <summary>
    /// 考试管理
    /// </summary>
    [Description("考试管理")]
    public class AddExamManageDto : IAddRequest
    {
        /// <summary>
        /// 考试标题
        /// </summary>
        [Description("考试标题")]
        public string Name { get; set; }

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

        /// <summary>
        /// 考试类型
        /// </summary>
        [Description("考试类型")]
        public EExamType ExamType { get; set; }

        /// <summary>
        /// 组卷方式
        /// </summary>
        [Description("组卷方式")]
        public EMethod Mode { get; set; }

        /// <summary>
        /// 考核方式
        /// </summary>
        [Description("考核方式")]
        public EMethod Method { get; set; }

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

        /// <summary>
        /// 可考次数
        /// </summary>
        [Description("可考次数")]
        public int Count { get; set; }

        /// <summary>
        /// 考试时长
        /// </summary>
        [Description("考试时长")]
        public int TimeSpan { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        [Description("开始时间")]
        public DateTime StartTime { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        [Description("结束时间")]
        public DateTime EndTime { get; set; }

        /// <summary>
        /// 试题顺序
        /// </summary>
        [Description("试题顺序")]
        public int QuestionSort { get; set; }

        /// <summary>
        /// 选项顺序
        /// </summary>
        [Description("选项顺序")]
        public int OptionSort { get; set; }

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

        /// <summary>
        /// 分数线
        /// </summary>
        [Description("分数线")]
        public int CutoffScore { get; set; }

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

        /// <summary>
        /// 题型分数
        /// </summary>
        [Description("题型分数")]
        public List<AddExamQuestionScoreDto> ExamQuestionScoreDtos { get; set; }

        /// <summary>
        /// 参考人员
        /// </summary>
        [Description("参考人员")]
        public List<AddUserExamDto> UserExamDtos { get; set; }
    }

    /// <summary>
    /// 考试管理
    /// </summary>
    [Description("考试管理")]
    public class UpdateExamManageDto : AddExamManageDto, IActionRequest
    {
        /// <summary>
        /// 主键
        /// </summary>
        [Description("主键")]
        public string Id { get; set; }

        /// <summary>
        /// 题型分数
        /// </summary>
        [Description("题型分数")]
        public new  List<UpdateExamQuestionScoreDto> ExamQuestionScoreDtos { get; set; }

        /// <summary>
        /// 参考人员
        /// </summary>
        [Description("参考人员")]
        public new  List<UpdateUserExamDto> UserExamDtos { get; set; }
    }
}
