package com.qmth.themis.business.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.themis.business.base.BaseEntity;
import com.qmth.themis.business.enums.MarkEnum;
import com.qmth.themis.business.util.UidUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * <p>
 * 考生重点标记表
 * </p>
 *
 * @author wangliang
 * @since 2024-07-22
 */
@ApiModel(value = "TEExamMarkLog对象", description = "考生重点标记表")
public class TEExamMarkLog extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "考试ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examId;

    @ApiModelProperty(value = "场次ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examActivityId;

    @ApiModelProperty(value = "考试记录ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examRecordId;

    @ApiModelProperty(value = "考生id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long examStudentId;

    @ApiModelProperty(value = "状态，MARK：标记，UN_MARK：撤销")
    private MarkEnum status;

    @ApiModelProperty(value = "备注")
    private String remark;

    public TEExamMarkLog() {

    }

    public TEExamMarkLog(TOeExamRecord tOeExamRecord, Long userId) {
        insertInfo(userId);
        this.examId = tOeExamRecord.getExamId();
        this.examActivityId = tOeExamRecord.getExamActivityId();
        this.examRecordId = tOeExamRecord.getId();
        this.examStudentId = tOeExamRecord.getExamStudentId();
        this.status = MarkEnum.MARK;
    }

    @Override
    public Long getId() {
        return id;
    }

    @Override
    public void setId(Long id) {
        this.id = id;
    }

    public Long getExamId() {
        return examId;
    }

    public void setExamId(Long examId) {
        this.examId = examId;
    }

    public Long getExamActivityId() {
        return examActivityId;
    }

    public void setExamActivityId(Long examActivityId) {
        this.examActivityId = examActivityId;
    }

    public Long getExamRecordId() {
        return examRecordId;
    }

    public void setExamRecordId(Long examRecordId) {
        this.examRecordId = examRecordId;
    }

    public Long getExamStudentId() {
        return examStudentId;
    }

    public void setExamStudentId(Long examStudentId) {
        this.examStudentId = examStudentId;
    }

    public MarkEnum getStatus() {
        return status;
    }

    public void setStatus(MarkEnum status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}
