package com.ruoyi.info.collection.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 员工调动记录导入失败记录VO
 *
 * @author ruoyi
 * @date 2026-02-10
 */
@Data
@Schema(description = "员工调动记录导入失败记录")
public class StaffTransferImportFailureVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 员工ID */
    @Schema(description = "员工ID")
    private Long staffId;

    /** 员工姓名 */
    @Schema(description = "员工姓名")
    private String staffName;

    /** 调动前部门ID */
    @Schema(description = "调动前部门ID")
    private Long deptIdBefore;

    /** 调动后部门ID */
    @Schema(description = "调动后部门ID")
    private Long deptIdAfter;

    /** 调动类型 */
    @Schema(description = "调动类型")
    private String transferType;

    /** 调动子类型 */
    @Schema(description = "调动子类型")
    private String transferSubType;

    /** 调动前部门 */
    @Schema(description = "调动前部门")
    private String deptNameBefore;

    /** 调动前职级 */
    @Schema(description = "调动前职级")
    private String gradeBefore;

    /** 调动前岗位 */
    @Schema(description = "调动前岗位")
    private String positionBefore;

    /** 调动前薪酬等级 */
    @Schema(description = "调动前薪酬等级")
    private String salaryLevelBefore;

    /** 调动后部门 */
    @Schema(description = "调动后部门")
    private String deptNameAfter;

    /** 调动后职级 */
    @Schema(description = "调动后职级")
    private String gradeAfter;

    /** 调动后岗位 */
    @Schema(description = "调动后岗位")
    private String positionAfter;

    /** 调动后薪酬等级 */
    @Schema(description = "调动后薪酬等级")
    private String salaryLevelAfter;

    /** 调动日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "调动日期")
    private Date transferDate;

    /** 错误信息 */
    @Schema(description = "错误信息")
    private String errorMessage;
}
