package com.ruoyi.dxp.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.dxp.domain.Database;

/**
 * 数据源Service接口
 * 
 * @author jy
 * @date 2022-11-06
 */
public interface IDatabaseService 
{
    /**
     * 查询数据源
     * 
     * @param id 数据源主键
     * @return 数据源
     */
    public Database selectDatabaseById(Long id);

    /**
     * 查询数据源列表
     * 
     * @param database 数据源
     * @return 数据源集合
     */
    public List<Database> selectDatabaseList(Database database);

    /**
     * 新增数据源
     * 
     * @param database 数据源
     * @return 结果
     */
    public AjaxResult insertDatabase(Database database) throws Exception;

    /**
     * 同步数据库结构
     * @param id 数据库id
     * @return
     */
    public AjaxResult sync(Long id);

    /**
     * 修改数据源
     * 
     * @param database 数据源
     * @return 结果
     */
    public AjaxResult updateDatabase(Database database);

    /**
     * 删除数据源信息
     * 
     * @param id 数据源主键
     * @return 结果
     */
    public AjaxResult deleteDatabaseById(Long id);

    /**
     * 写入redis
     */
    public void writeToRedis();

    /**
     * 从远程同步数据结构
     */
    public void syncAll();
}
