import axios from 'axios'

export function getErrorMessage(err: unknown, fallback = 'Lỗi hệ thống'): string {
  if (axios.isAxiosError(err)) {
    const data = err.response?.data as { detail?: string; title?: string; errors?: Record<string, string[]> } | undefined
    if (data?.errors) {
      const first = Object.values(data.errors).flat()[0]
      if (first) return first
    }
    return data?.detail ?? data?.title ?? err.message
  }
  return fallback
}

// [S189 · YC-028(5)] 404 thật ⟂ lỗi hệ thống/chậm — nền sự cố A/059: server nghẹt làm GET detail
// bị hủy sau ~30s, FE gom mọi nhánh lỗi vào "Không tìm thấy phiếu" ⇒ người dùng lẫn người chẩn
// đoán nghi oan DATA trong khi gốc là HẠ TẦNG (lớp gotcha #44 silent-error). Chỉ 404 mới được
// nói "không tìm thấy"; mọi lỗi khác phải nói thật là lỗi hệ thống + cho thử lại.
export function isNotFound(err: unknown): boolean {
  return axios.isAxiosError(err) && err.response?.status === 404
}
