/**
 * 登录相关配置
 */

export interface LoginConfig {
  // 是否启用验证码
  enableCaptcha: boolean;
  // 是否启用记住我功能
  enableRememberMe: boolean;
  // 登录页面背景配置
  backgroundStyle: {
    type: 'gradient' | 'image' | 'color';
    value: string;
  };
  // 自动登录超时时间（毫秒）
  autoLoginTimeout: number;
  // Token刷新间隔（毫秒）
  tokenRefreshInterval: number;
  // 是否启用自动刷新Token
  enableAutoRefreshToken: boolean;
  // 登录失败最大重试次数
  maxLoginRetries: number;
  // 是否在登录失败后显示验证码
  showCaptchaOnFailure: boolean;
}

/**
 * 默认登录配置
 */
export const defaultLoginConfig: LoginConfig = {
  enableCaptcha: false,
  enableRememberMe: true,
  backgroundStyle: {
    type: 'gradient',
    value: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'
  },
  autoLoginTimeout: 5000,
  tokenRefreshInterval: 30 * 60 * 1000, // 30分钟
  enableAutoRefreshToken: true,
  maxLoginRetries: 3,
  showCaptchaOnFailure: true
};

/**
 * 获取登录配置
 */
export const getLoginConfig = (): LoginConfig => {
  // 可以从服务器或本地存储获取配置
  // 这里返回默认配置
  return defaultLoginConfig;
};

/**
 * 路由配置
 */
export const routeConfig = {
  // 登录页面路径
  loginPath: '/pages/login/login',
  // 默认首页路径
  homePath: '/pages/index/index',
  // 无需登录的页面列表
  publicPages: [
    '/pages/login/login',
    '/pages/register/register',
    '/pages/forgot-password/forgot-password'
  ],
  // 需要管理员权限的页面
  adminPages: [
    '/pages/admin/dashboard',
    '/pages/admin/users',
    '/pages/admin/settings'
  ]
};

/**
 * API配置
 */
export const apiConfig = {
  // 登录接口
  loginApi: '/auth/login',
  // 登出接口
  logoutApi: '/auth/logout',
  // Token检查接口
  checkTokenApi: '/auth/check',
  // Token刷新接口
  refreshTokenApi: '/auth/refresh',
  // 获取验证码接口
  captchaApi: '/auth/captcha',
  // 用户信息接口
  userInfoApi: '/user/info',
  // 用户资料接口
  userProfileApi: '/user/profile'
};

/**
 * 存储键名配置
 */
export const storageKeys = {
  // Token存储键
  token: 'ACCESS_TOKEN',
  // 用户信息存储键
  userInfo: 'USER_INFO',
  // 记住我存储键
  rememberMe: 'REMEMBER_ME',
  // 上次登录时间存储键
  lastLoginTime: 'LAST_LOGIN_TIME'
};

/**
 * 错误消息配置
 */
export const errorMessages = {
  // 网络错误
  networkError: '网络连接异常，请检查网络设置',
  // 登录失败
  loginFailed: '用户名或密码错误',
  // Token过期
  tokenExpired: '登录已过期，请重新登录',
  // 服务器错误
  serverError: '服务器错误，请稍后重试',
  // 验证码错误
  captchaError: '验证码错误，请重新输入',
  // 账号被锁定
  accountLocked: '账号已被锁定，请联系管理员',
  // 权限不足
  permissionDenied: '权限不足，无法执行此操作'
};
