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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

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

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

    @Schema(description = "实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2025年上海XX供应商采购合同")
    private String instanceName;

    @Schema(description = "实例编码", example = "DOC-20250127-001")
    private String instanceCode;

    @Schema(description = "引用的模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long templateId;

    @Schema(description = "业务关联类型", example = "contract")
    private String businessType;

    @Schema(description = "业务关联ID", example = "100")
    private Long businessId;

    @Schema(description = "业务关联标签", example = "PC-2025-001")
    private String businessLabel;

    @Schema(description = "用户编辑后的内容")
    private String editedContent;

    @Schema(description = "渲染后的最终内容")
    private String renderedContent;

    @Schema(description = "备注", example = "采购合同文档")
    private String remark;

    @Schema(description = "状态", example = "draft")
    private String status;

    @Schema(description = "SQL配置（JSON格式）", example = "{}")
    private String sqlConfig;

    @Schema(description = "数据源标识", example = "default")
    private String dataSource;

    @Schema(description = "分类ID", example = "1")
    private Long categoryId;

    @Schema(description = "图标", example = "icon-file")
    private String icon;

    @Schema(description = "描述", example = "采购合同模板实例")
    private String description;

    @Schema(description = "版本号", example = "v1.0")
    private String version;

    @Schema(description = "模板名称", example = "采购合同模板")
    private String templateName;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "更新人", example = "admin")
    private String updater;

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

    @Schema(description = "创建人", example = "admin")
    private String creator;

}
