package cn.fateverse.query.service;

import cn.fateverse.common.core.result.Result;
import cn.fateverse.common.core.result.page.TableDataInfo;
import cn.fateverse.query.entity.vo.CustomQueryResult;
import cn.fateverse.query.entity.vo.TopoVo;
import cn.fateverse.query.entity.dto.TopoDto;
import cn.fateverse.query.entity.dto.UniConDto;

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

/**
 * @author Clay
 * @date 2023-07-21
 */
public interface TopologySearchService {


    /**
     * 获取拓扑图需要的表格数据
     *
     * @return 表格数据
     */
    TopoVo search(Long queryId);

    /**
     * 保存拓扑图的信息
     *
     * @param topo 数据信息
     * @return 操作结果
     */
    Integer saveData(TopoDto topo);

    /**
     * 预览拓扑图数据
     *
     * @param topo 数据信息
     * @return 操作结果
     */
    Result<CustomQueryResult> preview(TopoDto topo);

    /**
     * 发布自定义查询
     *
     * @param topo 拓扑图数据
     */
    void publish(TopoDto topo);

    /**
     * 预览数据
     */
    TableDataInfo<Map<String, Object>> previewData(List<UniConDto> list, Long queryId);

    /**
     * 撤销自定义查询
     *
     * @param queryId 自定义查询id
     */
    void cancel(Long queryId);
}
