package com.securitycontrol.entity.background.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * @author 10488
 * 人员-VO
 */
@Data
public class HumanManageVo {
    @ApiModelProperty(value = "用户ID")
    private String userId;

    @ApiModelProperty(value = "班组ID")
    @NotBlank(message = "班组不能为空", groups = {Query.class})
    @Length(max = 100, message = "班组字符长度不能超过100", groups = {Query.class})
    private String teamId;

    @ApiModelProperty(value = "人员姓名")
    @NotBlank(message = "人员姓名不能为空", groups = {Query.class})
    @Length(max = 30, message = "人员姓名字符长度不能超过30", groups = {Query.class})
    private String userName;

    @ApiModelProperty(value = "身份证号码")
    @NotBlank(message = "身份证号码不能为空", groups = {Query.class})
    @Length(max = 100, message = "身份证号码字符长度不能超过100", groups = {Query.class})
    private String idNumber;

    @ApiModelProperty(value = "手机号码")
    @NotBlank(message = "手机号码不能为空", groups = {Query.class})
    @Length(max = 20, message = "手机号码字符长度不能超过100", groups = {Query.class})
    private String phone;

    @ApiModelProperty(value = "工种")
    @NotBlank(message = "工种不能为空", groups = {Query.class})
    @Length(max = 30, message = "工种字符长度不能超过30", groups = {Query.class})
    private String userType;

    @ApiModelProperty(value = "人员状态")
    private String status;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "年龄")
    private String age;

    @ApiModelProperty(value = "1.新增 2.修改")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer type;

    @ApiModelProperty(value = "班组长")
    private String teamLeader;

    @ApiModelProperty(value = "班组名称")
    private String teamName;

    @ApiModelProperty(value = "所属工程")
    private String proName;

    @ApiModelProperty(value = "单位名称")
    @Length(max = 255, message = "单位名称字符长度不能超过30", groups = {Query.class})
    private String deptName;

    @ApiModelProperty(value = "项目部名称")
    @Length(max = 255, message = "项目部名称字符长度不能超过255", groups = {Query.class})
    private String projectDepName;

    @ApiModelProperty(value = "人员类型")
    @Length(max = 32, message = "人员类型字符长度不能超过32", groups = {Query.class})
    private String personType;

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @ApiModelProperty(value = "删除的文件ID")
    private String delFiles;

    @ApiModelProperty(value = "创建时间")
    private String createTime;


    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<HumanManageVo.FileData> fileData;

    @Data
    public static class FileData{
        private String fileId;
        private String base64Url;
    }
    /**
     * 查询条件限制
     */
    public interface Query {
    }
}
