package org.xyzh.api.ai.service;

import java.util.Map;

import org.xyzh.common.core.domain.ResultDomain;

import com.alibaba.fastjson2.JSONObject;

/**
 * @description    Dify代理服务接口
 * @filename    DifyProxyService.java
 * @author    yslg
 * @copyright xyzh
 * @since 2025-12-15
 */
public interface DifyProxyService {

    /**
     * 获取某个知识库的某个文档的所有分段
     * @param datasetId 数据集ID
     * @param documentId 文档ID
     * @return 文档分段列表
     */
    ResultDomain<JSONObject> getDocumentSegments(String datasetId, String documentId);

    /**
     * @description    更新某个知识库的某个文档的某个分段
     * @param datasetId 数据集ID
     * @param documentId 文档ID
     * @param segmentId 分段ID
     * @param requestBody 更新请求体
     * @return 更新结果
     */
    ResultDomain<String> updateSegment(String datasetId, String documentId, String segmentId, Map<String, Object> requestBody);

    /**
     * @description    创建某个知识库的某个文档的某个分段
     * @param datasetId 数据集ID
     * @param documentId 文档ID
     * @param requestBody 创建请求体
     * @return 创建结果
     */
    ResultDomain<String> createSegment(String datasetId, String documentId, Map<String, Object> requestBody);

    /**
     * @description    删除某个知识库的某个文档的某个分段
     * @param datasetId 数据集ID
     * @param documentId 文档ID
     * @param segmentId 分段ID
     * @return 删除结果
     */
    ResultDomain<String> deleteSegment(String datasetId, String documentId, String segmentId);

    /**
     * @description 更新文档启用/禁用状态
     * @param datasetId Dify数据集ID
     * @param action 操作类型（enable/disable/archive/un_archive）
     * @param requestBody 请求体（包含document_ids数组）
     * @return ResultDomain<String> 更新结果
     */
    ResultDomain<String> updateDocumentStatus(String datasetId, String action, Map<String, Object> requestBody);
}
