import { meshkeeApiBase, websiteDomain } from "@/lib/config"; export async function meshkeeGet(path: string, fallback: T, revalidate = 60): Promise { try { const response = await fetch(`${meshkeeApiBase}${path}`, { next: { revalidate }, }); if (!response.ok) return fallback; return (await response.json()) as T; } catch { return fallback; } } export function tenantPath(suffix: string) { return `/tenants/${encodeURIComponent(websiteDomain)}${suffix}`; } export type WebsiteFavicon = { faviconUrl: string | null; logoUrl: string | null; logoDarkUrl: string | null; hasDedicatedFavicon: boolean; }; export type BusinessInfo = { id: string; name: string; nameFa: string; about: string; vision: string; logoUrl: string | null; logoDarkUrl: string | null; faviconUrl: string | null; }; const defaultFavicon: WebsiteFavicon = { faviconUrl: null, logoUrl: null, logoDarkUrl: null, hasDedicatedFavicon: false, }; export async function getWebsiteFavicon() { return meshkeeGet(tenantPath("/website/favicon"), defaultFavicon); } export async function getBusinessInfo() { return meshkeeGet(tenantPath("/website/business-info"), null); } export async function getBusinessId() { const business = await getBusinessInfo(); return business?.id != null ? String(business.id) : ""; }