// 认证配置文件 - 集中管理认证相关配置

// 认证配置常量
const AUTH_CONFIG = {
  // 模拟认证配置（生产环境需替换为真实API）
  MOCK_CREDENTIALS: {
    username: 'admin',
    password: 'admin123'
  },

  // Token配置
  TOKEN_KEY: 'token',
  USER_KEY: 'user',
  TOKEN_PREFIX: 'mock-jwt-token-',

  // 用户角色
  USER_ROLES: {
    ADMIN: 'admin',
    USER: 'user',
    GUEST: 'guest'
  },

  // 默认用户信息
  DEFAULT_ADMIN_USER: {
    id: 1,
    username: 'admin',
    name: '系统管理员',
    role: 'admin',
    avatar: null
  },

  // API端点
  ENDPOINTS: {
    login: '/api/auth/login',
    logout: '/api/auth/logout',
    refresh: '/api/auth/refresh',
    validate: '/api/auth/validate'
  },

  // 超时配置
  TIMEOUTS: {
    login: 5000,    // 登录超时
    validate: 3000  // 验证超时
  },

  // 验证规则
  VALIDATION_RULES: {
    MIN_USERNAME_LENGTH: 2,  // 用户名最小长度
    MIN_PASSWORD_LENGTH: 6   // 密码最小长度
  }
}

// 获取模拟凭据
export const getMockCredentials = () => {
  return AUTH_CONFIG.MOCK_CREDENTIALS
}

// 获取Token配置
export const getTokenConfig = () => {
  return {
    tokenKey: AUTH_CONFIG.TOKEN_KEY,
    userKey: AUTH_CONFIG.USER_KEY,
    tokenPrefix: AUTH_CONFIG.TOKEN_PREFIX
  }
}

// 获取默认管理员用户
export const getDefaultAdminUser = () => {
  return { ...AUTH_CONFIG.DEFAULT_ADMIN_USER }
}

// 获取用户角色定义
export const getUserRoles = () => {
  return AUTH_CONFIG.USER_ROLES
}

// 获取API端点
export const getAuthEndpoints = () => {
  return AUTH_CONFIG.ENDPOINTS
}

// 获取超时配置
export const getAuthTimeouts = () => {
  return AUTH_CONFIG.TIMEOUTS
}

// 获取验证规则
export const getValidationRules = () => {
  return AUTH_CONFIG.VALIDATION_RULES
}

// 验证用户凭据（模拟验证）
export const validateCredentials = (username, password) => {
  const mockCreds = getMockCredentials()
  return username === mockCreds.username && password === mockCreds.password
}

export default AUTH_CONFIG