package tech.easyflow.publicapi.dto;

import jakarta.validation.constraints.NotNull;

import java.math.BigInteger;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Public Workflow API JSON 与 Multipart 执行元数据。
 */
public class PublicWorkflowRunMetadata {

    @NotNull(message = "metadata.id 不能为空")
    private BigInteger id;
    private Map<String, Object> variables = new LinkedHashMap<>();

    /**
     * 获取工作流 ID。
     *
     * @return 工作流 ID
     */
    public BigInteger getId() {
        return id;
    }

    /**
     * 设置工作流 ID。
     *
     * @param id 工作流 ID
     */
    public void setId(BigInteger id) {
        this.id = id;
    }

    /**
     * 获取普通运行变量。
     *
     * @return 普通运行变量
     */
    public Map<String, Object> getVariables() {
        return variables;
    }

    /**
     * 设置普通运行变量。
     *
     * @param variables 普通运行变量
     */
    public void setVariables(Map<String, Object> variables) {
        this.variables = variables == null
                ? new LinkedHashMap<>()
                : new LinkedHashMap<>(variables);
    }
}
