/***********************************************************
 * @Description : 参加考试的记录，要有考试记录的id、参与者、参与时间、耗时、得分、得分级别(另建表)
 * @author      : 梁山广(Laing Shan Guang)
 * @date        : 2019/5/14 07:43
 * @email       : liangshanguang2@gmail.com
 ***********************************************************/
package lsgwr.exam.entity;


import com.fasterxml.jackson.annotation.JsonFormat;// 引入Jackson库用于日期格式化的注解
import lombok.Data;// 引入Lombok库用于简化Java实体类的编写，如自动生成getter和setter方法

import javax.persistence.Entity;// 引入JPA注解，用于标识这是一个实体类，并映射到数据库中的一张表
// 引入JPA注解，用于标识实体类的主键字段
import javax.persistence.Id;
import java.util.Date;
// 使用@Data注解自动生成getter和setter方法，以及toString、equals和hashCode方法
@Data
// 使用@Entity注解标识这是一个JPA实体类
@Entity
public class ExamRecord {
    /**
     * 主键，用于唯一标识一条考试记录
     */
    @Id
    private String examRecordId;
    /**
     * 关联的考试ID，用于标识考生参加的是哪一场考试
     */
    private String examId;

    /**
     * 考生作答的每个题目的选项，题目之间用下划线_分隔，若题目有多个选项则用短横线-分隔。这个字段用于查看考试详情时展示考生作答情况。
     */
    private String answerOptionIds;

    /**
     * 参与考试的考生ID，即用户的ID
     */
    private String examJoinerId;
    /**
     * 参加考试的日期和时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date examJoinDate;
    /**
     * 考试耗时，单位为秒
     */
    private Integer examTimeCost;
    /**
     * 考试得分
     */
    private Integer examJoinScore;
    /**
     * 考试得分水平，通常根据得分划分不同的等级，如优秀、良好、及格等（具体等级需另建表定义）
     */
    private Integer examResultLevel;
}