package org.dromara.work.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.work.domain.TpStaff;

import java.math.BigDecimal;

/**
 * 人员业务对象 tp_staff
 *
 * @author Maosw
 * @date 2024-08-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TpStaff.class, reverseConvertGenerate = false)
public class TpStaffBo extends BaseEntity {

    /**
     *
     */
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 用户名称
     */
    @NotBlank(message = "用户名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String username;

    /**
     * 用户编号
     */
    @NotBlank(message = "用户编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String code;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 所属部门
     */
    @NotNull(message = "所属部门不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long cid;

    /**
     * 手机号
     */
    @NotBlank(message = "手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;

    /**
     * 工龄
     */
    @NotNull(message = "工龄不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long year;

    /**
     * 工种
     */
    @NotNull(message = "工种不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer work;

    /**
     * 擅长类型
     */
    @NotBlank(message = "擅长类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 登录密码
     */
    @NotBlank(message = "登录密码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String password;

    /**
     * 身份（1=员工，2=技术，3=客服，4=分图员）
     */
    @NotNull(message = "身份（1=员工，2=技术，3=客服，4=分图员）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long identity;

    /**
     * 角色ID
     */
    @NotNull(message = "角色ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long rid;

    /**
     * 状态（1=正常，2=关闭）
     */
    @NotNull(message = "状态（1=正常，2=关闭）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long state;

    /**
     * 是否删除（1=未删除，2=已删除）
     */
    @NotNull(message = "是否删除（1=未删除，2=已删除）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long isDel;

    /**
     * 创建时间
     */
    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long addTime;

    /**
     * 拆单
     */
    @NotNull(message = "拆单不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal yue;

    /**
     * 上传类型（1=服务器上传，2=OSS上传，3=局域网上传）
     */
    @NotNull(message = "上传类型（1=服务器上传，2=OSS上传，3=局域网上传）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long upType;

    /**
     * 上传节点
     */
    @NotNull(message = "上传节点不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long urid;


}
