/**
 * 解析 API base URL(给 api-client 的 `new URL(path, base)` 用)。
 *
 * 真理源 = 构建期注入的 NEXT_PUBLIC_API_BASE_URL(Next.js 在 build 时 inline 进 bundle)。
 * 防御:`??` 只挡 undefined,挡不住空串 —— 若 docker compose build 漏带
 *   `--env-file apps/pac-web/.env`,`${NEXT_PUBLIC_API_BASE_URL}` 会插值成空串,
 *   `new URL(path, '')` 直接抛 "Invalid base URL"(登录页白屏)。
 * 所以这里:空/缺失时,浏览器端退到**同源**(prod 反代下 API 与前端同域,天然正确),
 *   SSR 退到本地默认。即便构建注入失配,生产也不会硬崩。
 */
function resolveApiBaseUrl(): string {
  const fromEnv = process.env.NEXT_PUBLIC_API_BASE_URL;
  if (fromEnv && fromEnv.trim()) return fromEnv.trim();
  if (typeof window !== 'undefined') return window.location.origin;
  return 'http://localhost:3101';
}

export const env = {
  apiBaseUrl: resolveApiBaseUrl(),
};
