using System.Collections.Generic;
using QuestionSwapDoc.SwapWordModel;

namespace YGNT.QuestionLibrary.Core.BaseData.PaperStructureSettingParam
{
    /// <summary>
    /// 答题卡
    /// </summary>
    public class AnswerSheet
    {
        public AnswerSheet()
        {
            QuestionTypeStyles = new List<QuestionTypeStyle>()
            {
                new QuestionTypeStyle()
            };
            IsShowQrCode = true;
            Notice = "填涂时用2B铅笔将选项涂满涂黑。修改时用橡皮擦干净。请注意题号顺序。请保持答题卡整洁，不要折叠、乱作标记。";
            SubTitle = null;
            MainTitle = null;
        }

        /// <summary>
        /// 主标题文本（为null不显示）（如：xx市xxxx学年高一上册质量检测答题卡）
        /// </summary>
        public string MainTitle { get; set; }
        /// <summary>
        /// 副标题文本（为null不显示）（如：数学必修1试卷）
        /// </summary>
        public string SubTitle { get; set; }
        /// <summary>
        /// 注意事项
        /// </summary>
        public string Notice { get; set; }
        /// <summary>
        /// 准考证号的数量
        /// (‘A4竖向不分栏’和‘A3横向分三栏’填写1-8；‘A3横向分两栏’填写1-12)
        /// </summary>
        public int CandidateNoCount { get; set; }

        /// <summary>
        /// 是否显示二维码区域
        /// </summary>
        public bool IsShowQrCode { get; set; }

        /// <summary>
        /// 答题卡样式
        /// </summary>
        public AnswerSheetStyle AnswerSheetStyle { get; set; }

        /// <summary>
        /// 纸张大小
        /// </summary>
        public AnswerSheetSize AnswerSheetSize { get; set; }

        /// <summary>
        /// 试题类型答题卡样式
        /// </summary>
        public List<QuestionTypeStyle> QuestionTypeStyles { get; set; }
    }

    public enum AnswerSheetStyle
    {
        /// <summary>
        /// 机读卡
        /// </summary>
        机读卡,
        /// <summary>
        /// 人阅卡
        /// </summary>
        人阅卡,
    }

    public enum AnswerSheetSize
    {
        /// <summary>
        /// A4竖向不分栏
        /// </summary>
        A4竖向,
        /// <summary>
        /// A3横向分两栏
        /// </summary>
        A3横向,
        /// <summary>
        /// A3横向分三栏
        /// </summary>
        A3横向3,
        /// <summary>
        /// 32开
        /// </summary>
        K32,
    }

    public class QuestionTypeStyle
    {
        /// <summary>
        /// 题型id
        /// </summary>
        public int DisciplineQuestionTypeId { get; set; }

        /// <summary>
        /// 题型答题卡样式
        /// </summary>
        public QuestionTypeAnswerSheetStyle AnswerSheetStyle { get; set; }

        public enum QuestionTypeAnswerSheetStyle
        {
            /// <summary>
            /// 自动模式（选择判断为横向，其他题型为长方形空白框）
            /// </summary>
            自动 = 0,
            /// <summary>
            /// 选择判断为横向（只在机读卡中适用）
            /// </summary>
            横向 = 10,
            /// <summary>
            /// 选择判断为竖向（只在机读卡中适用）
            /// </summary>
            竖向,
            /// <summary>
            /// 非选择判断为长方形空白区域
            /// </summary>
            长方形空白框 = 20,
            /// <summary>
            /// 非选择判断为单排横线模式（合适填空题）
            /// </summary>
            单排横线,
            /// <summary>
            /// 非选择判断为多排横线模式（合适英文作文题）
            /// </summary>
            多排横线,
            /// <summary>
            /// 非选择判断为多排正方形网格模式（合适语文作文题）
            /// </summary>
            多排正方形网格,
            /// <summary>
            /// 不为题型下面的题添加答题区域
            /// </summary>
            不显示 = -1,
        }
    }
}