import { existsSync, readFileSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';

const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');

/** 本地 dev 默认端口；3000 在部分 Windows（Hyper-V 保留 2960–3059）上会 EACCES */
const DEFAULT_DEV_API_PORT = '3100';

/** 与 apps/api/.env 的 PORT 对齐 */
export function resolveApiDevPort() {
  if (process.env.PORT) return String(process.env.PORT);

  let port = DEFAULT_DEV_API_PORT;
  const envPath = resolve(repoRoot, 'apps/api/.env');
  if (existsSync(envPath)) {
    const match = readFileSync(envPath, 'utf8').match(/^PORT=(\d+)\s*$/m);
    if (match) port = match[1];
  }
  return port;
}

/** 供 player/admin Vite 代理使用 */
export function resolveApiDevTarget() {
  if (process.env.VITE_DEV_API_TARGET) return process.env.VITE_DEV_API_TARGET;
  if (process.env.API_DEV_TARGET) return process.env.API_DEV_TARGET;
  return `http://localhost:${resolveApiDevPort()}`;
}
