package com.zcloud.basic.info.dto.clientobject;

import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.time.LocalDate;
import java.util.List;

/**
 * web-client
 *
 * @Author SondonYong
 * @Date 2025-12-02 17:54:06
 */
@Data
public class UserChangeRecordCO extends ClientObject {
    //主键
    @ApiModelProperty(value = "主键")
    private Long id;
    //业务主键id
    @ApiModelProperty(value = "业务主键id")
    private String userChangeRecordId;
    //用户id
    @ApiModelProperty(value = "用户id")
    private Long userId;
    //变更时间
    @ApiModelProperty(value = "变更时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime changeTime;
    //入职状态，1-待审批, 2-通过
    @ApiModelProperty(value = "入职状态，1-待审批, 2-通过")
    private Integer status;
    //变更前企业id
    @ApiModelProperty(value = "变更前企业id")
    private Long corpinfoIdBefore;
    //变更前企业名称
    @ApiModelProperty(value = "变更前企业名称")
    private String corpinfoNameBefore;
    //变更前负责部门id
    @ApiModelProperty(value = "变更前负责部门id")
    private Long departmentIdBefore;
    //变更前负责部门名称
    @ApiModelProperty(value = "变更前负责部门名称")
    private String departmentNameBefore;
    //变更前负责岗位id
    @ApiModelProperty(value = "变更前负责岗位id")
    private Long postIdBefore;
    //变更前负责岗位名称
    @ApiModelProperty(value = "变更前负责岗位名称")
    private String postNameBefore;
    //变更前状态
    @ApiModelProperty(value = "变更前状态")
    private Integer userStatusBefore;
    //变更后企业id
    @ApiModelProperty(value = "变更后企业id")
    private Long corpinfoIdAfter;
    //变更后企业名称
    @ApiModelProperty(value = "变更后企业名称")
    private String corpinfoNameAfter;
    //变更后负责部门id
    @ApiModelProperty(value = "变更后负责部门id")
    private Long departmentIdAfter;
    //变更后负责部门名称
    @ApiModelProperty(value = "变更后负责部门名称")
    private String departmentNameAfter;
    //变更后负责岗位id
    @ApiModelProperty(value = "变更后负责岗位id")
    private Long postIdAfter;
    //变更后负责岗位名称
    @ApiModelProperty(value = "变更后负责岗位名称")
    private String postNameAfter;
    //变更后状态
    @ApiModelProperty(value = "变更后状态")
    private Integer userStatusAfter;
    @ApiModelProperty(value = "离职原因")
    private String resignationReason;
    //用户名称
    @ApiModelProperty(value = "用户名称")
    @TableField(exist = false)
    private String userName;
    @ApiModelProperty(value = "工作交接记录信息")
    private List<UserJobHandoverCO> userJobHandoverCOList;


}
