import axios, { type AxiosResponse, type AxiosError } from 'axios';

const baseClient = axios.create({
  baseURL: process.env.NEXT_PUBLIC_API_URL,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  }
});

baseClient.interceptors.response.use(
  (response: AxiosResponse) => response,
  (error: AxiosError) => {
    const expectedError = error.response &&
      error.response.status >= 400 &&
      error.response.status < 500;
    if (!expectedError) {
      console.error('Unexpected API Error:', error);
    }
    return Promise.reject(error);
  }
);

export default baseClient;
