/**
 * BugCollect 公共工具函数
 */

/**
 * 错误级别标签类型
 */
export function levelTag(level: string): '' | 'success' | 'warning' | 'info' | 'danger' {
  const map: Record<string, '' | 'success' | 'warning' | 'info' | 'danger'> = {
    fatal: 'danger',
    error: 'warning',
    warning: '',
    info: 'info',
  }
  return map[level?.toLowerCase()] ?? ''
}

/**
 * 状态标签类型
 */
export function statusTag(status: string): '' | 'success' | 'warning' | 'info' | 'danger' {
  const map: Record<string, '' | 'success' | 'warning' | 'info' | 'danger'> = {
    open: 'danger',
    resolved: 'success',
    ignored: 'info',
  }
  return map[status] ?? ''
}

/**
 * 状态显示文本
 */
export function statusLabel(status: string): string {
  const map: Record<string, string> = {
    open: '未解决',
    resolved: '已解决',
    ignored: '已忽略',
  }
  return map[status] ?? status
}

/**
 * 格式化时间（UTC 转本地时间）
 */
export function formatTime(ts: string | null | undefined): string {
  if (!ts) return '-'
  // 服务端返回 UTC 时间（无时区标识），需追加 Z 表示 UTC
  const date = ts.includes('Z') || ts.includes('+') ? new Date(ts) : new Date(ts + 'Z')
  return date.toLocaleString('zh-CN')
}

/**
 * 平台标签类型
 */
export function platformTagType(platform: string): '' | 'success' | 'warning' | 'info' | 'danger' {
  const map: Record<string, '' | 'success' | 'warning' | 'info' | 'danger'> = {
    android: 'success',
    ios: '',
    harmony: 'warning',
  }
  return map[platform?.toLowerCase()] ?? 'info'
}

/**
 * Issue 类型标签
 */
export function issueTypeTag(type: string): '' | 'success' | 'warning' | 'info' | 'danger' {
  const map: Record<string, '' | 'success' | 'warning' | 'info' | 'danger'> = {
    CRASH: 'danger',
    ERROR: 'warning',
    ANR: 'danger',
    WARNING: '',
  }
  return map[type] ?? ''
}
