package com.srs.teacher.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 业绩考核-个人填报-加分项佐证材料对象 sys_teacher_kpi_filling_bonus_points_materials
 *
 * @author Codex
 * @date 2026-03-26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "SysTeacherKpiFillingBonusPointsMaterials对象", description = "业绩考核-个人填报-加分项佐证材料")
@TableName("sys_teacher_kpi_filling_bonus_points_materials")
public class SysTeacherKpiFillingBonusPointsMaterials extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("加分项类型")
    @TableField("bonus_type")
    @Excel(name = "加分项类型")
    private String bonusType;

    @ApiModelProperty("加分分值")
    @TableField("bonus_scoring")
    @Excel(name = "加分分值")
    private Integer bonusScoring;

    @ApiModelProperty("佐证说明")
    @TableField("main_content")
    @Excel(name = "佐证说明")
    private String mainContent;

    @ApiModelProperty("发生时间")
    @TableField("development_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发生时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date developmentTime;

    @ApiModelProperty("佐证图片")
    @TableField("photo")
    @Excel(name = "佐证图片")
    private String photo;

    @ApiModelProperty(value = "辅导员姓名", required = true)
    @TableField("fdy_name")
    @Excel(name = "辅导员姓名")
    private String fdyName;

    @ApiModelProperty(value = "填报年份", required = true)
    @TableField("filling_year")
    @Excel(name = "填报年份")
    private String fillingYear;

    @ApiModelProperty(value = "填报月份", required = true)
    @TableField("filling_month")
    @Excel(name = "填报月份")
    @NotNull(message = "填报月份不能为空")
    private String fillingMonth;

    @ApiModelProperty("班级类型 graduate-毕业班 ungraduate-非毕业班")
    @TableField("class_type")
    @Excel(name = "班级类型")
    private String classType;
}
