package com.fs.fastgptApi.service;

import com.fs.fastgptApi.param.*;
import com.fs.fastgptApi.result.*;

import java.io.File;
import java.io.IOException;

/**
* 集合
*/
public interface DataSetCollectionService {
    /**
     * 创建一个空的集合
     */
    KnowledgeBaseResult createEmptyCollection(CreateCollectionParam param,String url,String key);

    /**
     * 创建一个纯文本集合
     */
    CreateTextCollectionResult createTextCollection(CreateTextCollectionParam param,String url,String key);

    /**
     * 创建一个链接结合
     */
    CreateLinkCollectionResult createLinkCollection(CreateLinkCollectionParam param,String url,String key);

    /**
     * 创建一个文件集合
     */
    CreateFileCollectionResult createFileCollection(File file,String filaName,UploadFileParam param,String url,String key) throws IOException;

    /**
     *  创建一个外部文件库集合（商业版）
     */
    CreateExternalFileCollectionResult createExternalFileCollection(CreateExternalFileCollectionParam param,String url,String key);

    /**
     * 获取集合列表
     */
    GetCollectionListResult getCollectionList(GetCollectionListParam param,String url,String key);

    /**
     * 获取集合详情
     */
    GetCollectionDetailResult getCollectionDetail(String ID,String url,String key);

    /**
     * 修改集合信息(通过集合 ID 修改集合信息)
     */
    KnowledgeBaseResult updateCollectionInfoById(UpdateCollectionByIdParam param,String url,String key);

    /**
     * 修改集合信息(通过外部文件 ID 修改集合信息， 只需要把 id 换成 datasetId 和 externalFileId。)
     */
    KnowledgeBaseResult updateCollectionInfoByIdByDatasetId(UpdateCollectionByDatasetIdParam param,String url,String key);

    /**
     *  删除一个集合
     */
    KnowledgeBaseResult deleteCollection(String ID,String url,String key);
}
