const API_URL = 'http://localhost:8080/api';

export const getArtists = async () => {
  const response = await fetch(`${API_URL}/artists`);
  if (!response.ok) throw new Error('Ошибка загрузки исполнителей');
  return await response.json();
};

export const getCountries = async () => {
  const response = await fetch(`${API_URL}/countries`);
  if (!response.ok) throw new Error('Ошибка загрузки стран');
  return await response.json();
};

export const getEpochs = async () => {
  const response = await fetch(`${API_URL}/epochs`);
  if (!response.ok) throw new Error('Ошибка загрузки эпох');
  return await response.json();
};

export const createArtist = async (artist) => {
  const response = await fetch(`${API_URL}/artists`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(artist)
  });
  if (!response.ok) throw new Error('Ошибка создания исполнителя');
  return await response.json();
};

export const updateArtist = async (id, artist) => {
  const response = await fetch(`${API_URL}/artists/${id}`, {
    method: 'PATCH',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(artist)
  });
  if (!response.ok) throw new Error('Ошибка обновления исполнителя');
  return await response.json();
};

export const deleteArtist = async (id) => {
  const response = await fetch(`${API_URL}/artists/${id}`, {
    method: 'DELETE'
  });
  if (!response.ok) throw new Error('Ошибка удаления исполнителя');
  return true;
};