package cn.fateverse.query.service;

import cn.fateverse.common.core.result.Result;
import cn.fateverse.query.entity.vo.UniQueryVo;
import cn.fateverse.query.entity.dto.UniQueryDto;
import cn.fateverse.query.entity.query.UniQueryQuery;
import cn.fateverse.common.core.result.page.TableDataInfo;

import java.util.List;

/**
 * 万能查询 Service
 *
 * @author clay
 * @date 2023-03-01
 */
public interface UniQueryService {

    /**
     * 查询万能查询
     *
     * @param id 万能查询Id
     * @return 万能查询
     */
    UniQueryVo searchById(Long id);


    /**
     * 预览topo图
     *
     * @param valueOf
     * @return
     */
    String view(Long valueOf);

    /**
     * 查询万能查询列表
     *
     * @param query 万能查询
     * @return 万能查询集合
     */
    TableDataInfo<UniQueryVo> searchList(UniQueryQuery query);

    /**
     * 导出万能查询列表
     *
     * @param query query 万能查询
     * @return 万能查询集合
     */
    List<UniQueryVo> exportList(UniQueryQuery query);

    /**
     * 新增万能查询
     *
     * @param dto 万能查询
     * @return 结果
     */
    Result<UniQueryVo> save(UniQueryDto dto);

    /**
     * 修改万能查询
     *
     * @param dto 万能查询
     * @return 结果
     */
    int edit(UniQueryDto dto);

    /**
     * 删除万能查询
     *
     * @param id 需要删除的万能查询Id
     * @return 结果
     */
    int removeById(Long id);

    /**
     * 批量删除万能查询
     *
     * @param idList 需要删除的万能查询Id 集合
     * @return 结果
     */
    int removeBatch(List<Long> idList);
}