 package org.sky.scientific.pojo.entity;

 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;

 import java.io.Serial;
 import java.io.Serializable;

 /**
  * 实体类
  *
   */
 @Data
 @TableName("kd_subject")
 @Schema(description = "Subject对象")
 public class Subject implements Serializable {

     @Serial
     private static final long serialVersionUID = 1L;

     @JsonSerialize(using = ToStringSerializer.class)
     @Schema(description = "主键")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;

     @JsonSerialize(using = ToStringSerializer.class)
     @Schema(description = "父级科目")
	 @NotNull(message = "请选择父级科目")
     private Long parentId;

     @Schema(description = "科目代码")
	 @NotBlank(message = "请填写科目代码")
     private String code;

     @Schema(description = "科目名称")
	 @NotBlank(message = "请填写科目名称")
     private String name;

     @Schema(description = "会计科目")
     private String accSubject;

	 @Schema(description = "是否为高新研发费用科目，1：是，0，否")
	 private int rdSubjectEnable;

	 @Schema(description = "高新研发费用科目")
	 private String rdSubject;

	 @Schema(description = "是否为加计扣除研发费用科目，1：是，0，否")
	 private int adSubjectEnable;

	 @Schema(description = "加计扣除研发费用科目")
	 private String adSubject;
 }
