/**
 * 环境配置
 * @file env.js
 * @description 应用环境配置管理
 */

// 获取环境变量
const getEnvVar = (key, defaultValue = '') => {
  return import.meta.env[key] || defaultValue
}

// API配置
export const API_CONFIG = {
  // API基础URL - 根据环境动态设置
  baseUrl: getEnvVar('VITE_API_BASE_URL', import.meta.env.DEV ? '/bank/api' : '/bank/api'),
  
  // 是否使用代理
  useProxy: getEnvVar('VITE_USE_PROXY', 'true') === 'true',
  
  // 完整的基础URL（用于直接请求）
  fullBaseUrl: getEnvVar('VITE_API_BASE_URL', import.meta.env.DEV ? '/bank/api' : '/bank/api'),
  
  // 请求超时时间
  timeout: parseInt(getEnvVar('VITE_API_TIMEOUT', '10000')),
  
  // 重试次数
  retryCount: parseInt(getEnvVar('VITE_API_RETRY_COUNT', '3'))
}

// 应用配置
export const APP_CONFIG = {
  // 应用标题
  title: getEnvVar('VITE_APP_TITLE', '银行管理后台系统'),
  
  // 应用版本
  version: getEnvVar('VITE_APP_VERSION', '1.0.0'),
  
  // 应用描述
  description: getEnvVar('VITE_APP_DESCRIPTION', '专业的银行管理解决方案'),
  
  // 是否显示版本信息
  showVersion: getEnvVar('VITE_SHOW_VERSION', 'true') === 'true',
  
  // 是否启用调试模式
  debug: getEnvVar('VITE_DEBUG', 'false') === 'true'
}

// 主题配置
export const THEME_CONFIG = {
  // 主色调
  primaryColor: getEnvVar('VITE_PRIMARY_COLOR', '#1890ff'),
  
  // 是否启用暗色主题
  darkMode: getEnvVar('VITE_DARK_MODE', 'false') === 'true',
  
  // 是否启用紧凑模式
  compactMode: getEnvVar('VITE_COMPACT_MODE', 'false') === 'true'
}

// 功能配置
export const FEATURE_CONFIG = {
  // 是否启用实时通知
  enableNotification: getEnvVar('VITE_ENABLE_NOTIFICATION', 'true') === 'true',
  
  // 是否启用数据导出
  enableExport: getEnvVar('VITE_ENABLE_EXPORT', 'true') === 'true',
  
  // 是否启用数据导入
  enableImport: getEnvVar('VITE_ENABLE_IMPORT', 'true') === 'true',
  
  // 是否启用图表功能
  enableCharts: getEnvVar('VITE_ENABLE_CHARTS', 'true') === 'true'
}

// 安全配置
export const SECURITY_CONFIG = {
  // Token存储键名
  tokenKey: 'bank_token',
  
  // 用户信息存储键名
  userKey: 'bank_user',
  
  // Token过期时间（小时）
  tokenExpireHours: parseInt(getEnvVar('VITE_TOKEN_EXPIRE_HOURS', '24')),
  
  // 是否启用自动登录
  enableAutoLogin: getEnvVar('VITE_ENABLE_AUTO_LOGIN', 'true') === 'true'
}

// 导出所有配置
export default {
  API_CONFIG,
  APP_CONFIG,
  THEME_CONFIG,
  FEATURE_CONFIG,
  SECURITY_CONFIG
}