// ============================================================
// 应用常量 —— 版本号、版本类型、窗口标题
// 主进程 & 渲染进程共享
// ============================================================

import type { Edition, Platform } from '../types';
import { APP_VERSION } from './version';

/** 应用显示名称（文件/标题通用前缀） */
export const APP_NAME = '船长-HeiXiu';

// APP_VERSION 从 ./version.ts 导入（读取 package.json），不再硬编码

// ============================================================
// 版本类型（企业版 / 个人版）
//
// 注意：edition 由后端 account_type 运行时决定，不由构建变量控制。
// 不再需要 parseEdition() —— 构建时 EDITION 环境变量已移除。
// ============================================================

/** 版本中文名称 */
export function getEditionName(edition: Edition): string {
   return edition === 'enterprise' ? '企业版' : '个人版';
}

// ============================================================
// 窗口标题构建
// ============================================================

/** 平台中文名称（简写） */
function platformShortName(platform: Platform): string {
   if (platform === 'darwin') return 'MAC';
   if (platform === 'win32') return 'Windows';
   return 'Linux';
}

/**
 * 构建窗口标题
 *
 * 格式（无版控）：船长-HeiXiu-{平台}-{版本号}
 *   示例：船长-HeiXiu-Windows-0.0.23
 *
 * 格式（含版控）：船长-HeiXiu-{平台}-{版本号}·{版控}
 *   示例：船长-HeiXiu-Windows-0.0.23·企业版
 *
 * @param platform - 当前操作系统平台
 * @param version  - 可选覆盖版本号（默认 APP_VERSION）
 * @param edition  - 可选版本类型（登录后追加，未登录不显示）
 */
export function buildWindowTitle(platform: Platform, version?: string, edition?: Edition): string {
   const ver = version ?? APP_VERSION;
   const os = platformShortName(platform);
   const base = `${APP_NAME}-${os}-${ver}`;
   if (edition) {
      return `${base}·${getEditionName(edition)}`;
   }
   return base;
}
