/**
 * 格式化工具函数
 */

/**
 * 格式化时间
 * @param dateStr ISO 8601 格式的时间字符串
 * @param format 格式类型: 'datetime' | 'date' | 'time'
 * @returns 格式化后的时间字符串
 */
export function formatTime(dateStr?: string, format: 'datetime' | 'date' | 'time' = 'datetime'): string {
  if (!dateStr) return '-'

  try {
    const date = new Date(dateStr)
    if (isNaN(date.getTime())) return dateStr

    const year = date.getFullYear()
    const month = String(date.getMonth() + 1).padStart(2, '0')
    const day = String(date.getDate()).padStart(2, '0')
    const hours = String(date.getHours()).padStart(2, '0')
    const minutes = String(date.getMinutes()).padStart(2, '0')
    const seconds = String(date.getSeconds()).padStart(2, '0')

    if (format === 'date') {
      return `${year}-${month}-${day}`
    } else if (format === 'time') {
      return `${hours}:${minutes}:${seconds}`
    } else {
      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
    }
  } catch (error) {
    return dateStr
  }
}

/**
 * 格式化流量大小
 * @param mb MB 数值
 * @returns 格式化后的流量字符串
 */
export function formatDataSize(mb?: number): string {
  if (mb === undefined || mb === 0) return '0MB'
  if (mb >= 1024) {
    return `${(mb / 1024).toFixed(2)}GB`
  }
  return `${mb}MB`
}

/**
 * 格式化金额
 * @param amount 金额
 * @param decimals 小数位数
 * @returns 格式化后的金额字符串
 */
export function formatAmount(amount?: number, decimals: number = 2): string {
  if (amount === undefined || amount === null) return '0.00'
  return amount.toFixed(decimals)
}
