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.*;

import java.util.Date;

/**
 * web-client
 *
 * @Author SondonYong
 * @Date 2025-12-02 14:08:19
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserChangeRecordUpdateCmd extends Command {
    @ApiModelProperty(value = "主键", name = "id", required = true)
    @NotNull(message = "主键不能为空")
    private Long id;
    @ApiModelProperty(value = "业务主键id", name = "userChangeRecordId", required = true)
    @NotEmpty(message = "业务主键id不能为空")
    private String userChangeRecordId;
    @ApiModelProperty(value = "用户id", name = "userId", required = true)
    @NotNull(message = "用户id不能为空")
    private Long userId;
    @ApiModelProperty(value = "变更时间", name = "changeTime", required = true)
    @NotNull(message = "变更时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date changeTime;
    @ApiModelProperty(value = "入职状态，1-在职 0-离职, 2-入职待审核, 3-离职待审核", name = "status", required = true)
    @NotNull(message = "入职状态，1-在职 0-离职, 2-入职待审核, 3-离职待审核不能为空")
    private Integer status;
    @ApiModelProperty(value = "变更前企业id", name = "corpinfoIdBefore", required = true)
    @NotNull(message = "变更前企业id不能为空")
    private Long corpinfoIdBefore;
    @ApiModelProperty(value = "变更前企业名称", name = "corpinfoNameBefore", required = true)
    @NotEmpty(message = "变更前企业名称不能为空")
    private String corpinfoNameBefore;
    @ApiModelProperty(value = "变更前负责部门id", name = "departmentIdBefore", required = true)
    @NotNull(message = "变更前负责部门id不能为空")
    private Long departmentIdBefore;
    @ApiModelProperty(value = "变更前负责部门名称", name = "departmentNameBefore", required = true)
    @NotEmpty(message = "变更前负责部门名称不能为空")
    private String departmentNameBefore;
    @ApiModelProperty(value = "变更前负责岗位id", name = "postIdBefore", required = true)
    @NotNull(message = "变更前负责岗位id不能为空")
    private Long postIdBefore;
    @ApiModelProperty(value = "变更前负责岗位名称", name = "postNameBefore", required = true)
    @NotEmpty(message = "变更前负责岗位名称不能为空")
    private String postNameBefore;
    @ApiModelProperty(value = "变更后企业id", name = "corpinfoIdAfter", required = true)
    @NotNull(message = "变更后企业id不能为空")
    private Long corpinfoIdAfter;
    @ApiModelProperty(value = "变更后企业名称", name = "corpinfoNameAfter", required = true)
    @NotEmpty(message = "变更后企业名称不能为空")
    private String corpinfoNameAfter;
    @ApiModelProperty(value = "变更后负责部门id", name = "departmentIdAfter", required = true)
    @NotNull(message = "变更后负责部门id不能为空")
    private Long departmentIdAfter;
    @ApiModelProperty(value = "变更后负责部门名称", name = "departmentNameAfter", required = true)
    @NotEmpty(message = "变更后负责部门名称不能为空")
    private String departmentNameAfter;
    @ApiModelProperty(value = "变更后负责岗位id", name = "postIdAfter", required = true)
    @NotNull(message = "变更后负责岗位id不能为空")
    private Long postIdAfter;
    @ApiModelProperty(value = "变更后负责岗位名称", name = "postNameAfter", required = true)
    @NotEmpty(message = "变更后负责岗位名称不能为空")
    private String postNameAfter;
    @ApiModelProperty(value = "离职原因")
    private String resignationReason;
}

