import { useMutation, useQueryClient } from '@tanstack/react-query'; import { AssetCreateRequest, BulkImportResponse } from '@/types/asset-management'; import { assetApi } from '@/services/assetApi'; import { toast } from '@/lib/custom-toast'; export const useBulkImportAssets = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: async (assets: AssetCreateRequest[]): Promise => { return await assetApi.bulkImport(assets); }, onSuccess: (result: BulkImportResponse) => { // Invalidate and refetch assets data queryClient.invalidateQueries({ queryKey: ['assets'] }); if (result.success) { if (result.results.failed === 0) { toast.success(`Successfully imported all ${result.results.successful} assets`); } else { toast.success( `Import completed: ${result.results.successful} successful, ${result.results.failed} failed`, { description: 'Check the import results for details on failed items.' } ); } } else { toast.error(`Import failed: ${result.results.failed} assets could not be imported`, { description: result.message }); } }, onError: (error: any) => { const errorMessage = error?.message || 'Failed to import assets'; toast.error('Bulk import failed', { description: errorMessage }); } }); };