'use client'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import * as subscriptionApi from '../api/subscription'; export function useSubscription(tenantId: string | undefined) { return useQuery({ queryKey: ['subscription', tenantId], queryFn: () => subscriptionApi.getSubscription(tenantId!), enabled: !!tenantId, staleTime: 5 * 60 * 1000, }); } export function usePaymentHistory(tenantId: string | undefined) { return useQuery({ queryKey: ['payments', tenantId], queryFn: () => subscriptionApi.getPaymentHistory(tenantId!), enabled: !!tenantId, staleTime: 60 * 1000, }); } export function useGeneratePaymentLink() { return useMutation({ mutationFn: (tenantId: string) => subscriptionApi.generatePaymentLink(tenantId), }); } export function useMarkAsPaid() { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ tenantId, amount }: { tenantId: string; amount: number }) => subscriptionApi.markAsPaid(tenantId, amount), onSuccess: (_, { tenantId }) => { queryClient.invalidateQueries({ queryKey: ['subscription', tenantId] }); queryClient.invalidateQueries({ queryKey: ['payments', tenantId] }); }, }); }