import axios from 'axios';
import store from '../store';

// API-Basis-URL - immer über Apache-Proxy für Produktion
const getApiBaseURL = () => {
    // Wenn explizite Umgebungsvariable gesetzt ist, diese verwenden
    if (import.meta.env.VITE_API_BASE_URL) {
        return import.meta.env.VITE_API_BASE_URL;
    }
    
    // Für Produktion: Root-Pfad, da API-Endpunkte bereits mit /api beginnen
    return '';
};

// Debug-Informationen
console.log('🔗 API Base URL:', getApiBaseURL());

const apiClient = axios.create({
    baseURL: getApiBaseURL(),
    headers: {
        'Content-Type': 'application/json'
    }
});

apiClient.interceptors.request.use(config => {
    const user = store.getters.user;
    
    if (user && user.authCode) {
        config.headers['userid'] = user.id;
        config.headers['authcode'] = user.authCode; // Kleinschreibung!
    } else {
        console.log('⚠️ Keine User-Daten verfügbar');
    }
    
    return config;
}, error => {
    return Promise.reject(error);
});

apiClient.interceptors.response.use(response => {
    return response;
}, error => {
    if (error.response && error.response.status === 401) {
        store.dispatch('logout');
    }
    return Promise.reject(error);
});

export default apiClient;
