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.dto.SqlDto;
import cn.fateverse.query.entity.dto.UniConDto;
import cn.fateverse.query.entity.vo.SqlInfoVo;

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

/**
 * @author Clay
 * @date 2023-08-09
 */
public interface SqlSearchService {
    /**
     * 根据查询id获取到sql的信息
     *
     * @param queryId 查询id
     * @return sql信息
     */
    SqlInfoVo search(Long queryId);

    /**
     * 保存sql自定义查询
     *
     * @param sqlDto sql自定义查询信息
     */
    void saveData(SqlDto sqlDto);

    /**
     * 预览查询结果
     *
     * @param sqlDto sql查询信息对象
     * @return 自定义查询返回结果
     */
    Result<CustomQueryResult> preview(SqlDto sqlDto);


    /**
     * 发布自定义查询
     *
     * @param sqlDto sql查询
     */
    void publish(SqlDto sqlDto);

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

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