package tech.easyflow.ai.vo;

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

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

    private boolean canProceed;

    private boolean hasAgentBindings;

    private boolean hasWorkflowUsages;

    private boolean hasPluginBindings;

    private boolean hasSkillBindings;

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

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

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

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

    private String message;

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

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

    /**
     * 是否存在 Agent 绑定。
     *
     * @return 是否存在 Agent 绑定
     */
    public boolean isHasAgentBindings() {
        return hasAgentBindings;
    }

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

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

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

    /**
     * 获取 Agent 绑定列表。
     *
     * @return Agent 绑定列表
     */
    public List<OfflineImpactBindingVo> getAgentBindings() {
        return agentBindings;
    }

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

    /**
     * 获取工作流引用列表。
     *
     * @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;
    }

    /**
     * 是否存在 Skill 绑定。
     *
     * @return 是否存在 Skill 绑定
     */
    public boolean isHasSkillBindings() {
        return hasSkillBindings;
    }

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

    /**
     * 获取 Skill 绑定列表。
     *
     * @return Skill 绑定列表
     */
    public List<OfflineImpactBindingVo> getSkillBindings() {
        return skillBindings;
    }

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

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

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