import { ref } from 'vue';
import { useNotifications } from '../../../../shared/composables/useNotifications';
import { useMangaStore } from '../../application/store/mangaStore';

export function useMangaRefresh() {
    const mangaStore = useMangaStore();
    const { showSuccess, showError } = useNotifications();

    const isRefreshing = ref(false);
    const refreshError = ref(null);

    const refreshMetadata = async (mangaId) => {
        if (isRefreshing.value || !mangaId) return;

        isRefreshing.value = true;
        refreshError.value = null;

        try {
            console.log(`Début du refresh des métadonnées pour le manga ${mangaId}`);

            // Appel à l'endpoint de refresh des chapitres
            await mangaStore.refreshMangaChapters(mangaId);

            showSuccess('Refresh des métadonnées lancé avec succès. Les nouveaux chapitres apparaîtront sous peu.');

            console.log('Refresh des métadonnées déclenché avec succès');
            return true;
        } catch (error) {
            console.error('Erreur lors du refresh des métadonnées:', error);
            refreshError.value = error.message || 'Erreur lors du refresh des métadonnées';
            showError(`Erreur lors du refresh: ${error.message || 'Une erreur inattendue est survenue'}`);
            throw error;
        } finally {
            isRefreshing.value = false;
        }
    };

    const clearError = () => {
        refreshError.value = null;
    };

    return {
        isRefreshing,
        refreshError,
        refreshMetadata,
        clearError
    };
}
