import { VueQueryPlugin, QueryClient } from '@tanstack/vue-query';

// Créez une instance de QueryClient
const queryClient = new QueryClient({
    defaultOptions: {
        queries: {
            // Options par défaut pour toutes les requêtes (queries)
            staleTime: 5 * 60 * 1000, // 5 minutes: temps pendant lequel les données sont considérées "fraîches" (ne déclenche pas de re-fetch en arrière-plan juste en montant le composant)
            gcTime: 10 * 60 * 1000, // 10 minutes: temps avant que les données inactives soient supprimées du cache (garbage collected)
            retry: 1, // Nombre de tentatives en cas d'erreur
            refetchOnWindowFocus: true // Re-fetcher quand la fenêtre reprend le focus (bon pour garder les données à jour)
        }
    }
});

export const vueQueryPluginOptions = {
    queryClient // Fournir le client au plugin
};

export const installVueQuery = app => {
    app.use(VueQueryPlugin, vueQueryPluginOptions);
};

// Exportez aussi le client si vous avez besoin d'y accéder directement ailleurs (rare)
export { queryClient };
