package com.yida.data.common.core.entity.exam;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 考试考生信息表 Entity
 *
 * @author zhanghaijun
 * @date 2021-06-22 10:21:01
 */
@Data
@TableName("core_examination_student")
public class CoreExaminationStudent {

    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     *
     */
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Long createId;

    /**
     *
     */
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createDate;

    /**
     *
     */
    @TableField(value = "update_id", fill = FieldFill.UPDATE)
    private Long updateId;

    /**
     *
     */
    @TableField(value = "update_date", fill = FieldFill.UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateDate;

    /**
     *
     */
    @TableField("del_flag")
    @TableLogic(value = "0", delval = "1")
    private String delFlag;

    /**
     * 本次考试主键ID
     */
    @TableField("core_examination_id")
    private Long coreExaminationId;

    /**
     * 学生表id
     */
    @TableField("core_student_id")
    private Long coreStudentId;

    /**
     * 学生APPID
     */
    @TableField("student_app_id")
    private String studentAppId;

    /**
     * 学生姓名
     */
    @TableField("student_name")
    private String studentName;

    /**
     * 学生身份证号
     */
    @TableField("student_id_number")
    private String studentIdNumber;

    /**
     * 考生学号
     */
    @TableField("student_number")
    private String studentNumber;

    /**
     * 学生所属学校
     */
    @TableField("school_id")
    private Long schoolId;

    /**
     *
     */
    @TableField("school_name")
    private String schoolName;

    /**
     * 学生所属年级
     */
    @TableField("grade_id")
    private Long gradeId;

    /**
     *
     */
    @TableField("grade_name")
    private String gradeName;

    /**
     * 学生所属班级
     */
    @TableField("class_id")
    private Long classId;

    /**
     *
     */
    @TableField("class_name")
    private String className;

    /**
     * 考场
     */
    @TableField("examination_room")
    private String examinationRoom;

    /**
     * 考号
     */
    @TableField("examination_number")
    private String examinationNumber;

    /**
     * 座位号
     */
    @TableField("seat_number")
    private Integer seatNumber;

    /**
     * 总分
     */
    @TableField("score")
    private Double score;

    @ApiModelProperty("成绩等级")
    private String gradeLevel;

    /**
     * 标记是否缺考（1=是，0=否）针对此次考试
     */
    @TableField("miss")
    private String miss;

    /**
     * 年级排名
     */
    @TableField("grade_rank")
    private Integer gradeRank;

    /**
     * 班级排名
     */
    @TableField("class_rank")
    private Integer classRank;

    /**
     * 家长回执状态, 0: 否, 1:是(默认0), 发布成绩需要回执时修改
     */
    @TableField("receipt_status")
    private String receiptStatus;

    /**
     * 用于列表搜索
     */

    @TableField(exist = false)
    private String searchName;

    /**
     * 考试科目成绩集合
     */

    @TableField(exist = false)
    private List<CoreExaminationStudentCourse> studentCourseList;

}