package cc.mrbird.febs.server.generator.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yida.data.common.core.entity.QueryRequest;
import com.yida.data.common.core.entity.system.Column;
import com.yida.data.common.core.entity.system.Table;

import java.util.List;

/**
 * @author MrBird
 */
public interface GeneratorService {

    /**
     * 获取数据库列表
     *
     * @param databaseType databaseType
     * @return 数据库列表
     */
    List<String> getDatabases(String databaseType);

    /**
     * 获取数据表
     *
     * @param tableName    tableName
     * @param request      request
     * @param databaseType databaseType
     * @param schemaName   schemaName
     * @return 数据表分页数据
     */
    IPage<Table> getTables(String tableName, QueryRequest request, String databaseType, String schemaName);

    /**
     * 获取数据表列信息
     *
     * @param databaseType databaseType
     * @param schemaName   schemaName
     * @param tableName    tableName
     * @return 数据表列信息
     */
    List<Column> getColumns(String databaseType, String schemaName, String tableName);

    /**
     * 获取单个数据表
     *
     * @param databaseType databaseType
     * @param schemaName   schemaName
     * @param tableName    tableName
     * @return com.yida.data.common.core.entity.system.Table
     * @author ZYJ
     * @date 2023/5/19 11:18
     */
    Table getTable(String databaseType, String schemaName, String tableName);
}
