package com.zcloud.basic.info.persistence.dataobject;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

/**
 * web-infrastructure
 *
 * @Author zhangyue
 * @Date 2025-11-04 14:07:35
 */
@Data
@TableName("user")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class UserDO extends BaseDO {
    //业务主键id老系统id
    @ApiModelProperty(value = "业务主键id老系统id")
    private String userId;
    //登录账号
    @ApiModelProperty(value = "登录账号")
    private String username;
    //姓名
    @ApiModelProperty(value = "姓名")
    private String name;
    //企业id
    @ApiModelProperty(value = "企业id")
    private Long corpinfoId;
    //企业id
    @ApiModelProperty(value = "企业名称")
    @TableField(exist = false)
    private String corpinfoName;

    //是否主账号1是0否
    @ApiModelProperty(value = "是否主账号1是0否")
    private Integer mainCorpFlag;
    //用户类型,1监管2企业3相关方
    @ApiModelProperty(value = "用户类型,1监管2企业3相关方")
    private Integer userType;
    //部门id
    @ApiModelProperty(value = "部门id")
    private Long departmentId;
    //部门id
    @ApiModelProperty(value = "部门名称")
    @TableField(exist = false)
    private String departmentName;
    //岗位id
    @ApiModelProperty(value = "岗位id")
    private Long postId;
    //岗位id
    @ApiModelProperty(value = "岗位名称")
    private String postName;
    //角色id
    @ApiModelProperty(value = "角色id")
    private Long roleId;
    //邮箱
    @ApiModelProperty(value = "邮箱")
    private String email;
    //人员类型编码（主要负责人等）
    @ApiModelProperty(value = "人员类型编码（主要负责人等）")
    private String personnelType;
    //人员类型翻译
    @ApiModelProperty(value = "人员类型翻译")
    private String personnelTypeName;
    //民族编码问一下有没有组件
    @ApiModelProperty(value = "民族编码问一下有没有组件")
    private String nation;
    //民族名称
    @ApiModelProperty(value = "民族名称")
    private String nationName;
    //身份证号
    @ApiModelProperty(value = "身份证号")
    private String userIdCard;
    //人脸头像url
    @ApiModelProperty(value = "人脸头像url")
    private String userAvatarUrl;
    //现住址
    @ApiModelProperty(value = "现住址")
    private String currentAddress;
    @ApiModelProperty(value = "描述")
    private String remarks;
    //户口所在地
    @ApiModelProperty(value = "户口所在地")
    private String locationAddress;
    @ApiModelProperty(value = "职级")
    private String rankLevel;
    @ApiModelProperty(value = "职级名称")
    private String rankLevelName;
    @ApiModelProperty(value = "手机号")
    private String phone;
    //人员在部门中的排序
    @ApiModelProperty(value = "人员在部门中的排序")
    private Integer sort;
    //是否部门领导0否1是
    @ApiModelProperty(value = "是否部门领导0否1是")
    private Integer departmentLeaderFlag;
    //是否分管领导0否1是
    @ApiModelProperty(value = "是否分管领导0否1是")
    private Integer deputyLeaderFlag;
    //文化程度 数据字典
    @ApiModelProperty(value = "文化程度 数据字典")
    private String culturalLevel;
    //文化程度名称
    @ApiModelProperty(value = "文化程度名称")
    private String culturalLevelName;
    //婚姻状态
    @ApiModelProperty(value = "婚姻状态")
    private String maritalStatus;
    //婚姻状态名称
    @ApiModelProperty(value = "婚姻状态名称")
    private String maritalStatusName;
    //政治面貌
    @ApiModelProperty(value = "政治面貌")
    private String politicalAffiliation;
    //政治面貌名称
    @ApiModelProperty(value = "政治面貌名称")
    private String politicalAffiliationName;
    // 入职状态
    @ApiModelProperty(value = "入职状态")
    private Integer employmentFlag;
    // 入职状态
    @ApiModelProperty(value = "是否流动人员，1-流动，0-固定人员")
    private Integer flowFlag;
    @ApiModelProperty(value = "是否存在人资系统, 1-存在, 0-不存在")
    private Integer rzFlag;
    //用户所属企业id
    @TableField(exist = false)
    private String userCorpId;


    //密码
    @ApiModelProperty(value = "密码")
    private String password;
    //密码
    @ApiModelProperty(value = "新密码")
    @TableField(exist = false)
    private String newPassword;

    // 年龄
    @ApiModelProperty(value = "年龄")
    @TableField(exist = false)
    private Integer age;

    //生日
    @ApiModelProperty(value = "生日")
    @TableField(exist = false)
    private String birthday;

    // 性别
    @ApiModelProperty(value = "性别")
    @TableField(exist = false)
    private String sex;

    // 微信openid
    @ApiModelProperty(value = "微信openid")
    private String openId;





    @ApiModelProperty(value = "是否特殊工种")
    private Integer isSpecialJob;
    @ApiModelProperty(value = "是否为部门负责人")
    private Integer isDepaRrtmentHead;
    @ApiModelProperty(value = "是否参加三级安全培训")
    private Integer isLevelThree;
    @ApiModelProperty(value = "是否签订劳动合同")
    private Integer isSignLabor;
    @ApiModelProperty(value = "是否缴纳商业保险")
    private Integer isPay;
    @ApiModelProperty(value = "是否缴纳社保")
    private Integer isSocial;
    @ApiModelProperty(value = "社会保障号码")
    private String socialNumber;
    @ApiModelProperty(value = "是否按期缴纳工伤保险")
    private Integer isInjuriesPay;
    @ApiModelProperty(value = "工伤保险有效期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate isInjuriesPayTime;
    @ApiModelProperty(value = "商业保险单号")
    private String payNumber;
    @ApiModelProperty(value = "是否缴纳其他人身伤害保险")
    private Integer isBf;











    public UserDO(String userId) {
        this.userId = userId;
    }

}

