package com.zt.plat.module.base.controller.admin.templtp.vo;

import com.zt.plat.module.system.api.dept.dto.DeptDetailRespDTO;
import com.zt.plat.module.system.api.dept.dto.DeptRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 模板实例 Response VO")
@Data
@ExcelIgnoreUnannotated
public class TemplateInstanceRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "29024")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "分类树主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7804")
    @ExcelProperty("分类树主键")
    private Long tpId;

    @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("模板名称")
    private String name;

    @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("模板编码")
    private String cdg;

    @Schema(description = "模板描述")
    @ExcelProperty("模板描述")
    private String dsp;

    @Schema(description = "实例文件内容")
    @ExcelProperty("实例文件内容")
    private String cntt;

    @Schema(description = "原始文件内容", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("原始文件内容")
    private String origCntt;

    @Schema(description = "文件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("文件类型")
    private String fileTp;

    @Schema(description = "版本号;如v1.0", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("版本号;如v1.0")
    private String ver;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("状态")
    private String sts;

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

    @Schema(description = "发布时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("发布时间")
    private LocalDateTime publishTime;
    @Schema(description = "使用部门编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
    private List<String> deptIds;
    @Schema(description = "实例字段;这个是实例字段绑定的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
    private List<TemplateInstanceDataRespVO> templateInstanceDataRespVOS;
    @Schema(description = "实例条款；这个是实例条款绑定的条款;", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
    private List<TemplateInstanceItemRespVO> instanceItemRespVOS;

    @Schema(description = "使用部门编", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
    private List<DeptRespDTO> DeptRespVOS;

    @Schema(description = "模版分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试分类名称")
    @ExcelProperty("模版分类名称")
    private String tpName;


    @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建人")
    private String creator;

    @Schema(description = "创建人名", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建人名")
    private String creatorName;

}
