package com.qmth.distributed.print.business.bean.params;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.distributed.print.business.enums.ObeCourseOutlineCourseTypeEnum;
import com.qmth.distributed.print.business.enums.ObeCourseOutlineEvaluationEnum;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;

/**
 * @Description: obe课程大纲参数
 * @Author: CaoZixuan
 * @Date: 2024-06-05
 */
public class ObeCourseOutlineParam {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "课程大纲id")
    private Long id;

    @ApiModelProperty(value = "大纲名称")
    @NotNull(message = "课程大纲名称必填")
    private String courseOutlineName;

    @ApiModelProperty(value = "培养方案id")
    @NotNull(message = "缺少教学课程")
    @Range(min = 1L, message = "缺少教学课程")
    private Long cultureProgramId;

    @ApiModelProperty(value = "学期id")
    @NotNull(message = "缺少学期id")
    @Range(min = 1L, message = "缺少学期id")
    private Long semesterId;

    @ApiModelProperty(value = "课程id")
    @NotNull(message = "缺少课程id")
    @Range(min = 1L, message = "缺少课程id")
    private Long courseId;

    @ApiModelProperty(value = "考核方式")
    private ObeCourseOutlineEvaluationEnum evaluationMode;

    @ApiModelProperty(value = "课程类型")
    private ObeCourseOutlineCourseTypeEnum courseType;

    public Long getId() {
        return id;
    }

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

    public String getCourseOutlineName() {
        return courseOutlineName;
    }

    public void setCourseOutlineName(String courseOutlineName) {
        this.courseOutlineName = courseOutlineName;
    }

    public Long getCultureProgramId() {
        return cultureProgramId;
    }

    public void setCultureProgramId(Long cultureProgramId) {
        this.cultureProgramId = cultureProgramId;
    }

    public Long getSemesterId() {
        return semesterId;
    }

    public void setSemesterId(Long semesterId) {
        this.semesterId = semesterId;
    }

    public Long getCourseId() {
        return courseId;
    }

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

    public ObeCourseOutlineEvaluationEnum getEvaluationMode() {
        return evaluationMode;
    }

    public void setEvaluationMode(ObeCourseOutlineEvaluationEnum evaluationMode) {
        this.evaluationMode = evaluationMode;
    }

    public ObeCourseOutlineCourseTypeEnum getCourseType() {
        return courseType;
    }

    public void setCourseType(ObeCourseOutlineCourseTypeEnum courseType) {
        this.courseType = courseType;
    }
}
