/**
 * 环境工具函数
 *
 * 提供环境相关的配置和工具函数
 */

/**
 * OSS 环境前缀映射
 */
const OSS_ENV_PREFIX_MAP: Record<string, string> = {
  development: 'dev',
  test: 'test',
  production: 'prod',
};

/**
 * 获取当前 Vite 环境
 */
export function getViteEnv(): string {
  return import.meta.env.MODE || 'development';
}

/**
 * 获取 OSS 环境前缀
 *
 * @returns OSS 环境前缀（dev/test/prod）
 */
export function getOssEnvPrefix(): string {
  const env = getViteEnv();
  return OSS_ENV_PREFIX_MAP[env] || 'dev';
}

/**
 * 构建完整的 OSS 目录路径
 *
 * @param bizDir 业务目录（如：avatar, course/cover）
 * @returns 完整目录路径（如：dev/avatar, test/course/cover）
 */
export function buildOssDirPath(bizDir?: string): string {
  const envPrefix = getOssEnvPrefix();

  if (!bizDir) {
    return envPrefix;
  }

  // 移除 bizDir 开头可能存在的环境前缀，避免重复
  const cleanBizDir = bizDir.replace(/^(dev|test|prod)\//, '');

  return `${envPrefix}/${cleanBizDir}`;
}
