// TimeClock v3 - API Configuration
// Zentrale Konfiguration für alle API-Anfragen

// API Base URL aus Umgebungsvariablen
// In Production: /api (relativ, durch Apache Proxy)
// In Development: http://localhost:3010/api
export const API_BASE_URL = import.meta.env.VITE_API_URL || '/api'

// Vollständige API URL (für absolute URLs falls benötigt)
export const getApiUrl = (endpoint) => {
  // Wenn endpoint mit / beginnt, direkt verwenden
  if (endpoint.startsWith('/')) {
    return `${API_BASE_URL}${endpoint}`
  }
  // Sonst / hinzufügen
  return `${API_BASE_URL}/${endpoint}`
}

// Hilfsfunktion für Auth-Header
export const getAuthHeaders = () => {
  const token = localStorage.getItem('timeclock_token')
  
  const headers = {
    'Content-Type': 'application/json'
  }
  
  if (token) {
    headers['Authorization'] = `Bearer ${token}`
  }
  
  return headers
}

// Hilfsfunktion für API-Requests mit Fehlerbehandlung
export const apiRequest = async (endpoint, options = {}) => {
  const url = getApiUrl(endpoint)
  
  const defaultOptions = {
    headers: getAuthHeaders()
  }
  
  const response = await fetch(url, {
    ...defaultOptions,
    ...options,
    headers: {
      ...defaultOptions.headers,
      ...options.headers
    }
  })
  
  const data = await response.json()
  
  if (!response.ok) {
    throw new Error(data.error || data.message || 'API-Anfrage fehlgeschlagen')
  }
  
  return data
}

export default {
  API_BASE_URL,
  getApiUrl,
  getAuthHeaders,
  apiRequest
}

