import { AxiosError } from "axios";


export async function handleAPIError<T>(
  error: unknown,
  domain: string,
  startTime: number,
  getDefaultData: () => T
): Promise<T> {
  const elapsed = Date.now() - startTime;

  if (error instanceof AxiosError) {
    if (error.code === "ECONNABORTED") {
      console.error(`[API Error] ✗ Timeout for ${domain} (${elapsed}ms)`);
    } else if (!error.response) {
      console.error(`[API Error] ✗ Network error for ${domain} (${elapsed}ms)`);
    } else {
      console.error(
        `[API Error] ✗ HTTP ${error.response.status} for ${domain} (${elapsed}ms):`,
        error.message
      );
    }
  } else {
    console.error(`[API Error] ✗ Unexpected error for ${domain} (${elapsed}ms):`, error);
  }

  // Always return fallback data even on error
  return getDefaultData();
}
