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

import com.fasterxml.jackson.annotation.JsonFormat;

import org.springframework.format.annotation.DateTimeFormat;

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

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

/**
 * H5返回的学生成绩实体类
 *
 * @author zyj
 * @date 2020/6/15
 */
@Data
public class CoreStudentReturnData implements Serializable {

    private static final long serialVersionUID = 1668881467749702857L;

    /**
     * 本次考试id
     */
    private Long examinationId;

    /**
     * 本次考试名称
     */
    private String examinationName;

    /**
     * 考试开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startDate;

    /**
     * 考试结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    /**
     * 学校名称
     */
    private String schoolName;

    /**
     * 年级名称
     */
    private String gradeName;

    /**
     * 班级名称
     */
    private String className;

    /**
     * 学生名称
     */
    private String studentName;

    /**
     * 本次考试总分
     */
    private Double totalScore;

    /**
     * 本次考试学生年级排名
     */
    private Integer gradeRank;

    /**
     * 本次考试学生班级排名
     */
    private Integer classRank;

    /**
     * 本次考试学生信息id
     */
    private Integer examinationStudentId;

    /**
     * 本次考试科目数量
     */
    private Integer courseNumber;

    /**
     * 本次考试学生总分
     */
    private Double studentTotalScore;

    /**
     * 是否屏蔽联考排名
     * 0:否, 1:是
     */
    private Integer jointRankBlock;

    /**
     * 是否屏蔽学校排名
     * 0:否, 1:是
     */
    private Integer schoolRankBlock;

    /**
     * 是否屏蔽年级排名
     * 0:否, 1:是
     */
    private Integer gradeRankBlock;

    /**
     * 是否屏蔽班级排名
     * 0:否, 1:是
     */
    private Integer classRankBlock;

    @ApiModelProperty("是否屏蔽成绩（只显示排名），0-否，1-是")
    private Integer scoreBlock;

    @ApiModelProperty("是否屏蔽成绩（只显示排名），0-否，1-是")
    private Integer totalScoreBlock;

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

    /**
     * 是否添加评语
     * 1=是，0=否
     */
    private Integer comment;

    /**
     * 评语
     */
    private String commentContent;

    /**
     * 是否需要回执
     * 1=是，0=否
     */
    private Integer receipt;

    /**
     * 家长回执状态
     * 0:未回执, 1:已回执
     */
    private Integer receiptStatus;

    private List<CoreStudentReturnCourseData> courseDataList;
}