package tech.easyflow.ai.service;

import tech.easyflow.ai.entity.Bot;
import tech.easyflow.ai.entity.DocumentCollection;
import tech.easyflow.ai.entity.Workflow;

import java.util.Collection;

/**
 * AI 资源审批状态派生服务。
 * <p>
 * 该服务仅负责根据当前审批实例与资源真实状态派生只读展示字段，
 * 不参与资源状态回写，也不在读链路中执行任何数据库修复操作。
 */
public interface AiResourceApprovalStateService {

    /**
     * 填充工作流审批展示状态。
     *
     * @param workflow 工作流
     */
    void fillWorkflowApprovalState(Workflow workflow);

    /**
     * 批量填充工作流审批展示状态。
     *
     * @param workflows 工作流集合
     */
    void fillWorkflowApprovalState(Collection<Workflow> workflows);

    /**
     * 填充知识库审批展示状态。
     *
     * @param collection 知识库
     */
    void fillKnowledgeApprovalState(DocumentCollection collection);

    /**
     * 批量填充知识库审批展示状态。
     *
     * @param collections 知识库集合
     */
    void fillKnowledgeApprovalState(Collection<DocumentCollection> collections);

    /**
     * 填充聊天助手审批展示状态。
     *
     * @param bot 聊天助手
     */
    void fillBotApprovalState(Bot bot);

    /**
     * 批量填充聊天助手审批展示状态。
     *
     * @param bots 聊天助手集合
     */
    void fillBotApprovalState(Collection<Bot> bots);
}
