package com.zd.laboratory.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.zd.common.core.web.domain.BaseEntity;

/**
 * 黑名单历史记录对象 lab_blackdetail
 *
 * @author zd
 * @date 2021-12-15
 */
@ApiModel("黑名单历史记录")
public class LabBlackdetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /** 关联黑名单列表id */
    @Excel(name = "关联黑名单列表id")
    @ApiModelProperty(value = "关联黑名单列表id")
    private Long blackId;
    /** 进入黑名单原因 */
    @Excel(name = "进入黑名单原因")
    @ApiModelProperty(value = "进入黑名单原因")
    private String reason;
    /** 处理方式，这个用于只存字符串的记录，如：学习、做题 */
    @Excel(name = "处理方式，这个用于只存字符串的记录，如：学习、做题")
    @ApiModelProperty(value = "处理方式，这个用于只存字符串的记录，如：学习、做题")
    private String treatmentMethod;
    /** 学习状态：1已完成，0未完成  -1表示没有 */
    @Excel(name = "学习状态：1已完成，0未完成  -1表示没有")
    @ApiModelProperty(value = "学习状态：1已完成，0未完成  -1表示没有")
    private Integer learnStatus;
    /** 考试状态：1已完成，0未完成  -1表示没有 */
    @Excel(name = "考试状态：1已完成，0未完成  -1表示没有")
    @ApiModelProperty(value = "考试状态：1已完成，0未完成  -1表示没有")
    private Integer testStatus;
    /** 做题状态：1已完成，0未完成  -1表示没有 */
    @Excel(name = "做题状态：1已完成，0未完成  -1表示没有")
    @ApiModelProperty(value = "做题状态：1已完成，0未完成  -1表示没有")
    private Integer practiceStatus;
    /** 状态：1是已完成，0是未完成，-1是无 */
    @Excel(name = "状态：1是已完成，0是未完成，-1是无")
    @ApiModelProperty(value = "状态：1是已完成，0是未完成，-1是无")
    private Integer overStatus;
    /** 处理未完成最后期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理未完成最后期限", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "处理未完成最后期限")
    private Date handleDay;
    /** 信用分 */
    @Excel(name = "信用分")
    @ApiModelProperty(value = "信用分")
    private Long creditScore;
    /** 题目数量，只有练习状态不是-1的时候，才用这个字段 */
    @Excel(name = "题目数量，只有练习状态不是-1的时候，才用这个字段")
    @ApiModelProperty(value = "题目数量，只有练习状态不是-1的时候，才用这个字段")
    private Long numberTopics;
    /** 做题准确率，只有做题的时候才用 */
    @Excel(name = "做题准确率，只有做题的时候才用")
    @ApiModelProperty(value = "做题准确率，只有做题的时候才用")
    private Long numberAccuracy;
    /** 学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位 */
    @Excel(name = "学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位")
    @ApiModelProperty(value = "学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位")
    private Long learnTime;

    /** 剩余信用分值 */
    @Excel(name = "剩余信用分值")
    @ApiModelProperty(value = "剩余信用分值")
    private String  surplusCreditScore;

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

    public Long getId()
    {
        return id;
    }
    public void setBlackId(Long blackId)
    {
        this.blackId = blackId;
    }

    public Long getBlackId()
    {
        return blackId;
    }
    public void setReason(String reason)
    {
        this.reason = reason;
    }

    public String getReason()
    {
        return reason;
    }
    public void setTreatmentMethod(String treatmentMethod)
    {
        this.treatmentMethod = treatmentMethod;
    }

    public String getTreatmentMethod()
    {
        return treatmentMethod;
    }
    public void setLearnStatus(Integer learnStatus)
    {
        this.learnStatus = learnStatus;
    }

    public Integer getLearnStatus()
    {
        return learnStatus;
    }
    public void setTestStatus(Integer testStatus)
    {
        this.testStatus = testStatus;
    }

    public Integer getTestStatus()
    {
        return testStatus;
    }
    public void setPracticeStatus(Integer practiceStatus)
    {
        this.practiceStatus = practiceStatus;
    }

    public Integer getPracticeStatus()
    {
        return practiceStatus;
    }
    public void setHandleDay(Date handleDay)
    {
        this.handleDay = handleDay;
    }

    public Integer getOverStatus() {
        return overStatus;
    }

    public void setOverStatus(Integer overStatus) {
        this.overStatus = overStatus;
    }

    public Date getHandleDay()
    {
        return handleDay;
    }
    public void setCreditScore(Long creditScore)
    {
        this.creditScore = creditScore;
    }

    public Long getNumberAccuracy() {
        return numberAccuracy;
    }

    public void setNumberAccuracy(Long numberAccuracy) {
        this.numberAccuracy = numberAccuracy;
    }

    public Long getCreditScore()
    {
        return creditScore;
    }
    public void setNumberTopics(Long numberTopics)
    {
        this.numberTopics = numberTopics;
    }

    public Long getNumberTopics()
    {
        return numberTopics;
    }
    public void setLearnTime(Long learnTime)
    {
        this.learnTime = learnTime;
    }

    public Long getLearnTime()
    {
        return learnTime;
    }

    public String getSurplusCreditScore() {
        return surplusCreditScore;
    }

    public void setSurplusCreditScore(String surplusCreditScore) {
        this.surplusCreditScore = surplusCreditScore;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("blackId", getBlackId())
            .append("reason", getReason())
            .append("treatmentMethod", getTreatmentMethod())
            .append("learnStatus", getLearnStatus())
            .append("testStatus", getTestStatus())
            .append("practiceStatus", getPracticeStatus())
            .append("overStatus", getOverStatus())
            .append("handleDay", getHandleDay())
            .append("creditScore", getCreditScore())
            .append("numberTopics", getNumberTopics())
            .append("learnTime", getLearnTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
