package com.qqchen.deploy.backend.workflow.dto;

import com.fasterxml.jackson.databind.JsonNode;
import com.qqchen.deploy.backend.framework.dto.BaseDTO;
import com.qqchen.deploy.backend.workflow.dto.definition.node.uiVariables.NodeUiVariables;
import com.qqchen.deploy.backend.workflow.enums.NodeCategoryEnums;
import com.qqchen.deploy.backend.workflow.enums.NodeTypeEnums;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 工作流节点定义DTO
 */
@Data
@Schema(description = "工作流节点定义")
@EqualsAndHashCode(callSuper = true)
public class WorkflowNodeDefinitionDTO extends BaseDTO {

    @Schema(description = "节点类型编码")
    private NodeTypeEnums nodeType;

    @Schema(description = "节点编码")
    private String nodeCode;

    @Schema(description = "节点名称")
    private String nodeName;

    @Schema(description = "节点描述")
    private String description;

    @Schema(description = "节点分类")
    private NodeCategoryEnums category;

    @Schema(description = "节点UI")
    private NodeUiVariables uiVariables;

    @Schema(description = "节点属性")
    private JsonNode panelVariablesSchema;

    @Schema(description = "节点环境变量")
    private JsonNode localVariablesSchema;

    @Schema(description = "节点表单")
    private JsonNode formVariablesSchema;

    @Schema(description = "是否启用")
    private Boolean enabled = true;
} 