package com.zcloud.basic.info.dto;

import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

/**
 * web-client
 *
 * @Author zhangyue
 * @Date 2025-11-04 14:07:38
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserUpdateCmd extends Command {
    @ApiModelProperty(value = "GBS用户id", name = "id", required = true)
    @NotNull(message = "GBS用户id不能为空")
    private Long id;
    @ApiModelProperty(value = "业务主键id老系统id", name = "userId", required = true)
    @NotEmpty(message = "业务主键id老系统id不能为空")
    private String userId;
    @ApiModelProperty(value = "登录账号", name = "username")
    private String username;
    @ApiModelProperty(value = "姓名", name = "name")
    private String name;
    @ApiModelProperty(value = "企业id", name = "corpinfoId")
    private Long corpinfoId;
    @ApiModelProperty(value = "是否主账号1是0否", name = "mainCorpFlag")
    private Integer mainCorpFlag;
    @ApiModelProperty(value = "用户类型,1监管2企业3相关方", name = "userType")
    private Integer userType;
    @ApiModelProperty(value = "部门id", name = "departmentId")
    private Long departmentId;
    @ApiModelProperty(value = "岗位id", name = "postId")
    private Long postId;
    @ApiModelProperty(value = "岗位名称", name = "postName")
    private String postName;
    @ApiModelProperty(value = "角色id", name = "roleId")
    private Long roleId;
    @ApiModelProperty(value = "邮箱", name = "email")
    private String email;
    @ApiModelProperty(value = "人员类型编码（主要负责人等）", name = "personnelType")
    private String personnelType;
    @ApiModelProperty(value = "人员类型翻译", name = "personnelTypeName")
    private String personnelTypeName;
    @ApiModelProperty(value = "民族编码问一下有没有组件", name = "nation")
    private String nation;
    @ApiModelProperty(value = "民族名称", name = "nationName")
    private String nationName;
    @ApiModelProperty(value = "身份证号", name = "userIdCard")
    private String userIdCard;
    @ApiModelProperty(value = "人脸头像url", name = "userAvatarUrl")
    private String userAvatarUrl;
    @ApiModelProperty(value = "现住址", name = "currentAddress")
    private String currentAddress;
    @ApiModelProperty(value = "户口所在地", name = "locationAddress")
    private String locationAddress;
    @ApiModelProperty(value = "手机号", name = "phone")
    private String phone;
    @ApiModelProperty(value = "职级", name = "rankLevel")
    private String rankLevel;
    @ApiModelProperty(value = "职级名称", name = "rankLevelName")
    private String rankLevelName;
    @ApiModelProperty(value = "人员在部门中的排序", name = "sort")
    private Integer sort;
    @ApiModelProperty(value = "描述", name = "remarks")
    private String remarks;
    @ApiModelProperty(value = "是否部门领导0否1是", name = "departmentLeaderFlag")
    private Integer departmentLeaderFlag;
    @ApiModelProperty(value = "是否分管领导0否1是", name = "deputyLeaderFlag")
    private Integer deputyLeaderFlag;
    @ApiModelProperty(value = "文化程度 数据字典", name = "culturalLevel")
    private String culturalLevel;
    @ApiModelProperty(value = "文化程度名称", name = "culturalLevelName")
    private String culturalLevelName;
    @ApiModelProperty(value = "婚姻状态", name = "maritalStatus")
    private String maritalStatus;
    @ApiModelProperty(value = "婚姻状态名称", name = "maritalStatusName")
    private String maritalStatusName;
    @ApiModelProperty(value = "政治面貌", name = "politicalAffiliation")
    private String politicalAffiliation;
    @ApiModelProperty(value = "政治面貌名称", name = "politicalAffiliationName")
    private String politicalAffiliationName;
    // 入职状态
    @ApiModelProperty(value = "是否流动人员，1-流动，0-固定人员")
    private Integer flowFlag;
    // 微信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;
}

