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 DocTemplateTagRespVO {

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

    @Schema(description = "标签名称（中文）", requiredMode = Schema.RequiredMode.REQUIRED, example = "合同编号")
    private String tagName;

    @Schema(description = "标签编码（Velocity变量名）", requiredMode = Schema.RequiredMode.REQUIRED, example = "contractNo")
    private String tagCode;

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

    @Schema(description = "所属分类名称", example = "合同管理")
    private String categoryName;

    @Schema(description = "数据类型", example = "String")
    private String dataType;

    @Schema(description = "默认值", example = "")
    private String defaultValue;

    @Schema(description = "SQL脚本（可选，仅保存参考）", example = "SELECT contract_no FROM contract_main WHERE id = #{businessId}")
    private String sqlScript;

    @Schema(description = "描述", example = "合同主表的合同编号字段")
    private String description;

    @Schema(description = "排序号", example = "1")
    private Integer sort;

    @Schema(description = "是否启用（1=启用，0=停用）", example = "1")
    private String enabled;

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

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

    @Schema(description = "创建人名称", example = "管理员")
    private String creatorName;

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

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

    @Schema(description = "更新人名称", example = "管理员")
    private String updaterName;

}
