package cn.timer.api.bean.jxgl;

import java.util.Date;
import java.util.List;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Null;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import cn.timer.api.config.exception.ValidationMsg;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Tang 2020-05-26
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("考核模板")
public class JxglAppraisalT extends Model<JxglAppraisalT> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
	@TableId(type = IdType.AUTO)
	@ApiModelProperty(value = "编号", example = "10")
	private Integer id;

	@ApiModelProperty(value = "企业id", example = "10")
	private Integer orgCode;

	@NotBlank(message = ValidationMsg.NOTBLANK)
	@ApiModelProperty(value = "名称", example = "名称")
	private String name;

	@ApiModelProperty(value = "考核说明", example = "考核说明")
	private String appraisalExplain;
	
	@Null(message = ValidationMsg.NULL)
	@TableField(fill = FieldFill.INSERT)
	@ApiModelProperty(value = "创建时间", example = "2020-10-10 10:10:10")
	private Date createTime;
	
	@Null(message = ValidationMsg.NULL)
	@TableField(fill = FieldFill.UPDATE)
	@ApiModelProperty(value = "更新时间", example = "2020-10-10 10:10:10")
	private Date updateTime;

	@Min(value = 0,message = ValidationMsg.MIN)
	@Max(value = 1,message = ValidationMsg.MAX)
	@ApiModelProperty(value = "是否可编辑 限制员工的权限", example = "0")
	private Integer isEdit;

	@Min(value = 0,message = ValidationMsg.MIN)
	@Max(value = 1,message = ValidationMsg.MAX)
	@ApiModelProperty(value = "是否使用固定", example = "0")
	private Integer isUseFixd;

	@Min(value = 0,message = ValidationMsg.MIN)
	@Max(value = 1,message = ValidationMsg.MAX)
	@ApiModelProperty(value = "是否使用非固定", example = "0")
	private Integer isUseNotFixd;

	@TableField(exist = false) // 是否转换
	@ApiModelProperty(value = "考核指标模板", example = "")
	private List<JxglAppraisalIndicatorsT> appraisalIndicatorsTs;
	
}