package com.zt.plat.module.qms.common.data.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 表单设计器模板新增/修改 Request VO")
@Data
public class DataTemplateSaveReqVO {

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

    @Schema(description = "上级id", requiredMode = Schema.RequiredMode.REQUIRED, example = "14825")
    private Long parentId;

    @Schema(description = "主数据id，用于版本识别", requiredMode = Schema.RequiredMode.REQUIRED, example = "12080")
    private Long mainId;

    @Schema(description = "id路径", requiredMode = Schema.RequiredMode.REQUIRED)
    private String idPath;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    private String name;

    @Schema(description = "节点类型,字典：qms_tree_node_type，category-分类；data-表单", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private String nodeType;

    @Schema(description = "数据键", requiredMode = Schema.RequiredMode.REQUIRED)
    private String dataKey;

    @Schema(description = "版本", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer version;

    @Schema(description = "是否最新版本,默认显示最新版本", requiredMode = Schema.RequiredMode.REQUIRED)
    private String currentFlag;

    @Schema(description = "禁用状态,0-启用；1-禁用", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cancelFlag;

    @Schema(description = "排序号")
    private Integer sortNo;

    @Schema(description = "其他配置")
    private String customConfig;

    @Schema(description = "模板内容")
    private String formContent;

    @Schema(description = "移动端模板内容")
    private String mobileContent;

    @Schema(description = "所属部门")
    private String systemDepartmentCode;

    @Schema(description = "备注")
    private String remark;

//==============扩展字段===============
    @Schema(description = "是否创建新版本")
    private String newVersionFlag;

}