package cn.iocoder.yudao.module.bpm.controller.admin.stamp.stampinfo.vo;

import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

@Schema(description = "管理后台 - 用印信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class OaStampInfoRespVO {

    @Schema(description = "表单主键")
    // @ExcelProperty("表单主键")
    private Long id;

    @Schema(description = "uuid")
    // @ExcelProperty("uuid")
    private String stampUuid;

    @Schema(description = "用印申请人id")
    // @ExcelProperty("用印申请人id")
    private Long employeeId;

    @Schema(description = "用印申请人uuid")
    // @ExcelProperty("用印申请人uuid")
    private String employeeUuid;

    @Schema(description = "用印人")
    @ExcelProperty("用印人")
    private String employeeName;

    @Schema(description = "用户账号id")
    // @ExcelProperty("用户账号id")
    private Long userId;

    @Schema(description = "部门id")
    // @ExcelProperty("部门id")
    private Long deptId;

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

    @Schema(description = "员工职位id")
    // @ExcelProperty("员工职位id")
    private Long postId;

    @Schema(description = "员工职位")
    @ExcelProperty("员工职位")
    private String position;

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

    @Schema(description = "用印标题")
    @ExcelProperty("用印标题")
    private String stampTitle;

    @Schema(description = "印章id，多个用逗号分隔")
    // @ExcelProperty("印章id，多个用逗号分隔")
    private List<Long> stampSealId;

    @Schema(description = "用印事由")
    // @ExcelProperty("用印事由")
    private String reason;

    @Schema(description = "备注")
    // @ExcelProperty("备注")
    private String remarks;

    @Schema(description = "状态（0已完成、1已作废、2已生效）")
    // @ExcelProperty("状态（0已完成、1已作废、2已生效）")
    private String status;

    @Schema(description = "状态名称（0已完成、1已作废）")
    // @ExcelProperty("状态名称（0已完成、1已作废）")
    private String statusDesc;

    @Schema(description = "数据来源，0流程添加、1手动添加")
    // @ExcelProperty("数据来源，0流程添加、1手动添加")
    private String infoSource;

    @Schema(description = "数据来源名称，0流程添加、1手动添加")
    @ExcelProperty("数据来源")
    private String infoSourceDesc;

    @Schema(description = "创建员工id")
    // @ExcelProperty("创建员工id")
    private Long createEmployeeId;

    @Schema(description = "创建人")
    @ExcelProperty("创建人")
    private String createEmployeeName;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

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

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

}