Route all user-facing Atom hotel defaults through resolveHotelName (settings then HOTEL_NAME env then brand constant). Exclude Playwright e2e from tsconfig until deps are installed. Co-authored-by: Cursor <[email protected]>
27 lines
867 B
TypeScript
27 lines
867 B
TypeScript
import "server-only";
|
|
|
|
import { env } from "@/env";
|
|
import { FALLBACK_HOTEL_NAME } from "@/lib/brand";
|
|
import { siteSettings } from "@/lib/services/site-settings";
|
|
|
|
/**
|
|
* Resolve the public hotel name: CMS setting → HOTEL_NAME env → FALLBACK_HOTEL_NAME.
|
|
*/
|
|
export async function resolveHotelName(): Promise<string> {
|
|
const fromSettings = await siteSettings.get("hotel_name", env.HOTEL_NAME);
|
|
const trimmed = fromSettings?.trim();
|
|
if (trimmed) return trimmed;
|
|
const fromEnv = env.HOTEL_NAME?.trim();
|
|
if (fromEnv) return fromEnv;
|
|
return FALLBACK_HOTEL_NAME;
|
|
}
|
|
|
|
/** Coalesce an already-fetched hotel name string. */
|
|
export function coalesceHotelName(value: string | null | undefined): string {
|
|
const trimmed = value?.trim();
|
|
if (trimmed) return trimmed;
|
|
const fromEnv = env.HOTEL_NAME?.trim();
|
|
if (fromEnv) return fromEnv;
|
|
return FALLBACK_HOTEL_NAME;
|
|
}
|