import { AxiosError } from 'axios';

export class AzureProviderError extends Error {
  constructor(message: string, public statusCode?: number, public response?: any) {
    super(message);
    this.name = 'AzureProviderError';
  }
}

export function handleAzureError(error: unknown): AzureProviderError {
  if (error instanceof AzureProviderError) {
    return error;
  }
  
  if (error instanceof AxiosError) {
    return new AzureProviderError(
      error.message,
      error.response?.status,
      error.response?.data
    );
  }
  
  return new AzureProviderError(String(error));
}