package com.hotwj.platform.config.questionBank.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import com.hotwj.platform.config.questionBank.domain.HotQuestionBank;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;


/**
 * 题库视图对象 hot_question_bank
 *
 * @author shihongwei
 * @date 2025-12-23
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotQuestionBank.class)
public class HotQuestionBankVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 公司ID
     */
    private Long companyId;

    /**
     * 题型：1=单选 2=多选 3=判断
     */
    @ExcelProperty(value = "检测题类型", index = 1, converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=单选,2=多选,3=判断")
    private Long questionType;

    /**
     * 教育类型字典编码
     */
    @ExcelProperty(value = "分类", index = 0, converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_training_type")
    private String trainingTypeCode;

    /**
     * 教育类型子集编码集(JSON/逗号分隔)
     */
    private String trainingSubtypeCodes;

    /**
     * 问题描述
     */
    @ExcelProperty(value = "问题描述", index = 2)
    private String questionDesc;

    /**
     * 插图URL
     */
    private String imageUrl;

    /**
     * 选项A
     */
    @ExcelProperty(value = "选项A", index = 3)
    private String optionA;

    /**
     * 选项B
     */
    @ExcelProperty(value = "选项B", index = 4)
    private String optionB;

    /**
     * 选项C
     */
    @ExcelProperty(value = "选项C", index = 5)
    private String optionC;

    /**
     * 选项D
     */
    @ExcelProperty(value = "选项D", index = 6)
    private String optionD;

    /**
     * 选项E
     */
    @ExcelProperty(value = "选项E", index = 7)
    private String optionE;

    /**
     * 选项F
     */
    @ExcelProperty(value = "选项F", index = 8)
    private String optionF;

    /**
     * 正确答案(如 A,B)
     */
    @ExcelProperty(value = "正确答案", index = 9)
    private String correctAnswers;

    /**
     * 分值
     */
    @ExcelProperty(value = "分数", index = 10)
    private Long score;



    /**
     * 难度：1=普通 2=困难 3=极难
     */
    @ExcelProperty(value = "难度等级", index = 12)
    private Long difficulty;

    /**
     * 案例描述
     */
    private String caseDesc;

    /**
     * 状态：1=启用 0=禁用
     */
    private Long status;

    /**
     * 备注
     */
    private String remark;

    private Date createTime;

}
