package com.erp.tenant;

/**
 * 요청 단위 tenant DB 컨텍스트.
 * SubdomainResolverFilter 가 세팅하고, (Phase 2 이후) TenantRoutingDataSource 가 읽는다.
 * Phase 1 단계에선 세팅/클리어만 수행. 실제 라우팅은 Phase 2에서 붙음.
 */
public final class DbContextHolder {

    /** 메타 DB (invyone.com / admin.invyone.com / 서브도메인 없음) 를 가리키는 센티넬 */
    public static final String META = "__META__";

    private static final ThreadLocal<String> CTX = new ThreadLocal<>();

    private DbContextHolder() {}

    public static void set(String dbName) {
        CTX.set(dbName);
    }

    public static void setMeta() {
        CTX.set(META);
    }

    public static String get() {
        return CTX.get();
    }

    public static boolean isMeta() {
        return META.equals(CTX.get());
    }

    public static void clear() {
        CTX.remove();
    }
}
