package com.qiaoba.common.database.service;

import com.qiaoba.common.database.entity.DynamicDataSource;

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

/**
 * 动态数据源接口
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023/6/9 13:15
 */
public interface DynamicDatasourceService {

    /**
     * 加载所有租户的数据源
     *
     * @return 数据源集合 key: tenantId | value: list
     */
    Map<String, List<DynamicDataSource>> loadAllTenantDatasource();

    /**
     * 改变主数据源
     *
     * @param tenantId     租户ID
     * @param datasourceId 数据源ID
     */
    void changePrimaryDatasource(String tenantId, String datasourceId);

    /**
     * 通过IP查询
     *
     * @param tenantId tenantId
     * @param ip       ip
     * @return obj
     */
    DynamicDataSource selectByIp(String tenantId, String ip);
}
