package com.qmth.distributed.print.business.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.teachcloud.common.base.BaseEntity;
import com.qmth.teachcloud.common.contant.SystemConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 培养方案毕业要求
 * </p>
 *
 * @author xf
 * @since 2024-06-05
 */
@TableName("obe_culture_program_requirement")
@ApiModel(value = "ObeCultureProgramRequirement对象", description = "培养方案毕业要求")
public class ObeCultureProgramRequirement extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "培养方案ID")
    private Long cultureProgramId;

    @ApiModelProperty(value = "毕业要求code")
    private String code;

    @ApiModelProperty(value = "毕业要求")
    private String name;

    @ApiModelProperty(value = "内容")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String content;

    @ApiModelProperty(value = "预期值")
    private Double expectValue;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "上级毕业要求")
    private Long parentId;

    @ApiModelProperty(value = "排序值")
    private Integer sortNum;

    @TableField(exist = false)
    private List<ObeCultureProgramRequirement> subRequirementList = new ArrayList<>();

    public ObeCultureProgramRequirement() {
    }

    public ObeCultureProgramRequirement(Long cultureProgramId, String code, String name, String content, Long parentId, Integer sortNum) {
        this.cultureProgramId = cultureProgramId;
        this.code = code;
        this.name = name;
        this.parentId = parentId;
        this.content = content;
        this.sortNum = sortNum;
    }

    public Long getCultureProgramId() {
        return cultureProgramId;
    }

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

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContent() {
        return content;
    }

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

    public Double getExpectValue() {
        return expectValue;
    }

    public void setExpectValue(Double expectValue) {
        this.expectValue = expectValue;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Integer getSortNum() {
        return sortNum;
    }

    public void setSortNum(Integer sortNum) {
        this.sortNum = sortNum;
    }

    public List<ObeCultureProgramRequirement> getSubRequirementList() {
        return subRequirementList;
    }

    public void setSubRequirementList(List<ObeCultureProgramRequirement> subRequirementList) {
        this.subRequirementList = subRequirementList;
    }

    @Override
    public String toString() {
        return "ObeCultureProgramRequirement{" +
                ", cultureProgramId=" + cultureProgramId +
                ", code=" + code +
                ", name=" + name +
                ", parentId=" + parentId +
                ", sortNum=" + sortNum +
                "}";
    }
}
