package com.yfd.platform.modules.specialDocument.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.modules.experimentalData.domain.TsFiles;
import com.yfd.platform.modules.specialDocument.domain.Files;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 专项文档表 服务类
 * </p>
 *
 * @author LiMengNan
 * @since 2025-01-20
 */
public interface IFilesService extends IService<Files> {


    /**********************************
     * 用途说明: 分页查询专项文档管理-文档内容
     * 参数说明
     * fileName      文件名称
     * startDate     (开始日期)
     * endDate      （结束日期）
     * keywords      关键字
     *nodeId         节点ID
     *projectId      所属项目ID
     * pageNum 当前页
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回分页查询结果
     ***********************************/
    Page<Files> getFilesPage(String fileName, String startDate, String endDate, String keywords, String nodeId, String projectId, String fileName1, Page<Files> page) throws Exception;

    /***********************************
     * 用途说明：新增专项文档管理-文档内容
     * 参数说明
     * Files     文档内容
     * sourcePath     源路径
     * targetPath     目标路径
     * 返回值说明:  com.yfd.platform.config.ResponseResult 返回新增成功或者失败
     ***********************************/
    ResponseResult addFiles(Files files,String sourcePath,String targetPath) throws Exception;

    /**********************************
     * 用途说明: 修改专项文档管理-文档内容
     * 参数说明
     * Files     文档内容
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回修改成功或者失败
     ***********************************/
    boolean updateFiles(Files files);

    /**********************************
     * 用途说明: 根据ID删除专项文档管理-文档内容
     * 参数说明  id 文档内容ID
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回删除成功或者失败
     **********************************
     * @return*/
    String deleteFilesByIds(List<String> dataset);

    IPage<Files> getCachedFilesPage(String projectId, String nodeId, int currentPage);
}
