const PUBLIC_SITE_SETTINGS_CACHE_TTL_MS = 30_000; const PUBLIC_SITE_SETTINGS_CACHE_KEY = Symbol.for( "ai-chatbot.public-site-settings-cache", ); type PublicSiteSettingsCacheEntry = { data: Record; expiresAt: number; }; function getPublicSiteSettingsCacheStore() { const globalCache = globalThis as typeof globalThis & { [PUBLIC_SITE_SETTINGS_CACHE_KEY]?: Map< string, PublicSiteSettingsCacheEntry >; }; if (!globalCache[PUBLIC_SITE_SETTINGS_CACHE_KEY]) { globalCache[PUBLIC_SITE_SETTINGS_CACHE_KEY] = new Map< string, PublicSiteSettingsCacheEntry >(); } return globalCache[PUBLIC_SITE_SETTINGS_CACHE_KEY]!; } export function getScopedSiteSettingsCache(cacheKey: string) { return getPublicSiteSettingsCacheStore().get(cacheKey) ?? null; } export function setScopedSiteSettingsCache( cacheKey: string, data: Record, ttlMs: number = PUBLIC_SITE_SETTINGS_CACHE_TTL_MS, ) { getPublicSiteSettingsCacheStore().set(cacheKey, { data, expiresAt: Date.now() + ttlMs, }); } export function deleteScopedSiteSettingsCache(cacheKey: string) { getPublicSiteSettingsCacheStore().delete(cacheKey); } export function clearScopedSiteSettingsCache() { getPublicSiteSettingsCacheStore().clear(); } export { PUBLIC_SITE_SETTINGS_CACHE_TTL_MS };