package com.hotwj.platform.securityManagement.trainingAnswer.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

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

/**
 * 培训课程答题详情记录对象 hot_training_answer_record
 *
 * @author shihongwei
 * @date 2026-02-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hot_training_answer_record")
public class HotTrainingAnswerRecord extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 公司ID（由应用层保证必填）
     */
    private Long companyId;

    /**
     * 答题场景：LESSON=课程随堂题 PLAN=计划配置题
     */
    private String sceneType;

    /**
     * 业务ID：当scene_type=LESSON时为课程ID，当scene_type=PLAN时为培训计划ID
     */
    private Long businessId;

    /**
     * 题目来源：课程章节ID或计划配置项ID
     */
    private Long questionSource;

    /**
     * 培训计划ID
     */
    private Long trainingId;

    /**
     * 课程ID
     */
    private Long courseId;

    /**
     * 试卷ID
     */
    private Long examId;

    /**
     * 培训人员ID
     */
    private String userId;

    /**
     * 培训人员姓名
     */
    private String userName;

    /**
     * 题库题目ID（hot_question_bank.id）
     */
    private Long questionId;

    /**
     * 试卷-题目关联ID（hot_exam_paper_question.id，可选）
     */
    private Long paperQuestionId;

    /**
     * 题型：1=单选 2=多选 3=判断
     */
    private Long questionType;

    /**
     * 该题总分
     */
    private Long questionScore;

    /**
     * 试卷中题目序号
     */
    private Long questionOrder;

    /**
     * 标准答案(如 A,B)
     */
    private String correctAnswers;

    /**
     * 用户作答选项(如 A,B)
     */
    private String selectedAnswers;

    /**
     * 是否答对：1=正确 0=错误
     */
    private Long isCorrect;

    /**
     * 本题得分
     */
    private Long gainedScore;

    /**
     * 答题用时(秒)
     */
    private Long answerDuration;

    /**
     * 提交答题时间
     */
    private Date answerTime;

    /**
     * 错误次数
     */
    private Integer errorCount;

    /**
     * 错误答案，逗号拼接
     */
    private String errorAnswers;

    /**
     * 0=正常, 1=已删除
     */
    @TableLogic
    private Long isDeleted;


}
