// 密码强度级别常量
const STRENGTH_LEVELS = {
  WEAK: 'weak', // 弱：一类字符
  MEDIUM: 'medium', // 中：两类字符
  STRONG: 'strong', // 强：三类字符
  VERY_STRONG: 'very-strong' // 非常强：四类字符
}

// 数据设置常量
const DATA_SETTINGS = {
  OPEN: true, // 开启
  CLOSE: false // 关闭
}

// SM 配置
const SM_CONFIG = {
  SALT: '2cc0c5f9f1749f1632efa9f63e902323' // SM3 盐值（16 字节）
}

// AES 配置
const AES_CONFIG = {
  AES_KEY: 'zhgd@bonus@zhgd@bonus@1234567890', // AES key值
  AES_IV: '1234567812345678' // AES 偏移量
}

// 登录配置
const LOGIN_CONFIG = {
  CODE_PHONE_LOGIN: DATA_SETTINGS.CLOSE, // 手机号验证码登录（true：开启，false：关闭）
  CODE_EMAIL_LOGIN: DATA_SETTINGS.OPEN,// 邮箱验证码登录（true：开启，false：关闭）
  PHONE_LOGIN: DATA_SETTINGS.OPEN, // 手机号密码登录（true：开启，false：关闭）
  EMAIL_LOGIN: DATA_SETTINGS.CLOSE // 邮箱密码登录（true：开启，false：关闭）
}
//注册配置
const REGISTER_CONFIG = {
  PHONE_REGISTER: DATA_SETTINGS.OPEN, // 手机号注册（true：开启，false：关闭）
  EMAIL_REGISTER: DATA_SETTINGS.CLOSE // 邮箱注册（true：开启，false：关闭）
}

// 配置设置
const CONFIG = {
  STRENGTH: STRENGTH_LEVELS.STRONG,//密码强度配置
  IS_OPEN_REGISTER: REGISTER_CONFIG.PHONE_REGISTER || REGISTER_CONFIG.EMAIL_REGISTER, // 是否开启注册
  IS_CODE_LOGIN: LOGIN_CONFIG.CODE_EMAIL_LOGIN || LOGIN_CONFIG.CODE_PHONE_LOGIN, // 是否开启短信登录
  // 数据设置
  dataSettings: {
    integrityCheck: DATA_SETTINGS.CLOSE, // 数据完整性校验（true：开启，false：关闭）
    encryptRequest: DATA_SETTINGS.CLOSE,     // 数据传输加密（true：开启，false：关闭）
    encryptResponse: DATA_SETTINGS.CLOSE      // 数据返回解密（true：开启，false：关闭）
  }
}

// 获取占位符文本的函数
// 获取占位符文本的函数
function getPlaceholderText() {
  const loginOptions = []
  if (LOGIN_CONFIG.PHONE_LOGIN) loginOptions.push('手机号')
  if (LOGIN_CONFIG.EMAIL_LOGIN) loginOptions.push('邮箱')
  return `用户名${loginOptions.length ? '/' + loginOptions.join('/') : ''}`
}

// 获取占位符文本的函数
// 获取占位符文本的函数
function getCodePlaceholderText() {
  const loginOptions = []
  if (LOGIN_CONFIG.CODE_PHONE_LOGIN) loginOptions.push('手机号')
  if (LOGIN_CONFIG.CODE_EMAIL_LOGIN) loginOptions.push('邮箱')
  return loginOptions.length ? loginOptions.join('/') : ''
}

module.exports = {
  STRENGTH_LEVELS,
  DATA_SETTINGS,
  CONFIG,
  SM_CONFIG,
  AES_CONFIG,
  LOGIN_CONFIG,
  REGISTER_CONFIG,
  getPlaceholderText,
  getCodePlaceholderText
}
