// CDN配置 - 你可以在这里修改CDN路径
const CDN_CONFIG = {
  // 开发环境CDN路径 - 修改这里
  development: 'http://t19x0c1nb.hn-bkt.clouddn.com',
  
  // 生产环境CDN路径 - 修改这里
  production: 'http://t19x0c1nb.hn-bkt.clouddn.com'
};

// 环境配置
const config = {
  // 开发环境配置
  development: {
    cdnBaseUrl: CDN_CONFIG.development,
    apiBaseUrl: 'http://localhost:3000/api',
    imageBaseUrl: `${CDN_CONFIG.development}/static`
  },
  
  // 生产环境配置
  production: {
    cdnBaseUrl: CDN_CONFIG.production,
    apiBaseUrl: 'https://your-api-domain.com/api',
    imageBaseUrl: `${CDN_CONFIG.production}/static`
  },
  
  // 测试环境配置
  staging: {
    cdnBaseUrl: CDN_CONFIG.production, // 测试环境使用生产CDN
    apiBaseUrl: 'https://staging-api.your-domain.com/api',
    imageBaseUrl: `${CDN_CONFIG.production}/static`
  }
};

// 获取当前环境
const getCurrentEnv = () => {
  if (typeof process !== 'undefined') {
    return process.env.NODE_ENV || 'development';
  }
  return 'development';
};

// 获取当前环境配置
const getCurrentConfig = () => {
  const env = getCurrentEnv();
  return config[env] || config.development;
};

// CDN图片路径拼接函数
export const getCdnImageUrl = (path) => {
  const currentConfig = getCurrentConfig();
  
  // 如果路径已经是完整URL，直接返回
  if (path.startsWith('http://') || path.startsWith('https://')) {
    return path;
  }
  
  // 如果路径以/开头，去掉开头的/
  const cleanPath = path.startsWith('/') ? path.slice(1) : path;
  
  // 所有环境都使用CDN路径
  return `${currentConfig.cdnBaseUrl}/${cleanPath}`;
};

// CDN静态资源路径拼接函数
export const getCdnStaticUrl = (path) => {
  const currentConfig = getCurrentConfig();
  
  // 如果路径已经是完整URL，直接返回
  if (path.startsWith('http://') || path.startsWith('https://')) {
    return path;
  }
  
  // 如果路径以/开头，去掉开头的/
  const cleanPath = path.startsWith('/') ? path.slice(1) : path;
  
  // 所有环境都使用CDN路径
  return `${currentConfig.cdnBaseUrl}/${cleanPath}`;
};

// 导出配置
export const appConfig = {
  // 获取当前环境配置
  getConfig: getCurrentConfig,
  
  // 获取当前环境
  getEnv: getCurrentEnv,
  
  // CDN图片路径处理
  getCdnImageUrl,
  
  // CDN静态资源路径处理
  getCdnStaticUrl,
  
  // 是否开发环境
  isDev: () => getCurrentEnv() === 'development',
  
  // 是否生产环境
  isProd: () => getCurrentEnv() === 'production',
  
  // 是否测试环境
  isStaging: () => getCurrentEnv() === 'staging'
};

export default appConfig;
