package cn.iocoder.yudao.module.relations.controller.admin.contract.vo;

import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

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

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 员工合同信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RelationsContractRespVO {

    @Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28961")
    private Long id;

    @Schema(description = "业务UUID", requiredMode = Schema.RequiredMode.REQUIRED, example = "17794")
    private String contractId;

    @Schema(description = "员工姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @ExcelProperty("员工姓名")
    private String employeeName;

    @Schema(description = "部门ID", example = "20570")
    private Long deptId;

    @Schema(description = "部门名称", example = "张三")
    @ExcelProperty("部门")
    private String deptName;

    @Schema(description = "职位编号", example = "13164")
    private Long postId;

    @Schema(description = "职位名称")
    @ExcelProperty("职位")
    private String position;

    @Schema(description = "员工编号")
    private String employeeNumber;

    @Schema(description = "员工手机号")
    @ExcelProperty("员工手机号")
    private String employeePhone;

    @Schema(description = "合同开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("合同开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate contractStartDate;

    @Schema(description = "合同结束日期")
    @ExcelProperty("合同结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate contractEndDate;

    @Schema(description = "合同期限")
    private String contractDeadline;

    @Schema(description = "备注信息")
    private String remarks;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer status;

    @Schema(description = "创建人员工id", example = "11670")
    private Long creatorEmployeeId;

    @Schema(description = "创建人员工姓名", example = "赵六")
    @ExcelProperty("创建人")
    private String creatorEmployeeName;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "员工ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31256")
    private Long employeeId;

    @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "4014")
    private Long tenantId;

    @Schema(description = "附件列表")
    private List<FileDTO> fileList;

    @Schema(description = "附件id列表")
    private List<Long> fileIdList;
}