import { useMutation } from '@tanstack/react-query' import { offerService } from '../services/offerService' import type { AssetType } from '../domain/enums' import { useToastStore } from '../stores/toastStore' export function useCreateOfferDraft() { return useMutation({ mutationFn: (input: { needId: string selectedPropertyIds: string[] needTitle: string location: string assetType: AssetType sizeRange: { min: number; max: number } }) => offerService.createOfferDraft( input.needId, input.selectedPropertyIds, input.needTitle, input.location, input.assetType, input.sizeRange, ), onError: () => { useToastStore.getState().showToast('Angebot konnte nicht erstellt werden.', 'error') }, }) } export function useUpdateOfferField() { return useMutation({ mutationFn: (input: { offerDraftId: string; fieldId: string; value: string }) => offerService.updateOfferField(input.offerDraftId, input.fieldId, input.value), onError: () => { useToastStore.getState().showToast('Feld konnte nicht gespeichert werden.', 'error') }, }) } export function useMarkOfferChecked() { return useMutation({ mutationFn: (offerDraftId: string) => offerService.markOfferChecked(offerDraftId), onError: () => { useToastStore.getState().showToast('Prüfung konnte nicht gespeichert werden.', 'error') }, }) } export function useGeneratePdfPreview() { return useMutation({ mutationFn: (offerDraftId: string) => offerService.generatePdfPreview(offerDraftId), onError: () => { useToastStore.getState().showToast('PDF-Vorschau konnte nicht generiert werden.', 'error') }, }) } export function useSendOffer() { return useMutation({ mutationFn: (offerDraftId: string) => offerService.sendOffer(offerDraftId), onError: () => { useToastStore.getState().showToast('Angebot konnte nicht gesendet werden. Bitte versuchen Sie es erneut.', 'error') }, }) }