package com.education.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.groups.Default;
import lombok.Data;

import java.util.Date;

/**
 * 导向目标设定表
 * @TableName goal_info
 */
@TableName(value ="goal_info")
public class GoalInfo extends BaseEntity<GoalInfo>{
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    @NotNull(groups = Update.class)
    private Integer id;

    @Override
    public @NotNull(groups = Update.class) Integer getId() {
        return id;
    }

    @Override
    public void setId(@NotNull(groups = Update.class) Integer id) {
        this.id = id;
    }

    public @NotNull Integer getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(@NotNull Integer subjectId) {
        this.subjectId = subjectId;
    }

    public Integer getSchoolType() {
        return schoolType;
    }

    public void setSchoolType(Integer schoolType) {
        this.schoolType = schoolType;
    }

    public Integer getCourseSectionId() {
        return courseSectionId;
    }

    public void setCourseSectionId(Integer courseSectionId) {
        this.courseSectionId = courseSectionId;
    }

    public Integer getCourseId() {
        return courseId;
    }

    public void setCourseId(Integer courseId) {
        this.courseId = courseId;
    }

    public Integer getGradeId() {
        return gradeId;
    }

    public void setGradeId(Integer gradeId) {
        this.gradeId = gradeId;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public @NotEmpty String getgOriented() {
        return gOriented;
    }

    public void setgOriented(@NotEmpty String gOriented) {
        this.gOriented = gOriented;
    }

    public String getpScoreStd() {
        return pScoreStd;
    }

    public void setpScoreStd(String pScoreStd) {
        this.pScoreStd = pScoreStd;
    }

    public String getsScoreStd() {
        return sScoreStd;
    }

    public void setsScoreStd(String sScoreStd) {
        this.sScoreStd = sScoreStd;
    }

    public String getrScoreStd() {
        return rScoreStd;
    }

    public void setrScoreStd(String rScoreStd) {
        this.rScoreStd = rScoreStd;
    }

    public String geteScoreStd() {
        return eScoreStd;
    }

    public void seteScoreStd(String eScoreStd) {
        this.eScoreStd = eScoreStd;
    }

    public String getnScoreStd() {
        return nScoreStd;
    }

    public void setnScoreStd(String nScoreStd) {
        this.nScoreStd = nScoreStd;
    }

    public String getKnowPoints() {
        return knowPoints;
    }

    public void setKnowPoints(String knowPoints) {
        this.knowPoints = knowPoints;
    }

    public @NotNull Integer getCreateUser() {
        return createUser;
    }

    public void setCreateUser(@NotNull Integer createUser) {
        this.createUser = createUser;
    }

    @Override
    public Date getCreateDate() {
        return createDate;
    }

    @Override
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    @Override
    public Date getUpdateDate() {
        return updateDate;
    }

    @Override
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     * 学科名称
     */
    @NotNull
    private Integer subjectId;

    /**
     * 阶段id
     */
    private Integer schoolType;

    /**
     * 试题类型
     */
    private Integer courseSectionId;

    /**
     * 
     */
    private Integer courseId;

    //年级，可为空
    private Integer gradeId;

    /**
     * 试题内容
     */
    private String content;

    /**
     * 导向目标G
     */
    @NotEmpty
    private String gOriented;

    /**
     * P评分标准
     */
    private String pScoreStd;

    /**
     * S评分标准
     */
    private String sScoreStd;

    /**
     * R评分标准
     */
    private String rScoreStd;

    /**
     * E评分标准
     */
    private String eScoreStd;

    /**
     * N评分标准
     */
    private String nScoreStd;

    //知识点
    private String knowPoints;

    /**
     * 创建人
     */
    @NotNull
    private Integer createUser;

    /**
     * 
     */
    private Date createDate;

    /**
     * 
     */
    private Date updateDate;


    public interface Add extends Default {}
    public interface Update extends Default{}
}