package com.qiaoba.common.database.context;

import com.qiaoba.common.base.constant.TenantConstant;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 租户数据源类型
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023/6/28 10:25
 */
public class TenantDbTypeContext {

    /**
     * 租户数据源类型
     */
    private static Map<String, String> TENANT_DATASOURCE_TYPE_MAP = new ConcurrentHashMap<>();

    /**
     * 获取租户数据源类型
     *
     * @param tenantId 租户ID
     * @return 数据源类型
     */
    public static String get(String tenantId) {
        return TENANT_DATASOURCE_TYPE_MAP.get(tenantId);
    }

    /**
     * 设置租户数据源类型
     *
     * @param tenantId 租户ID
     * @param dbType   数据源类型
     */
    public static void set(String tenantId, String dbType) {
        TENANT_DATASOURCE_TYPE_MAP.put(tenantId, dbType);
    }

    /**
     * 获取默认(主)数据源类型
     *
     * @return 数据源类型
     */
    public static String getDefault() {
        return TENANT_DATASOURCE_TYPE_MAP.get(TenantConstant.DEFAULT_TENANT_ID);
    }

    /**
     * 设置默认(主)数据源类型
     *
     * @param dbType 数据源类型
     */
    public static void set(String dbType) {
        set(TenantConstant.DEFAULT_TENANT_ID, dbType);
    }
}
