package com.qunzhixinxi.hnqz.admin.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.qunzhixinxi.hnqz.admin.entity.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * CRO关联的项目管理表
 *
 * @author lixuesong
 * @date 2021年06月21日 13:07
 */
@Data
@TableName("wm_project")
@EqualsAndHashCode(callSuper = true)
public class WmProject extends Model<WmProject> {

	/**
	 * 主键id
	 */
	@TableId
	@ApiModelProperty(value="主键id")
	@NotNull(groups = BaseEntity.Update.class)
	private Integer id;

	/**
	 * 部门id
	 */
	@ApiModelProperty(value="部门id")
	private Integer deptId;

	/**
	 * 项目编号
	 */
	@ApiModelProperty(value="项目编号")
	@NotBlank(groups = BaseEntity.Create.class, message = "项目编号不能为空")
	private String projectNumber;

	/**
	 * 项目名称
	 */
	@ApiModelProperty(value="项目名称")
	@NotBlank(groups = BaseEntity.Create.class, message = "项目名称不能为空")
	private String projectName;

	/**
	 * 委托方
	 */
	@ApiModelProperty(value="委托方")
	@NotBlank(groups = BaseEntity.Create.class, message = "委托方不能为空")
	private String delegate;

	/**
	 * 项目签约时间
	 */
	@ApiModelProperty(value="项目签约时间")
	@NotNull(groups = BaseEntity.Create.class, message = "项目签约时间不能为空")
	private LocalDateTime signTime;

	/**
	 * 备注
	 */
	@ApiModelProperty(value="备注")
	private String remark;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value="创建时间")
	private LocalDateTime createTime;

	/**
	 * 更新时间（归档时间）
	 */
	@ApiModelProperty(value="更新时间（归档时间）")
	private LocalDateTime updateTime;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value="创建人")
	private Integer createUser;

	/**
	 * 更新人
	 */
	@ApiModelProperty(value="更新人")
	private Integer updateUser;

	/**
	 * 项目编号是否只读（0：可以修改，1：只读）
	 */
	@TableField(exist = false)
	private Integer readOnlyFlag;

	/**
	 * 静态证据列表
	 */
	@TableField(exist = false)
	private List<WmProjectEvidence> evidenceList;
}
