package com.storlead.framework.common.vo.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.util.Date;

/**
 * @program: storlead-saas-platform
 * @description:
 * @author: chenkq
 * @create: 2026-04-23 10:29
 */
@Data
public class UserVO {

    private Long id;

    @ApiModelProperty(value = "用户名")
    private String username;

    private String password;

    private String xworkUserId;

    @ApiModelProperty(value = "头像")
    private String avatar;

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

    @ApiModelProperty(value = "昵称")
    private String nickName;

    @ApiModelProperty(value = "姓名")
    private String realName;

    @ApiModelProperty(value = "姓名")
    private String mobile;

    @ApiModelProperty(value = "email")
    private String email;

    @ApiModelProperty(value = "岗位ID")
    private Long jobId;

    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    @ApiModelProperty(value = "分公司ID")
    private Long subCompanyId;

    @ApiModelProperty(value = "公司ID")
    private Long companyId;

    @ApiModelProperty(value = "直接上级ID")
    private Long managerId;

    @ApiModelProperty(value = "领导路由")
    private String managers;

    private String idNum;
    private String address;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDate birthday;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDate entryDate;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDate permanentDate;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private LocalDate resignDate;
    private String bankName;
    private String bankCardNum;

    @ApiModelProperty(value = "状态 0：试用期 1：正式期 2：临时 3：试用延期 5：离职流程")
    private String status;
    private Integer isShenzhenCensus;
    private String census;
    private String ethnic;
    private String marriage;
    private String education;
    private Integer enabled;
    private Long createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    private Long updateBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty(value = "是否负责人：0 否,1分公司负责人,2部门负责人")
    private Integer isLeader;

    @ApiModelProperty(value = "是否是超管")
    private Boolean isAdmin;

    @ApiModelProperty(value = "数据权限")
    private String dataScope;

    @ApiModelProperty(value = "测试")
    private Integer test;

    @ApiModelProperty(value = "组织路由")
    private String orgRouteCode;
}
