package io.wdd.rpc.execute;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import javax.annotation.Nullable;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class ExecutionMessage {

    /**
     * 2023年2月22日
     * 是否需要返回 命令行的处理调用结果
     * 通过 MQ返回
     */
    @JsonProperty(defaultValue = "true")
    @Nullable
    boolean needResultReplay;

    /**
     * 2023年2月22日
     * 是否是长时间持续执行任务
     */
    @JsonProperty(defaultValue = "false")
    @Nullable
    boolean durationTask;

    /**
     * 用于区分 ExecutionMessage的类型
     * 执行预定义的脚本内容 BASE
     * 执行k8s应用相关的内容 APP
     */
    @Nullable
    private String executionType;

    /**
     * 执行 上述预定义脚本 时需要的参数
     */
    @Nullable
    private List<String> funcContent;

    /**
     * 只有一行的命令行
     */
    @Nullable
    private List<String> singleLineCommand;

    /**
     * add in 2023-1-17
     * 页面定时脚本任务 需要传递完整的命令列表
     */
    @Nullable
    private List<List<String>> multiLineCommand;

    /**
     * add in 2023年8月14日
     * 管道命令
     */
    @Nullable
    private List<List<String>> pipeLineCommand;


}
