/**
 * 错误请求"分类"虚拟维度:phase + error type → 用户侧粗分类码。
 * 镜像后端 service.MapUserErrorCategory(backend/internal/service/ops_user_error.go),
 * 两处修改须同步。返回稳定分类码,展示文案走 i18n `usage.errors.categories.*`。
 */
export function mapErrorCategory(phase?: string | null, errType?: string | null): string {
  switch ((phase || '').toLowerCase()) {
    case 'auth':
      return 'auth'
    case 'routing':
      return 'service_unavailable'
    case 'account_auth':
    case 'upstream':
    case 'network':
      return 'upstream'
    case 'internal':
      return 'internal'
    case 'request':
      switch ((errType || '').toLowerCase()) {
        case 'rate_limit_error':
          return 'rate_limit'
        case 'billing_error':
        case 'subscription_error':
          return 'quota'
        case 'invalid_request_error':
          return 'invalid_request'
        case 'cyber_policy':
          return 'cyber'
      }
  }
  return 'other'
}
