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

import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.modules.specialDocument.domain.Nodes;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.IOException;
import java.util.List;
import java.util.Map;

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


    /***********************************
     * 用途说明：获取专项文档节点 树形结构
     * 参数说明
     *  nodeName        节点名称
     *  projectId        所属项目ID
     * 返回值说明:  专项文档节点树形结构
     ***********************************/
    List<Map<String, Object>> getNodesTree(String nodeName,String projectId);

    /**********************************
     * 用途说明: 增加专项文档节点
     * 参数说明  nodes 专项文档节点信息
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回增加成功或者失败
     ***********************************/
    ResponseResult addNodes(Nodes nodes);

    /**********************************
     * 用途说明: 修改专项文档节点
     * 参数说明  nodes 专项文档节点信息
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回修改成功或者失败
     ***********************************/
    ResponseResult updateNodes(Nodes nodes);

    /**********************************
     * 用途说明: 根据ID删除专项文档节点
     * 参数说明  id 专项文档节点ID
     * 参数说明  path 路径
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回删除成功或者失败
     ***********************************/
    boolean deleteNodesById(String id,  String path);

    /**********************************
     * 用途说明: 专项文档管理扫描接口
     * 参数说明  id 所属项目ID
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回成功或者失败
     ***********************************/
    void specialScanByIdAsync(String id) throws Exception;

    /**********************************
     * 用途说明: 专项文档管理文档上传接口
     * 参数说明  id 所属项目ID
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回成功或者失败
     ***********************************/
    void documentUploadByIdAsync(String id,String fileName) throws IOException;
}
