/**
 * 格式化金额区间
 * @param {string} amountRange - 金额区间字符串，如 "(0,500)", "[500,1000)", "[50000,+)" 等
 * @returns {string} 格式化后的金额区间
 */
export function formatAmountRange(amountRange) {
  if (!amountRange || amountRange === '0' || amountRange === '') {
    return '0元'
  }

  // 处理 [50000,+) 这种格式
  if (amountRange.includes('[50000,+')) {
    return '50000元以上'
  }

  // 处理区间格式，如 "(0,500)", "[500,1000)"
  const match = amountRange.match(/[\[\(](\d+),(\d+)[\)\]]/)
  if (match) {
    const min = parseInt(match[1])
    const max = parseInt(match[2])
    
    // 如果最小值是0，显示为"0-最大值"
    if (min === 0) {
      return `0-${max}元`
    }
    
    return `${min}-${max}元`
  }

  // 如果无法解析，返回原值
  return amountRange
}

/**
 * 格式化天数区间
 * @param {string} dayRange - 天数区间字符串，如 "(0,7]", "(7,15]", "(360,+)" 等
 * @returns {string} 格式化后的天数区间
 */
export function formatDayRange(dayRange) {
  if (!dayRange || dayRange === '0' || dayRange === '') {
    return '0天'
  }

  // 处理 (360,+) 这种格式
  if (dayRange.includes('(360,+')) {
    return '360天以上'
  }

  // 处理区间格式，如 "(0,7]", "(7,15]"
  const match = dayRange.match(/[\[\(](\d+),(\d+)[\)\]]/)
  if (match) {
    const min = parseInt(match[1])
    const max = parseInt(match[2])
    
    // 如果最小值是0，显示为"0-最大值"
    if (min === 0) {
      return `0-${max}天`
    }
    
    return `${min}-${max}天`
  }

  // 如果无法解析，返回原值
  return dayRange
}

/**
 * 格式化时间（YYYY-MM格式）
 * @param {string} time - 时间字符串，如 "2023-05"
 * @returns {string} 格式化后的时间，如 "2023年05月"
 */
export function formatTime(time) {
  if (!time || time === '0' || time === '') {
    return '—'
  }

  // 如果是 YYYY-MM 格式
  if (time.match(/^\d{4}-\d{2}$/)) {
    return time.replace('-', '年') + '月'
  }

  return time
}

/**
 * 格式化置信度
 * @param {string} confidence - 置信度字符串，如 "76", "80"
 * @returns {string} 格式化后的置信度，如 "76%"
 */
export function formatConfidence(confidence) {
  if (!confidence || confidence === '0' || confidence === '') {
    return '—'
  }

  const num = parseInt(confidence)
  if (isNaN(num)) {
    return confidence
  }

  return `${num}%`
}

/**
 * 格式化授信额度（单位：元）
 * @param {string} amount - 授信额度字符串，如 "12600", "6120"
 * @returns {string} 格式化后的授信额度，如 "12600元"
 */
export function formatCreditAmount(amount) {
  if (!amount || amount === '0' || amount === '') {
    return '0元'
  }

  const num = parseInt(amount)
  if (isNaN(num)) {
    return amount
  }

  // 如果大于10000，转换为万元
  if (num >= 10000) {
    return `${(num / 10000).toFixed(2)}万元`
  }

  return `${num}元`
}

/**
 * 获取值，如果为空则返回默认值
 * @param {any} value - 值
 * @param {any} defaultValue - 默认值
 * @returns {any} 值或默认值
 */
export function getValue(value, defaultValue = '—') {
  if (value === null || value === undefined || value === '' || value === '0') {
    return defaultValue
  }
  return value
}

