package tech.easyflow.ai.vo;

import java.util.ArrayList;
import java.util.List;

/**
 * 下线影响检查结果。
 */
public class OfflineImpactCheckVo {

    private boolean canProceed;

    private boolean hasBotBindings;

    private boolean hasWorkflowUsages;

    private boolean hasPluginBindings;

    private List<OfflineImpactBindingVo> botBindings = new ArrayList<>();

    private List<OfflineImpactBindingVo> workflowUsages = new ArrayList<>();

    private List<OfflineImpactBindingVo> pluginBindings = new ArrayList<>();

    private String message;

    /**
     * 是否允许继续下线。
     *
     * @return 是否允许继续
     */
    public boolean isCanProceed() {
        return canProceed;
    }

    /**
     * 设置是否允许继续下线。
     *
     * @param canProceed 是否允许继续
     */
    public void setCanProceed(boolean canProceed) {
        this.canProceed = canProceed;
    }

    /**
     * 是否存在 Bot 绑定。
     *
     * @return 是否存在 Bot 绑定
     */
    public boolean isHasBotBindings() {
        return hasBotBindings;
    }

    /**
     * 设置是否存在 Bot 绑定。
     *
     * @param hasBotBindings 是否存在 Bot 绑定
     */
    public void setHasBotBindings(boolean hasBotBindings) {
        this.hasBotBindings = hasBotBindings;
    }

    /**
     * 是否存在工作流引用。
     *
     * @return 是否存在工作流引用
     */
    public boolean isHasWorkflowUsages() {
        return hasWorkflowUsages;
    }

    /**
     * 设置是否存在工作流引用。
     *
     * @param hasWorkflowUsages 是否存在工作流引用
     */
    public void setHasWorkflowUsages(boolean hasWorkflowUsages) {
        this.hasWorkflowUsages = hasWorkflowUsages;
    }

    /**
     * 获取 Bot 绑定列表。
     *
     * @return Bot 绑定列表
     */
    public List<OfflineImpactBindingVo> getBotBindings() {
        return botBindings;
    }

    /**
     * 设置 Bot 绑定列表。
     *
     * @param botBindings Bot 绑定列表
     */
    public void setBotBindings(List<OfflineImpactBindingVo> botBindings) {
        this.botBindings = botBindings;
    }

    /**
     * 获取工作流引用列表。
     *
     * @return 工作流引用列表
     */
    public List<OfflineImpactBindingVo> getWorkflowUsages() {
        return workflowUsages;
    }

    /**
     * 设置工作流引用列表。
     *
     * @param workflowUsages 工作流引用列表
     */
    public void setWorkflowUsages(List<OfflineImpactBindingVo> workflowUsages) {
        this.workflowUsages = workflowUsages;
    }

    public boolean isHasPluginBindings() {
        return hasPluginBindings;
    }

    public void setHasPluginBindings(boolean hasPluginBindings) {
        this.hasPluginBindings = hasPluginBindings;
    }

    public List<OfflineImpactBindingVo> getPluginBindings() {
        return pluginBindings;
    }

    public void setPluginBindings(List<OfflineImpactBindingVo> pluginBindings) {
        this.pluginBindings = pluginBindings;
    }

    /**
     * 获取提示信息。
     *
     * @return 提示信息
     */
    public String getMessage() {
        return message;
    }

    /**
     * 设置提示信息。
     *
     * @param message 提示信息
     */
    public void setMessage(String message) {
        this.message = message;
    }
}
