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

import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.modules.experimentalData.domain.TsNodes;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 试验任务节点表 服务类
 * </p>
 *
 * @author LiMengNan
 * @since 2025-01-21
 */
public interface ITsNodesService extends IService<TsNodes> {

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

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

    /**********************************
     * 用途说明: 修改试验任务节点
     * 参数说明  tsnodes  试验任务节点信息
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回修改成功或者失败
     ***********************************/
    ResponseResult updateTsNodes(TsNodes tsnodes);

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


    boolean deleteTsNodesByTaskId(String taskId,String path);

    /**********************************
     * 用途说明: 试验数据扫描接口
     * 参数说明  id 试验任务ID
     * 返回值说明: com.yfd.platform.config.ResponseResult 返回成功或者失败
     ***********************************/
    void testDataScanByIdAsync(String id) throws Exception;
}
