package com.ebts.generator.dao;

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

import com.ebts.generator.entity.GenTable;
import com.ebts.generator.entity.TopSearchTable;
import com.ebts.generator.entity.TopSearchColumn;

/**
 * top万能查询主Mapper接口
 * 
 * @author clay
 * @date 2021-07-20
 */
public interface TopSearchTableDao {
    /**
     * 查询top万能查询主
     * 
     * @param id top万能查询主ID
     * @return top万能查询主
     */
    TopSearchTable selectTopSearchTableById(Long id);

    /**
     * 查询top万能查询主列表
     * 
     * @param topSearchTable top万能查询主
     * @return top万能查询主集合
     */
    List<TopSearchTable> selectTopSearchTableList(TopSearchTable topSearchTable);

    /**
     * 获取top万能查询基础表格信息
     * @param roleIds
     * @return
     */
    List<TopSearchTable> selectTopSearchTables(String[] roleIds);


    List<TopSearchColumn> selectTableColumns(Long id);
    /**
     *
     * @return
     */
    List<TopSearchTable> selectTopSearchTableInfo();

    /**
     * 查询据库列表
     *
     * @param tableNames 表名称组
     * @return 数据库表集合
     */
    List<TopSearchTable> selectDbTableListByNames(String[] tableNames);


    /**
     * 获取数据库表信息
     *
     * @param params 表名称组
     * @return 数据库表集合
     */
    List<Map<String,Object>> selectDbTableList(Map<String,Object> params);
    /**
     * 根据表名查询列
     * @param tableName
     * @return
     */
    List<TopSearchColumn> selectDbTableColumnsByName(String tableName);



    /**
     * 新增top万能查询主
     * 
     * @param topSearchTable top万能查询主
     * @return 结果
     */
    int insertTopSearchTable(TopSearchTable topSearchTable);

    /**
     * 修改top万能查询主
     * 
     * @param topSearchTable top万能查询主
     * @return 结果
     */
    int updateTopSearchTable(TopSearchTable topSearchTable);

    /**
     * 删除top万能查询主
     * 
     * @param id top万能查询主ID
     * @return 结果
     */
    int deleteTopSearchTableById(Long id);

    /**
     * 批量删除top万能查询主
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteTopSearchTableByIds(Long[] ids);

    /**
     * 批量删除top万能查询字段
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteTopSearchColumnBySearchTableIds(Long[] ids);
    
    /**
     * 批量新增top万能查询字段
     * 
     * @param topSearchColumnList top万能查询字段列表
     * @return 结果
     */
    int batchTopSearchColumn(List<TopSearchColumn> topSearchColumnList);
    

    /**
     * 通过top万能查询主ID删除top万能查询字段信息
     * 
     * @param id top万能查询主ID
     * @return 结果
     */
    int deleteTopSearchColumnBySearchTableId(Long id);
}
