@smartbills/react-hooks-sdk 0.0.2-alpha.45 → 0.0.2-alpha.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/index.d.ts +29 -6
- package/dist/cjs/apis/SBApiKeys.cjs +1 -0
- package/dist/cjs/apis/SBApiKeys.cjs.map +1 -1
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +2 -4
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -1
- package/dist/cjs/apis/vendors/VendorsAPI.cjs +48 -4
- package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/apis/SBApiKeys.mjs +1 -0
- package/dist/esm/apis/SBApiKeys.mjs.map +1 -1
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs +2 -4
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -1
- package/dist/esm/apis/vendors/VendorsAPI.mjs +47 -5
- package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/umd/index.js +51 -8
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
package/dist/umd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/context/ApiContext.tsx","../../src/apis/SBApiKeys.ts","../../src/apis/api-logs/LogsAPI.ts","../../src/apis/attachments/AttachmentsAPI.ts","../../src/apis/banks/accounts/BankAccountAPI.tsx","../../src/apis/banks/bank-institutions/BankInstitutionsAPI.tsx","../../src/apis/banks/bank-transactions/BankTransactionAPI.tsx","../../src/apis/documents/DocumentsAPI.tsx","../../src/apis/friends/FriendsAPI.ts","../../src/apis/loyalty/LoyaltyProgramAPI.ts","../../src/apis/business/customers/CustomerAPI.ts","../../src/apis/business/customers/CustomerPaymentMethodsAPI.ts","../../src/apis/business/customers/CustomerBalanceTransactionsAPI.ts","../../src/apis/business/taxes/TaxesAPI.tsx","../../src/apis/business/products/ProductsAPI.tsx","../../src/apis/business/products/variants/ProductVariantsAPI.tsx","../../src/apis/business/products/modifiers/ModifiersAPI.tsx","../../src/apis/business/products/options/ProductOptionsAPI.tsx","../../src/apis/business/products/images/ProductImagesAPI.tsx","../../src/apis/business/reviews/ReviewsAPI.tsx","../../src/apis/business/locations/LocationsAPI.ts","../../src/apis/business/promo-codes/PromoCodesAPI.tsx","../../src/apis/business/fees/FeesAPI.tsx","../../src/apis/business/vendors/VendorsAPI.ts","../../src/apis/business/team/TeamMemberInvitationsAPI.tsx","../../src/apis/business/team/TeamMembersAPI.tsx","../../src/apis/business/BusinessAPI.tsx","../../src/apis/business/departments/DepartmentApi.tsx","../../src/apis/business/departments/employees/DepartmentEmployeesAPI.tsx","../../src/apis/business/tables/TablesAPI.tsx","../../src/apis/invoices/InvoicesAPI.tsx","../../src/apis/notifications/NotificationAPI.ts","../../src/apis/payment-methods/PaymentMethodsAPI.tsx","../../src/apis/receipts/ReceiptAPI.tsx","../../src/apis/vendors/VendorsAPI.ts","../../src/apis/user/UserAPI.tsx","../../src/apis/integrations/IntegrationsAPI.tsx","../../src/apis/expenses/ExpensesAPI.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode } from \"react\";\nimport { SBClient, SBCredentialProvider } from \"@smartbills/sdk\";\n\ninterface SmartbillsSDKContext {\n\tclient: SBClient;\n\tbusinessId: number | null;\n\tsetBusinessId: (id: number | null) => void;\n\tsetCredentials: (credentials: SBCredentialProvider) => void;\n}\n\nconst SmartbillSDKContext = createContext<SmartbillsSDKContext>({\n\tbusinessId: null,\n\tsetCredentials: () => {},\n\tsetBusinessId: () => {},\n\tclient: null,\n});\n\ninterface SmartbillsSDKProviderProps {\n\tchildren: ReactNode;\n\tclient: SBClient;\n}\n\n/**\n * Provider component for API context\n * @param children - Child components\n */\nexport function SmartbillsSDKProvider({\n\tclient,\n\tchildren,\n}: SmartbillsSDKProviderProps) {\n\tconst [businessId, setBusinessId] = useState<number | null>(null);\n\tconst setCredentials = (credentials: SBCredentialProvider) => {\n\t\tclient.setCredentials(credentials);\n\t};\n\treturn (\n\t\t<SmartbillSDKContext.Provider\n\t\t\tvalue={{\n\t\t\t\tbusinessId,\n\t\t\t\tsetBusinessId,\n\t\t\t\tclient,\n\t\t\t\tsetCredentials,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</SmartbillSDKContext.Provider>\n\t);\n}\n\n/**\n * Hook to access the current business ID from context\n * @returns The current business ID or null if not set\n */\nexport function useBusinessId(): number | null {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useBusinessId must be used within an ApiProvider\");\n\t}\n\treturn context.businessId;\n}\n\n/**\n * Hook to update the current business ID\n * @returns Function to set the current business ID\n */\nexport function useSetBusinessId(): (id: number | null) => void {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useSetBusinessId must be used within an ApiProvider\");\n\t}\n\treturn context.setBusinessId;\n}\n\n/**\n * Hook to access the full API context\n * @returns The complete API context object\n */\nexport function useApiContext(): SmartbillsSDKContext {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useApiContext must be used within an ApiProvider\");\n\t}\n\treturn context;\n}\n\nexport function useApiClient(): SBClient {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t\"useApiClient must be used within an ApiClientProvider\",\n\t\t);\n\t}\n\treturn context.client;\n}\n\nexport function useSetCredentials(): (\n\tcredentials: SBCredentialProvider,\n) => void {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"usesetCredentials must be used within an ApiProvider\");\n\t}\n\treturn context.setCredentials;\n}\n\nexport function useSmartbillsSDKContext(): SmartbillsSDKContext | null {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t\"useSmartbillsSDKContext must be used within an SmartbillsSDKContext\",\n\t\t);\n\t}\n\treturn context;\n}\n","/**\n * Enum of API key strings for consistent query key usage across the application.\n * String values use dot notation to represent nesting.\n */\nexport enum SBApiKeys {\n\tAttachments = \"attachments\",\n\tBanks = \"banks\",\n\tBankAccounts = \"bankAccounts\",\n\tBankInstitutions = \"bankInstitutions\",\n\tBankTransactions = \"bankTransactions\",\n\tCategories = \"categories\",\n\tCustomers = \"customers\",\n\tCardSetupIntents = \"cardSetupIntents\",\n\tCards = \"cards\",\n\tCustomerBalanceTransactions = \"customerBalanceTransactions\",\n\tCustomerPaymentMethods = \"customerPaymentMethods\",\n\tDepartments = \"departments\",\n\tDocuments = \"documents\",\n\tEmployees = \"employees\",\n\tFees = \"fees\",\n\tFriends = \"friends\",\n\tLocations = \"locations\",\n\tInvoices = \"invoices\",\n\tLoyaltyPrograms = \"loyaltyPrograms\",\n\tLoyaltyProgramAccounts = \"loyaltyProgramAccounts\",\n\tLoyaltyProgramRewards = \"loyaltyProgramRewards\",\n\tLogs = \"logs\",\n\tBusinesses = \"businesses\",\n\tTeamMembers = \"teamMembers\",\n\tBusinessReviews = \"businessReviews\",\n\tTeamMemberInvitations = \"teamMemberInvitations\",\n\tModifiers = \"modifiers\",\n\tNotifications = \"notifications\",\n\tProducts = \"products\",\n\tProductOptions = \"productOptions\",\n\tProductModifiers = \"ProductModifiers\",\n\tProductImages = \"productImages\",\n\tPaymentMethods = \"paymentMethods.\",\n\tPromoCodes = \"promoCodes\",\n\tReceipts = \"receipts\",\n\tSubscriptions = \"subscriptions\",\n\tTaxes = \"taxes\",\n\tUser = \"user\",\n\tUsers = \"users\",\n\tVendors = \"vendors\",\n\tProductVariants = \"productVariants\",\n\tIntegrations = \"integrations\",\n\tTables = \"tables\",\n\tExpenses = \"expenses\",\n\tSearch = \"search\",\n}\n","import {\n\tLogListRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBApiLog,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseQuery,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useGetLogByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBApiLog, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Logs, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.logs.getByIdAsync(id, options, config),\n\t});\n};\n\nexport function useListLogsInfiniteQuery(\n\trequest: LogListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<LogListRequest>,\n) {\n\tconst client = useApiClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBApiLog>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBApiLog>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Logs, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.logs.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tAttachmentCreateRequest,\n\tAttachmentListRequest,\n\tSBAttachment,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for retrieving an attachment by ID\n * @param id - The ID of the attachment to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the attachment data\n */\nexport function useGetAttachmentByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBAttachment, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Attachments, id],\n\t\tqueryFn: async () => {\n\t\t\treturn client.attachments.getByIdAsync(id, options);\n\t\t},\n\t});\n}\n\n/**\n * Hook for creating an attachment\n * @returns Mutation function for creating attachments\n */\nexport function useCreateAttachmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBAttachment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: AttachmentCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn client.attachments.createAsync(data, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments],\n\t\t\t});\n\t\t},\n\t});\n}\n\n// /**\n// * Hook for uploading an attachment\n// * @returns Mutation function for uploading attachments\n// */\n// export function useUploadAttachmentMutation() {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useMutation<\n// \t\tSBAttachment,\n// \t\tSBApiException,\n// \t\t{\n// \t\t\tdata: AttachmentUploadRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}\n// \t>({\n// \t\tmutationFn: async ({ data, options, config }) => {\n// \t\t\treturn client.attachments.upload(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [SBApiKeys.Attachments],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n/**\n * Hook for deleting an attachment\n * @returns Mutation function for deleting attachments\n */\nexport function useDeleteAttachmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBAttachment,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn client.attachments.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments, id],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook for listing attachments with infinite pagination\n * @param request - Request parameters for listing attachments\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @param businessId - Optional business ID when calling on behalf of a business\n * @param businessId - Optional business ID when calling on behalf of an business\n * @param userId - Optional user ID when calling on behalf of a user\n * @returns Infinite query result for implementing infinite scrolling with attachment data\n */\nexport function useListAttachmentsInfiniteQuery(\n\trequest: AttachmentListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<AttachmentListRequest>,\n\tbusinessId?: number,\n\tuserId?: number,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBAttachment>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBAttachment>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Attachments,\n\t\t\trequest,\n\t\t\tbusinessId,\n\t\t\tbusinessId,\n\t\t\tuserId,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) =>\n\t\t\tawait client.attachments.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\tbusinessId: businessId?.toString(),\n\t\t\t\t\tuserId: userId?.toString(),\n\t\t\t\t},\n\t\t\t\tconfig,\n\t\t\t),\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage <= 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t});\n}\n","import { useApiClient } from \"@/context\";\nimport {\n\tBankAccountListRequest,\n\tBankTransactionListRequest,\n\tSBRequestOptions,\n\tSBList,\n\tSBBankTransaction,\n\tSBBankAccount,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for retrieving a bank account by ID\n * @param id - The ID of the bank account to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank account data\n */\nexport const useGetBankAccountByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank accounts\n * @param request - Request parameters for listing bank accounts\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing paginated bank account data\n */\nexport const useListBankAccountsQuery = (\n\trequest: BankAccountListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, request, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getAsync(request, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank account transactions with infinite pagination\n * @param id - The ID of the bank account\n * @param request - Request parameters for listing transactions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank account transaction data\n */\nexport const useListBankAccountTransactionsInfiniteQuery = (\n\tid: number,\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.BankAccounts,\n\t\t\tid,\n\t\t\t\"transactions\",\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.bankAccounts.listTransactions(\n\t\t\t\tid,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n","import {\n\tBankInstitutionListRequest,\n\tSBList,\n\tSBBankInstitution,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for listing bank institutions with infinite pagination\n * @param request - Request parameters for listing bank institutions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank institutions data\n */\nexport function useListBankInstitutionsInfiniteQuery(\n\trequest: BankInstitutionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BankInstitutionListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankInstitution>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBankInstitution>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankInstitutions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.bankInstitutions.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a bank institution by ID\n * @param id - The ID of the bank institution to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank institution data\n */\nexport const useGetBankInstitutionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankInstitution, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankInstitutions, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankInstitutions.getByIdAsync(id, options, config),\n\t});\n};\n","import {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n} from \"@tanstack/react-query\";\nimport {\n\tBankTransactionListRequest,\n\tSBList,\n\tSBBankTransaction,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing bank transactions with infinite pagination\n * @param request - Request parameters for listing bank transactions\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result for implementing infinite scrolling with bank transaction data\n */\nexport const useListBankTransactionsInfiniteQuery = (\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankTransactions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.bankTransactions.listAsync(\n\t\t\t\t{\n\t\t\t\t\t...request,\n\t\t\t\t\tpage: pageParam,\n\t\t\t\t},\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a bank transaction by ID\n * @param id - The ID of the bank transaction to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank transaction data\n */\nexport const useGetBankTransactionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankTransaction, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankTransactions, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankTransactions.getByIdAsync(id, options, config),\n\t});\n};\n","import {\n\tDocumentListRequest,\n\tSBList,\n\tSBDocument,\n\tDocumentUploadRequest,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useListDocumentsInfiniteQuery(\n\trequest: DocumentListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<DocumentListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDocument>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBDocument>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Documents, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.documents.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\nexport const useGetDocumentByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBDocument, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Documents, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.documents.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\nexport const useUploadDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBDocument,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: DocumentUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<DocumentUploadRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.documents.upload(request, options);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t},\n\t});\n};\n\nexport const useDeleteDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.documents.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Documents, variables.id],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBFriend,\n\tFriendListRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBFriendRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing friends with infinite pagination\n * @param request - Request parameters for listing friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with friends data\n */\nexport const useListFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriend>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing recommended friends with infinite pagination\n * @param request - Request parameters for listing recommended friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with recommended friends data\n */\nexport const useListRecommendedFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tSBList<SBFriend>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, \"recommended\", request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listRecommanded(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a friend by ID\n * @param id - The ID of the friend to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the friend data\n */\nexport const useGetFriendByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBFriend, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Friends, id],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.friends.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a friend\n * @returns Mutation function for deleting friends\n */\nexport const useDeleteFriendMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBFriend,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn await client.friends.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, variables.id],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"list\"],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"recommended\"],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListFriendRequestsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriendRequest>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriendRequest>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","// import {\n// \tuseQuery,\n// \tuseInfiniteQuery,\n// \tuseMutation,\n// \tuseQueryClient,\n// \tQueryKey,\n// } from \"@tanstack/react-query\";\n// import {\n// \tLoyaltyProgramCreateRequest,\n// \tLoyaltyProgramUpdateRequest,\n// \tLoyaltyProgramListRequest,\n// \tSBLoyaltyProgramResponse,\n// \tLoyaltyAccountCreateRequest,\n// \tLoyaltyAccountUpdateRequest,\n// \tSBLoyaltyProgramAccountResponse,\n// \tLoyaltyProgramPointsAccumulateRequest,\n// \tLoyaltyProgramPointsAdjustRequest,\n// \tSBLoyaltyProgramPointResponse,\n// \tLoyaltyRewardCreateRequest,\n// \tSBLoyaltyRewardResponse,\n// \tLoyaltyRewardRedeemRequest,\n// \tSBList,\n// \tSBRequestOptions,\n// \tSBApiException,\n// } from \"@smartbills/sdk\";\n// import { useApiClient } from \"@/context\";\n// import { AxiosRequestConfig } from \"axios\";\n\n// /**\n// * Hook for retrieving a loyalty program by ID\n// * @param programId - The ID of the loyalty program to retrieve\n// * @returns Query result containing the loyalty program data, loading state, and error information\n// */\n// export function useGetLoyaltyProgramByIdQuery(\n// \tprogramId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyProgram\", programId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getByIdAsync(programId, options, config);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for listing loyalty programs with infinite pagination\n// * @param request - Request parameters for listing loyalty programs\n// * @returns Infinite query result for implementing infinite scrolling with loyalty programs data\n// */\n// export function useListLoyaltyProgramsInfiniteQuery(\n// \trequest: LoyaltyProgramListRequest,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useInfiniteQuery<\n// \t\tSBList<SBLoyaltyProgramResponse>,\n// \t\tSBApiException,\n// \t\tSBList<SBLoyaltyProgramResponse>,\n// \t\tQueryKey,\n// \t\tnumber\n// \t>({\n// \t\tinitialPageParam: request.page || 1,\n// \t\tqueryKey: [\"loyaltyPrograms\", request, options],\n// \t\tqueryFn: async ({ pageParam = 1 }) => {\n// \t\t\tconst paginatedRequest = { ...request, page: pageParam };\n// \t\t\treturn client.loyaltyPrograms.listAsync(\n// \t\t\t\tpaginatedRequest,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tgetNextPageParam: (lastPage) => {\n// \t\t\tif (\n// \t\t\t\tlastPage.pagination &&\n// \t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n// \t\t\t) {\n// \t\t\t\treturn lastPage.pagination.currentPage + 1;\n// \t\t\t}\n// \t\t\treturn undefined;\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a new loyalty program\n// * @returns Mutation function and state for creating loyalty programs\n// */\n// export function useCreateLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createAsync(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for updating a loyalty program\n// * @returns Mutation function and state for updating loyalty programs\n// */\n// export function useUpdateLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\tdata: LoyaltyProgramUpdateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.updateAsync(\n// \t\t\t\tprogramId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgram\", variables.programId],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for deleting a loyalty program\n// * @returns Mutation function and state for deleting loyalty programs\n// */\n// export function useDeleteLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.deleteAsync(programId, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for retrieving a loyalty program account\n// * @param programId - The ID of the loyalty program\n// * @param accountId - The ID of the account to retrieve\n// * @returns Query result containing the loyalty account data, loading state, and error information\n// */\n// export function useGetLoyaltyProgramAccountQuery(\n// \tprogramId: number,\n// \taccountId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyProgramAccount\", programId, accountId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\taccountId,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for listing loyalty program accounts with infinite pagination\n// * @param programId - The ID of the loyalty program\n// * @param request - Request parameters for listing accounts\n// * @returns Infinite query result for implementing infinite scrolling with loyalty accounts data\n// */\n// export function useListLoyaltyProgramAccountsInfiniteQuery(\n// \tprogramId: number,\n// \trequest: LoyaltyProgramListRequest,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useInfiniteQuery<\n// \t\tSBList<SBLoyaltyProgramAccountResponse>,\n// \t\tSBApiException,\n// \t\tSBList<SBLoyaltyProgramAccountResponse>,\n// \t\tQueryKey,\n// \t\tnumber\n// \t>({\n// \t\tinitialPageParam: request.page || 1,\n// \t\tqueryKey: [\"loyaltyProgramAccounts\", programId, request, options],\n// \t\tqueryFn: async ({ pageParam = 1 }) => {\n// \t\t\tconst paginatedRequest = { ...request, page: pageParam };\n// \t\t\treturn client.loyaltyPrograms.listAccounts(\n// \t\t\t\tprogramId,\n// \t\t\t\tpaginatedRequest,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tgetNextPageParam: (lastPage) => {\n// \t\t\tif (\n// \t\t\t\tlastPage.pagination &&\n// \t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n// \t\t\t) {\n// \t\t\t\treturn lastPage.pagination.currentPage + 1;\n// \t\t\t}\n// \t\t\treturn undefined;\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a loyalty program account\n// * @returns Mutation function and state for creating loyalty accounts\n// */\n// export function useCreateLoyaltyProgramAccountMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\tdata: LoyaltyAccountCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\", variables.programId],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for deleting a loyalty program account\n// * @returns Mutation function and state for deleting loyalty accounts\n// */\n// export function useDeleteLoyaltyProgramAccountMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\taccountId,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\taccountId: number;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.deleteAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\taccountId,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\", variables.programId],\n// \t\t\t});\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\n// \t\t\t\t\t\"loyaltyProgramAccount\",\n// \t\t\t\t\tvariables.programId,\n// \t\t\t\t\tvariables.accountId,\n// \t\t\t\t],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for accumulating points in a loyalty program\n// * @returns Mutation function and state for accumulating loyalty points\n// */\n// export function useAccumulateLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAccumulateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.accumulatePoints(\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for adjusting points in a loyalty program\n// * @returns Mutation function and state for adjusting loyalty points\n// */\n// export function useAdjustLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAdjustRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.adjustPoints(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for issuing points in a loyalty program\n// * @returns Mutation function and state for issuing loyalty points\n// */\n// export function useIssueLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAccumulateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.issuePoints(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a loyalty reward\n// * @returns Mutation function and state for creating loyalty rewards\n// */\n// export function useCreateLoyaltyRewardMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyRewardCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createReward(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for retrieving a loyalty reward\n// * @param rewardId - The ID of the reward to retrieve\n// * @returns Query result containing the loyalty reward data, loading state, and error information\n// */\n// export function useGetLoyaltyRewardQuery(\n// \trewardId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyReward\", rewardId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getReward(rewardId, options, config);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for redeeming a loyalty reward\n// * @returns Mutation function and state for redeeming loyalty rewards\n// */\n// export function useRedeemLoyaltyRewardMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\trewardId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\trewardId: number;\n// \t\t\tdata: LoyaltyRewardRedeemRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.redeemReward(\n// \t\t\t\trewardId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\nexport const loyalty = \"\";\n","import {\n\tCustomerListRequest,\n\tSBCustomer,\n\tCustomerCreateRequest,\n\tCustomerUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list customers with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated customers\n */\nexport function useListCustomersInfiniteQuery(\n\trequest: CustomerListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomer>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBCustomer>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customers.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a customer by ID\n * @param id - The customer ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer data\n */\nexport const useGetCustomerByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useQuery<SBCustomer, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\n/**\n * Hook to create a new customer\n * @returns Mutation function to create a customer\n */\nexport const useCreateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: CustomerCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer\n * @returns Mutation function for updating customers\n */\nexport const useUpdateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: CustomerUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to delete a customer\n * @returns Mutation function for deleting customers\n */\nexport const useDeleteCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.customers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tCustomerPaymentMethodListRequest,\n\tSBPaymentMethod,\n\tSBRequestOptions,\n\tSBList,\n\tCustomerPaymentMethodCreateRequest,\n\tCustomerPaymentMethodUpdateRequest,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list a customer's payment methods with infinite query\n * @param customerId - The customer ID\n * @param request - Request parameters for listing payment methods\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the customer's payment methods\n */\nexport const useListCustomerPaymentMethodsInfiniteQuery = (\n\tcustomerId: number,\n\trequest: CustomerPaymentMethodListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer payment method operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBPaymentMethod>,\n\t\tSBApiException,\n\t\tSBList<SBPaymentMethod>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customerPaymentMethods.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to get a specific payment method for a customer\n * @param customerId - The customer ID\n * @param id - The payment method ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the payment method\n */\nexport const useGetCustomerPaymentMethodByIdQuery = (\n\tcustomerId: number,\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer payment method operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBPaymentMethod, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customerPaymentMethods.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to create a customer payment method\n * @returns Mutation function and state for creating payment methods\n */\nexport const useCreateCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tdata: CustomerPaymentMethodCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer payment method\n * @returns Mutation function and state for updating payment methods\n */\nexport const useUpdateCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tid: number;\n\t\t\tdata: CustomerPaymentMethodUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, id, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId, id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook to delete a customer payment method\n * @returns Mutation function and state for deleting payment methods\n */\nexport const useDeleteCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId, id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tCustomerBalanceTransactionListRequest,\n\tSBCustomerBalanceTransaction,\n\tSBApiException,\n} from \"@smartbills/sdk\";\n\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list balance transactions for a customer with infinite scrolling\n * @param customerId - The customer ID\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transactions\n */\nexport const useListCustomerBalanceTransactionsInfiniteQuery = (\n\tcustomerId: number,\n\trequest: CustomerBalanceTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerBalanceTransactionListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomerBalanceTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBCustomerBalanceTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to get a specific balance transaction for a customer\n * @param customerId - The customer ID\n * @param transactionId - The balance transaction ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transaction\n */\nexport const useGetCustomerBalanceTransactionByIdQuery = (\n\tcustomerId: number,\n\ttransactionId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBCustomerBalanceTransaction, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\ttransactionId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\ttransactionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!customerId && !!transactionId,\n\t});\n};\n","import {\n\tSBList,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBTax,\n\tTaxCreateRequest,\n\tTaxListRequest,\n\tTaxUpdateRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListTaxesInfiniteQuery = (\n\trequest: TaxListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBTax>,\n\t\tSBApiException,\n\t\tSBList<SBTax>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.taxes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useGetTaxByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useQuery<SBTax, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.taxes.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: TaxCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: TaxUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeleteTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\tawait client.businesses.taxes.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tProductListRequest,\n\tProductCreateRequest,\n\tProductUpdateRequest,\n\tSBProduct,\n\tSBRequestOptions,\n\tSBApiException,\n\tBatchUpsertRequest,\n\tProductUpsertRequest,\n\tSBBatch,\n\tSBProductImage,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context/ApiContext\";\n\n/**\n * Hook to list products with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated products\n */\nexport function useListProductsInfiniteQuery(\n\trequest: ProductListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ProductListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProduct>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBProduct>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.products.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a product by ID\n * @param id - The product ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the product data\n */\nexport function useGetProductByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProduct, Error>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id],\n\t\tqueryFn: async () => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new product\n * @returns Mutation function to create a product\n */\nexport function useCreateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBProduct, SBApiException, ProductCreateRequest>({\n\t\tmutationKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products],\n\t\tmutationFn: async (request: ProductCreateRequest) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product\n * @returns Mutation function for deleting products\n */\nexport function useDeleteProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update a product\n * @returns Mutation function for updating products\n */\nexport function useUpdateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: ProductUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to batch upsert products\n * @returns Mutation function for batch upsert operations\n */\nexport function useBatchUpsertProductsMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBatch<SBProduct>,\n\t\tError,\n\t\t{\n\t\t\trequests: BatchUpsertRequest<ProductUpsertRequest>;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<\n\t\t\t\tBatchUpsertRequest<ProductUpsertRequest>\n\t\t\t>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ requests, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.batch(\n\t\t\t\tbusinessId,\n\t\t\t\trequests,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBProductVariant,\n\tProductVariantCreateRequest,\n\tProductVariantUpdateRequest,\n\tSBList,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product variants for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product variants data\n */\nexport function useListProductVariantsInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product variant operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductVariant>,\n\t\tSBApiException,\n\t\tSBList<SBProductVariant>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productVariants.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product variant by ID\n * @param productId - The ID of the product\n * @param variantId - The ID of the product variant to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product variant data\n */\nexport function useGetProductVariantByIdQuery(\n\tproductId: number,\n\tvariantId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProductVariant, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\tvariantId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId && !!variantId,\n\t});\n}\n\n/**\n * Hook to create a new product variant\n * @returns A mutation function to create a product variant\n */\nexport function useCreateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tdata: ProductVariantCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product variant\n * @returns A mutation function to update a product variant\n */\nexport function useUpdateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\tdata: ProductVariantUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product variant\n * @returns A mutation function to delete a product variant\n */\nexport function useDeleteProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tProductModifierCreateRequest,\n\tProductModifierUpdateRequest,\n\tSBApiException,\n\tSBList,\n\tSBProductModifier,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of modifiers for a specific business and product with infinite scrolling\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated modifiers data\n */\nexport function useListProductModifiersInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductModifier>,\n\t\tSBApiException,\n\t\tSBList<SBProductModifier>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productModifiers.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to fetch a specific modifier by ID for a business and product\n * @param productId - The ID of the product\n * @param modifierId - The ID of the modifier to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the modifier data\n */\nexport function useGetProductModifierByIdQuery(\n\tproductId: number,\n\tmodifierId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBProductModifier, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tmodifierId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productModifiers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to create a new modifier for a product\n * @returns A mutation function to create a modifier\n */\nexport function useCreateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ProductModifierCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing modifier for a product\n * @returns A mutation function to update a modifier\n */\nexport function useUpdateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\tdata: ProductModifierUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a modifier for a product\n * @returns A mutation function to delete a modifier\n */\nexport function useDeleteProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductOption,\n\tProductOptionCreateRequest,\n\tProductOptionUpdateRequest,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product options for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product options data\n */\nexport function useListProductOptionsInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product option operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductOption>,\n\t\tSBApiException,\n\t\tSBList<SBProductOption>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, request],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productOptions.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product option by ID\n * @param productId - The ID of the product\n * @param optionId - The ID of the product option to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product option data\n */\nexport function useGetProductOptionByIdQuery(\n\tproductId: number,\n\toptionId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product option operations\");\n\t}\n\n\treturn useQuery<SBProductOption, SBApiException>({\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productOptions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!optionId,\n\t});\n}\n\n/**\n * Hook to create a new product option\n * @returns A mutation function to create a product option\n */\nexport function useCreateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: Omit<SBProductOption, \"id\" | \"createdAt\" | \"updatedAt\">;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product option\n * @returns A mutation function to update a product option\n */\nexport function useUpdateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\trequest: Partial<SBProductOption>;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({\n\t\t\tproductId,\n\t\t\toptionId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product option\n * @returns A mutation function to delete a product option\n */\nexport function useDeleteProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, optionId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductImage,\n\tProductImageCreateRequest,\n\tProductImageUpdateRequest,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product images for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product images data\n */\nexport function useListProductImagesInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductImage>,\n\t\tSBApiException,\n\t\tSBList<SBProductImage>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a list of product images for a specific product\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated product images data\n */\nexport function useListProductImagesQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product image by ID\n * @param productId - The ID of the product\n * @param imageId - The ID of the product image to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product image data\n */\nexport function useGetProductImageByIdQuery(\n\tproductId: number,\n\timageId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery<SBProductImage, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\timageId,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productImages.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!imageId,\n\t});\n}\n\n/**\n * Hook to create a new product image\n * @returns A mutation function to create a product image\n */\nexport function useCreateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: ProductImageCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, request, options, config }) => {\n\t\t\treturn await client.businesses.productImages.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product image\n * @returns A mutation function to update a product image\n */\nexport function useUpdateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\trequest: ProductImageUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({\n\t\t\tproductId,\n\t\t\timageId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\treturn await client.businesses.productImages.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product image\n * @returns A mutation function to delete a product image\n */\nexport function useDeleteProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, imageId, options, config }) => {\n\t\t\treturn await client.businesses.productImages.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tBusinessReviewCreateRequest,\n\tBusinessReviewUpdateRequest,\n\tSBBusinessReview,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport {\n\tInfiniteData,\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing reviews with infinite pagination\n * @param request - Request parameters for listing reviews\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with reviews data\n */\nexport const useListReviewsInfiniteQuery = (\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusinessReview>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusinessReview>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.BusinessReviews,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.reviews.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a review by ID\n * @param id - The ID of the review to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the review data\n */\nexport const useGetReviewByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBBusinessReview, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.BusinessReviews,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.reviews.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t});\n};\n\n/**\n * Hook for creating a new review\n * @returns Mutation function for creating reviews\n */\nexport const useCreateReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBBusinessReview,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: BusinessReviewCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessReviewCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.businesses.reviews.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing review\n * @returns Mutation function for updating reviews\n */\nexport const useUpdateReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBBusinessReview,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\tdata: BusinessReviewUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessReviewUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, data, options, config }) => {\n\t\t\treturn await client.businesses.reviews.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a review\n * @returns Mutation function for deleting reviews\n */\nexport const useDeleteReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.businesses.reviews.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.removeQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tLocationsListRequest,\n\tLocationCreateRequest,\n\tLocationUpdateRequest,\n\tSBLocation,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\nexport function useListLocationsInfiniteQuery(\n\trequest: LocationsListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<LocationsListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBLocation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBLocation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.locations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\nexport const useGetLocationByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useQuery<SBLocation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.locations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: LocationCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useUpdateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: LocationUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.locations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tPromoCodeCreateRequest,\n\tPromoCodeListRequest,\n\tPromoCodeUpdateRequest,\n\tSBPromoCode,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"../../SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\nexport const useListPromoCodes = (\n\trequest: PromoCodeListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<PromoCodeListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for promo code operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBPromoCode>,\n\t\tSBApiException,\n\t\tSBList<SBPromoCode>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.PromoCodes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.promoCodes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useGetPromoCodeById = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for promo code operations\");\n\t}\n\n\treturn useQuery<SBPromoCode, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.PromoCodes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.promoCodes.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreatePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPromoCode,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: PromoCodeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PromoCodeCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.promoCodes.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdatePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPromoCode,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: PromoCodeUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PromoCodeUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.promoCodes.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeletePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.promoCodes.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tFeeCreateRequest,\n\tFeeListRequest,\n\tFeeUpdateRequest,\n\tSBApiException,\n\tSBFee,\n\tSBList,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list fees with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing paginated fee data\n */\nexport function useListFeesInfiniteQuery(\n\trequest: FeeListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FeeListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for fee operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBFee>,\n\t\tSBApiException,\n\t\tSBList<SBFee>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Fees,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.fees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a fee by ID\n * @param feeId - The ID of the fee to retrieve\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the fee data\n */\nexport function useGetFeeByIdQuery(\n\tfeeId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for fee operations\");\n\t}\n\n\treturn useQuery<SBFee, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Fees,\n\t\t\tfeeId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.fees.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to create a new fee\n * @returns Mutation function for creating fees\n */\nexport function useCreateFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: FeeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<FeeCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing fee\n * @returns Mutation function for updating fees\n */\nexport function useUpdateFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tfeeId: number;\n\t\t\tdata: FeeUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<FeeUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ feeId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { feeId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t\tfeeId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a fee\n * @returns Mutation function for deleting fees\n */\nexport function useDeleteFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tfeeId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ feeId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { feeId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t\tfeeId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBVendor,\n\tVendorListRequest,\n\tVendorCreateRequest,\n\tVendorUpdateRequest,\n\tVendorConnectRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { InfiniteData, useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing vendors with infinite pagination\n * @param request - Request parameters for listing vendors\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with vendor data\n */\nexport function useListBusinessVendorsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBVendor>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBVendor>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Vendors,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.businesses.vendors.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest as VendorListRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a vendor by ID\n * @param id - The ID of the vendor to retrieve\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the vendor data, loading state, and error information\n */\nexport function useGetBusinessVendorByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Vendors,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.vendors.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook for deleting a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for deleting vendors\n */\nexport function useDeleteBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for creating a new vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for creating vendors\n */\nexport function useCreateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for updating a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for updating vendors\n */\nexport function useUpdateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\trequest: VendorUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\trequest: VendorUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for getting a vendor link token for Deck connection\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for getting a vendor link token\n */\nexport function useGetBusinessVendorLinkTokenMutation(\n\tmutationOptions?: UseMutationOptions<\n\t\tany, // Replace with the actual return type\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\treturn client.businesses.vendors.getLinkToken(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\t// Spread all mutation options\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook for connecting a vendor to Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for connecting vendors\n */\nexport function useConnectBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tpublicToken: string;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tpublicToken,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tpublicToken: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.connectAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ publicToken },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for manually refreshing a vendor's data from Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for refreshing vendors\n */\nexport function useRefreshBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tvoid,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.manualRefresh(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n","import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberInvitationListRequest,\n\tTeamMemberInvitationRequest,\n\tTeamMemberInvitationResponseRequest,\n\tSBApiException,\n\tSBList,\n\tSBTeamMemberInvitation,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { QueryKey, useMutation, useQuery } from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useInfiniteQuery, InfiniteData } from \"@tanstack/react-query\";\n\ninterface TeamMemberInvitationRequestMutation {\n\trequest: TeamMemberInvitationRequest;\n}\n\nexport const useInviteMemberToBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRequestMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRequestMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCancelMutation {\n\tinvitationId: number;\n}\n\nexport const useCancelTeamMemberInvitation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCancelMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t}: TeamMemberInvitationCancelMutation) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationAcceptMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationResponseRequest>;\n}\n\ninterface TeamMemberInvitationRefuseMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n}\n\ninterface GetTeamMemberInvitationQuery {\n\tinvitationId: number;\n}\n\nexport const useGetTeamMemberInvitationById = ({\n\tinvitationId,\n}: GetTeamMemberInvitationQuery) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMemberInvitation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\tinvitationId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.teamMembers.invitations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCreateMutation {\n\trequest: TeamMemberInvitationRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationRequest>;\n}\n\n/**\n * Hook for creating an business invitation\n * @returns Mutation function for creating business invitations\n */\nexport const useCreateTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCreateMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: TeamMemberInvitationCreateMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for accepting an business invitation\n * @returns Mutation function for accepting business invitations\n */\nexport const useAcceptTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationAcceptMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationAcceptMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for refusing an business invitation\n * @returns Mutation function for refusing business invitations\n */\nexport const useRefuseTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRefuseMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRefuseMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing business invitations with infinite pagination\n * @param businessId - The ID of the business\n * @param request - Request parameters for listing invitations\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business invitations data\n */\nexport function useListTeamMemberInvitationsInfiniteQuery(\n\tbusinessId: number,\n\trequest: TeamMemberInvitationListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationListRequest>,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMemberInvitation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMemberInvitation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberListRequest,\n\tSBApiException,\n\tSBTeamMember,\n\tSBTeamMemberRole,\n\tSBRequestOptions,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\nexport const useChangeTeamMemberRoleMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteTeamMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListTeamMembersInfiniteQuery(\n\trequest: TeamMemberListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMember>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMember>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMembers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listMembers(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t});\n}\n\nexport const useGetTeamMemberByIdQuery = (id: number) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMember, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getMemberById(businessId, id),\n\t});\n};\n","import {\n\tBusinessCreateRequest,\n\tBusinessListRequest,\n\tSBBusiness,\n\tBusinessUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n\tBusinessInvitationRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing business with infinite pagination\n * @param request - Request parameters for listing business\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business data\n */\nexport function useListBusinessInfiniteQuery(\n\trequest: BusinessListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BusinessListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusiness>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusiness>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Businesses, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a business by ID\n * @param id - The ID of the business to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the business data\n */\nexport const useGetBusinessByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useQuery<SBBusiness, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getByIdAsync(id, options, config),\n\t\t// If we're requesting the current business, only enable when businessId is set\n\t\tenabled: id === currentBusinessId ? !!currentBusinessId : true,\n\t});\n};\n\n/**\n * Hook for creating a new business\n * @returns Mutation function for creating business\n */\nexport const useCreateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: BusinessCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.createAsync(\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing business\n * @returns Mutation function for updating business\n */\nexport const useUpdateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\trequest: BusinessUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, request, options, config }) => {\n\t\t\treturn await client.businesses.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\n\t\t\t// If updating the current business, invalidate any queries that depend on it\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a business\n * @returns Mutation function for deleting business\n */\nexport const useDeleteBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, options, config }) => {\n\t\t\treturn await client.businesses.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\n\t\t\t// If deleting the current business, invalidate all queries\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for batch inviting members to a business\n */\nexport const useBatchInviteMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\tinvitations: BusinessInvitationRequest[];\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, invitations, options, config }) => {\n\t\t\treturn await client.businesses.batchInviteMemberAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitations,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, \"members\"],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBEntity,\n\tITimestamp,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * NOTE: This API implementation assumes that the SDK has a departments service\n * which may still need to be implemented in the SDK. The implementation follows\n * the same pattern as the EmployeesAPI but requires the BusinessService to have\n * a departments property.\n */\n\n// Define Department interface based on SBEntity\ninterface SBDepartment extends SBEntity, ITimestamp {\n\tname: string;\n\tdescription?: string;\n\tbusinessId: number;\n}\n\n// Define request types\ninterface DepartmentCreateRequest {\n\tname: string;\n\tdescription?: string;\n}\n\ninterface DepartmentUpdateRequest {\n\tname?: string;\n\tdescription?: string;\n}\n\n/**\n * Hook to fetch a list of departments using infinite query\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated departments data\n */\nexport function useListDepartmentsInfiniteQuery(\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for department operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDepartment>,\n\t\tSBApiException,\n\t\tSBList<SBDepartment>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn await client.businesses.departments.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to fetch a list of departments\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated departments data\n */\nexport function useListDepartmentsQuery(\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.departments.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a specific department by ID\n * @param departmentId - The ID of the department to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the department data\n */\nexport function useGetDepartmentByIdQuery(\n\tdepartmentId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBDepartment, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.departments.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t});\n}\n\n/**\n * Hook to create a new department\n * @returns A mutation function to create a department\n */\nexport function useCreateDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: DepartmentCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.departments.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing department\n * @returns A mutation function to update a department\n */\nexport function useUpdateDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\trequest: DepartmentUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, request, options, config }) => {\n\t\t\treturn await client.businesses.departments.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a department\n * @returns A mutation function to delete a department\n */\nexport function useDeleteDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, options, config }) => {\n\t\t\treturn await client.businesses.departments.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBDepartmentTeamMember,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { DepartmentEmployeeCreateRequest } from \"@smartbills/sdk/dist/@types/services/businesses/departments/Employees/DepartmentEmployeeCreateRequest\";\n\n/**\n * NOTE: This API implementation assumes that the SDK has a departments service\n * which may still need to be implemented in the SDK. The implementation follows\n * the same pattern as the EmployeesAPI but requires the BusinessService to have\n * a departments property with an employees subproperty.\n */\n\n/**\n * Hook to fetch a list of employees in a department using infinite query\n * @param departmentId - The ID of the department\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated department employees data\n */\nexport function useListDepartmentEmployeesInfiniteQuery(\n\tdepartmentId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for department employee operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDepartmentTeamMember>,\n\t\tSBApiException,\n\t\tSBList<SBDepartmentTeamMember>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t\tSBApiKeys.Employees,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn await client.businesses.departments.employees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!departmentId,\n\t});\n}\n\n/**\n * Hook to fetch a list of employees in a department\n * @param departmentId - The ID of the department\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated department employees data\n */\nexport function useListDepartmentEmployeesQuery(\n\tdepartmentId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t\tSBApiKeys.Employees,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.departments.employees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!departmentId,\n\t});\n}\n\n/**\n * Hook to add an employee to a department\n * @returns A mutation function to add an employee to a department\n */\nexport function useAddEmployeeToDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartmentTeamMember,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\trequest: DepartmentEmployeeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, request, options, config }) => {\n\t\t\treturn await client.businesses.departments.employees.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to remove an employee from a department\n * @returns A mutation function to remove an employee from a department\n */\nexport function useRemoveEmployeeFromDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartmentTeamMember,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\temployeeId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, employeeId, options, config }) => {\n\t\t\treturn await client.businesses.departments.employees.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\temployeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBTable,\n\tTableCreateRequest,\n\tTableUpdateRequest,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient, useBusinessId } from \"@/context\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useTablesQuery() {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTable[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.tables.getAllAsync(businessId);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\nexport function useTableByIdQuery(tableId: number) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTable, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Tables, businessId, tableId],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.tables.getByIdAsync(businessId, tableId);\n\t\t},\n\t\tenabled: !!businessId && !!tableId,\n\t});\n}\n\nexport function useCreateTableMutation() {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBTable,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: TableCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.tables.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\t\t});\n\t\t},\n\t});\n}\n\nexport function useUpdateTableMutation(tableId: number) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBTable,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: TableUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.tables.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\ttableId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId, tableId],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBInvoice,\n\tSBList,\n\tInvoiceUpdateRequest,\n\tInvoiceCreateRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Type for invoice list request\n */\nexport interface InvoiceListRequest {\n\t/** Page number (0-indexed) */\n\tpage?: number;\n\t/** Number of items per page */\n\tpageSize?: number;\n\t/** Search term for filtering invoices */\n\tsearch?: string;\n}\n\n/**\n * Hook to fetch a list of invoices using infinite query\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated invoices data\n */\nexport function useListInvoicesInfiniteQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBInvoice>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBInvoice>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 0,\n\t\tqueryKey: [SBApiKeys.Invoices, request, options],\n\t\tqueryFn: async ({ pageParam = 0 }) => {\n\t\t\treturn await client.invoices.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage <\n\t\t\t\tlastPage.pagination.pageCount - 1\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a list of invoices\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated invoices data\n */\nexport function useListInvoicesQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBList<SBInvoice>, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, request],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.listAsync(request, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a specific invoice by ID\n * @param invoiceId - The ID of the invoice to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the invoice data\n */\nexport function useGetInvoiceByIdQuery(\n\tinvoiceId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBInvoice, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, invoiceId, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.getByIdAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for creating an invoice\n */\nexport function useCreateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tdata: InvoiceCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: InvoiceCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.invoices.createAsync(data, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to update an existing invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for updating an invoice\n */\nexport function useUpdateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\tdata: InvoiceUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\tdata: InvoiceUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, data, options, config }) => {\n\t\t\treturn await client.invoices.updateAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices, variables.invoiceId],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to delete an invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for deleting an invoice\n */\nexport function useDeleteInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, options, config }) => {\n\t\t\treturn await client.invoices.deleteAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n","import {\n\tuseQuery,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport {\n\tSBList,\n\tSBNotification,\n\tSBRequestOptions,\n\tSBApiException,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\n\n/**\n * Hook for retrieving a notification by ID\n * @param id - The ID of the notification to retrieve\n * @param options - Optional request options including businessId, businessId, and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the notification data, loading state, and error information\n */\nexport function useGetNotificationByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBNotification, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Notifications, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.notifications.getByIdAsync(id, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for listing notifications with infinite pagination\n * @param options - Optional request options including businessId, businessId, and userId\n * @param limit - Number of items per page\n * @returns Infinite query result for implementing infinite scrolling with notification data\n */\nexport function useListNotificationsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBNotification>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBNotification>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Notifications, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.notifications.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for marking notifications as read\n * @returns Mutation function and state for marking notifications as read\n */\nexport function useMarkNotificationsReadMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.notifications.markAsRead(id, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Notifications],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook for marking all notifications as read\n * @returns Mutation function and state for marking all notifications as read\n */\nexport function useMarkAllNotificationsReadMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ options, config }) => {\n\t\t\tawait client.notifications.markAllAsRead(options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Notifications],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tPaymentMethodCreateRequest,\n\tPaymentMethodListRequest,\n\tSBPaymentMethodSetup,\n\tSBApiException,\n\tSBPaymentMethod,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseQuery,\n\tuseQueryClient,\n\tuseInfiniteQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useCreatePaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: PaymentMethodCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PaymentMethodCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.paymentMethods.createAsync(\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useGetPaymentMethods = (\n\trequest: PaymentMethodListRequest,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBPaymentMethod[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, request, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.getAsync(\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n};\n\nexport const useGetPaymentMethodById = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBPaymentMethod, SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.getByIdAsync(\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n};\n\nexport const useDeletePaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn await client.paymentMethods.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods, id],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useSetupPaymentMethod = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBPaymentMethodSetup, SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, \"setup\"],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.setup();\n\t\t},\n\t});\n};\n\nexport const useCreatePaymentMethodFromSetupIntentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tsetupIntentId: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ setupIntentId, options, config }) => {\n\t\t\treturn await client.paymentMethods.createFromSetupIntentAsync(\n\t\t\t\tsetupIntentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useListPaymentMethodsInfiniteQuery = (\n\tpage: number = 1,\n\tpageSize: number = 10,\n) => {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, \"infinite\", page, pageSize],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: PaymentMethodListRequest = {\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.paymentMethods.getAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage, allPages) => {\n\t\t\t// Assuming the API returns pagination info similar to other services\n\t\t\tif (\n\t\t\t\tlastPage &&\n\t\t\t\tArray.isArray(lastPage) &&\n\t\t\t\tlastPage.length === pageSize\n\t\t\t) {\n\t\t\t\treturn allPages.length + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n};\n","import {\n\tSBList,\n\tReceiptListRequest,\n\tSBApiException,\n\tSBReceipt,\n\tSBRequestOptions,\n\tReceiptCreateRequest,\n\tReceiptUpdateRequest,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for retrieving a receipt by ID\n * @param id - The ID of the receipt to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the receipt data\n */\nexport const useGetReceiptByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBReceipt, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Receipts, id, options],\n\t\tqueryFn: async () => {\n\t\t\ttry {\n\t\t\t\treturn await client.receipts.getByIdAsync(id, options, config);\n\t\t\t} catch (exception) {\n\t\t\t\tthrow exception;\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing receipts with infinite pagination\n * @param request - Request parameters for listing receipts\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with receipt data\n */\nexport const useListReceiptsInfiniteQuery = (\n\trequest: ReceiptListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ReceiptListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBReceipt>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBReceipt>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Receipts, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\ttry {\n\t\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\t\treturn await client.receipts.listAsync(\n\t\t\t\t\tpaginatedRequest,\n\t\t\t\t\toptions,\n\t\t\t\t\tconfig,\n\t\t\t\t);\n\t\t\t} catch (exception) {\n\t\t\t\tthrow exception;\n\t\t\t}\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\nexport const useCreateReceiptMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBReceipt,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: ReceiptCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.receipts.createAsync(request, options, config);\n\t\t},\n\t\tonSuccess: (_, { request }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useCreateUpdateMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBReceipt,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: ReceiptUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\treturn await client.receipts.updateAsync(\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { request }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteReceiptMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.receipts.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts, id],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBVendor,\n\tVendorCreateRequest,\n\tVendorUpdateRequest,\n\tVendorConnectRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { InfiniteData, useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useListVendorsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBVendor>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBVendor>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Vendors, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.vendors.listAsync(paginatedRequest, options, config);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\nexport function useGetVendorByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery({\n\t\tqueryKey: [SBApiKeys.Vendors, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.vendors.getByIdAsync(id, options, config);\n\t\t},\n\t});\n}\n\nexport function useDeleteVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.deleteAsync(vendorId, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useCreateVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.createAsync(request, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useUpdateVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\trequest: VendorUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\trequest: VendorUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.updateAsync(\n\t\t\t\tvendorId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors, variables.vendorId],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useGetVendorLinkTokenMutation(\n\tmutationOptions?: UseMutationOptions<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>,\n) {\n\tconst client = useApiClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\treturn client.vendors.getLinkToken(options, config);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useConnectVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tpublicToken: string;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tpublicToken,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tpublicToken: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.connectAsync(\n\t\t\t\t{ publicToken },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useRefreshVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tvoid,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.manualRefresh(vendorId, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors, variables.vendorId],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n","import {\n\tuseQuery,\n\tuseMutation,\n\tuseInfiniteQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport {\n\tSBRequestOptions,\n\tSBUserAccount,\n\tSearchUsersRequest,\n\tSBApiException,\n\tSBList,\n\tSBBusiness,\n\tSBUser,\n\tUserUpdateRequest,\n} from \"@smartbills/sdk\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\n\n/**\n * Hook for retrieving the current user's profile\n * @param options - Optional request options including UserId, businessId, and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the user data, loading state, and error information\n */\nexport function useGetCurrentUser(\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBUserAccount, SBApiException>({\n\t\tqueryKey: [SBApiKeys.User, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.getCurrentUser(options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for Searching Users with infinite pagination\n * @param request - Request parameters for Searching Users\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with User data\n */\nexport const useSearchUsersInfiniteQuery = (\n\trequest: SearchUsersRequest = { page: 1, pageSize: 25, query: \"\" },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<SearchUsersRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBUserAccount>,\n\t\tSBApiException,\n\t\tSBList<SBUserAccount>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Users, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.users.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for getting user profile\n */\nexport function useGetUserProfile(\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery<any, SBApiException>({\n\t\tqueryKey: [SBApiKeys.User, \"profile\", options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.getUserProfile(options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for updating user profile\n */\nexport function useUpdateUserProfileMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: UserUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn client.user.updateUserProfile(data, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.User] });\n\t\t},\n\t});\n}\n\n/**\n * Hook for uploading user avatar\n */\nexport function useUploadUserAvatarMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tfile: File;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ file, options, config }) => {\n\t\t\treturn client.user.uploadAvatarAsync(file, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.User] });\n\t\t},\n\t});\n}\n\n/**\n * Hook for searching items\n */\nexport function useSearchQuery(\n\tquery: string,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery<any, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Search, query, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.searchAsync(query, options, config);\n\t\t},\n\t\tenabled: !!query,\n\t});\n}\n","import {\n\tIntegrationListRequest,\n\tSBIntegration,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListIntegrationsInfiniteQuery = (\n\tbusinessId: string | number,\n\tpage: number = 1,\n\tpageSize: number = 10,\n) => {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Integrations, businessId, page, pageSize],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: IntegrationListRequest = {\n\t\t\t\tbusinessId,\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.integrations.getAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage, allPages) => {\n\t\t\t// Assuming the API returns pagination info\n\t\t\tif (\n\t\t\t\tlastPage &&\n\t\t\t\tArray.isArray(lastPage) &&\n\t\t\t\tlastPage.length === pageSize\n\t\t\t) {\n\t\t\t\treturn allPages.length + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n};\n\nexport const useInstallIntegrationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: string | number;\n\t\t\tslug: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, slug, options, config }) => {\n\t\t\treturn await client.integrations.installAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tslug,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Integrations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tExpenseUploadRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useUploadMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"upload\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.uploadAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useValidateExpenseFilesMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"validate\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.validateAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useListJobInfiniteQuery(\n\tpage: number = 1,\n\tpageSize: number = 150,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Expenses, \"jobs\", { page, pageSize }],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: ListRequest = {\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.expenses.getProcessingJobsAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage?.pagination?.currentPage ===\n\t\t\t\tlastPage?.pagination?.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage?.pagination?.currentPage + 1;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n}\n"],"names":["SmartbillSDKContext","createContext","businessId","setCredentials","setBusinessId","client","SmartbillsSDKProvider","children","useState","credentials","React","createElement","Provider","value","useBusinessId","context","useContext","undefined","Error","useSetBusinessId","useApiContext","useApiClient","useSetCredentials","useSmartbillsSDKContext","SBApiKeys","useGetLogByIdQuery","id","options","config","useQuery","queryKey","Logs","queryFn","logs","getByIdAsync","useListLogsInfiniteQuery","request","page","pageSize","useInfiniteQuery","initialPageParam","pageParam","paginatedRequest","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","useGetAttachmentByIdQuery","useQueryClient","Attachments","attachments","useCreateAttachmentMutation","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","invalidateQueries","useDeleteAttachmentMutation","deleteAsync","_","useListAttachmentsInfiniteQuery","userId","toString","getPreviousPageParam","firstPage","useGetBankAccountByIdQuery","BankAccounts","bankAccounts","useListBankAccountsQuery","getAsync","useListBankAccountTransactionsInfiniteQuery","listTransactions","useListBankInstitutionsInfiniteQuery","BankInstitutions","bankInstitutions","useGetBankInstitutionByIdQuery","useListBankTransactionsInfiniteQuery","BankTransactions","bankTransactions","useGetBankTransactionByIdQuery","useListDocumentsInfiniteQuery","Documents","documents","useGetDocumentByIdQuery","useUploadDocumentMutation","upload","useDeleteDocumentMutation","variables","useListFriendsInfiniteQuery","Friends","friends","useListRecommendedFriendsInfiniteQuery","listRecommanded","useGetFriendByIdQuery","useDeleteFriendMutation","useListFriendRequestsInfiniteQuery","loyalty","useListCustomersInfiniteQuery","Businesses","Customers","businesses","customers","enabled","useGetCustomerByIdQuery","useCreateCustomerMutation","useUpdateCustomerMutation","updateAsync","useDeleteCustomerMutation","useListCustomerPaymentMethodsInfiniteQuery","customerId","CustomerPaymentMethods","customerPaymentMethods","useGetCustomerPaymentMethodByIdQuery","useCreateCustomerPaymentMethodMutation","useUpdateCustomerPaymentMethodMutation","useDeleteCustomerPaymentMethodMutation","useListCustomerBalanceTransactionsInfiniteQuery","CustomerBalanceTransactions","customerBalanceTransactions","useGetCustomerBalanceTransactionByIdQuery","transactionId","useListTaxesInfiniteQuery","Taxes","taxes","useGetTaxByIdQuery","useCreateTaxMutation","useUpdateTaxMutation","useDeleteTaxMutation","useListProductsInfiniteQuery","Products","products","useGetProductByIdQuery","useCreateProductMutation","mutationKey","useDeleteProductMutation","useUpdateProductMutation","useBatchUpsertProductsMutation","requests","batch","useListProductVariantsInfiniteQuery","productId","ProductVariants","productVariants","useGetProductVariantByIdQuery","variantId","useCreateProductVariantMutation","useUpdateProductVariantMutation","useDeleteProductVariantMutation","useListProductModifiersInfiniteQuery","ProductModifiers","productModifiers","useGetProductModifierByIdQuery","modifierId","useCreateProductModifierMutation","useUpdateProductModifierMutation","useDeleteProductModifierMutation","useListProductOptionsInfiniteQuery","ProductOptions","productOptions","useGetProductOptionByIdQuery","optionId","useCreateProductOptionMutation","useUpdateProductOptionMutation","useDeleteProductOptionMutation","useListProductImagesInfiniteQuery","ProductImages","productImages","useListProductImagesQuery","useGetProductImageByIdQuery","imageId","useCreateProductImageMutation","useUpdateProductImageMutation","useDeleteProductImageMutation","useListReviewsInfiniteQuery","BusinessReviews","reviews","useGetReviewByIdQuery","useCreateReviewMutation","useUpdateReviewMutation","useDeleteReviewMutation","removeQueries","useListLocationsInfiniteQuery","Locations","locations","useGetLocationByIdQuery","useCreateLocationMutation","useUpdateLocationMutation","useDeleteLocationMutation","useListPromoCodes","PromoCodes","promoCodes","useGetPromoCodeById","useCreatePromoCodeMutation","useUpdatePromoCodeMutation","useDeletePromoCodeMutation","useListFeesInfiniteQuery","Fees","fees","useGetFeeByIdQuery","feeId","useCreateFeeMutation","useUpdateFeeMutation","useDeleteFeeMutation","useListBusinessVendorsInfiniteQuery","Vendors","vendors","useGetBusinessVendorByIdQuery","useDeleteBusinessVendorMutation","mutationOptions","vendorId","useCreateBusinessVendorMutation","useUpdateBusinessVendorMutation","useGetBusinessVendorLinkTokenMutation","getLinkToken","useConnectBusinessVendorMutation","publicToken","connectAsync","useRefreshBusinessVendorMutation","manualRefresh","useInviteMemberToBusinessMutation","teamMembers","invitations","TeamMemberInvitations","useCancelTeamMemberInvitation","invitationId","useGetTeamMemberInvitationById","useCreateTeamMemberInvitationMutation","useAcceptTeamMemberInvitationMutation","accept","useRefuseTeamMemberInvitationMutation","useListTeamMemberInvitationsInfiniteQuery","useChangeTeamMemberRoleMutation","deleteMember","TeamMembers","useDeleteTeamMemberMutation","useListTeamMembersInfiniteQuery","listMembers","useGetTeamMemberByIdQuery","getMemberById","useListBusinessInfiniteQuery","useGetBusinessByIdQuery","currentBusinessId","useCreateBusinessMutation","useUpdateBusinessMutation","useDeleteBusinessMutation","useBatchInviteMemberMutation","batchInviteMemberAsync","useListDepartmentsInfiniteQuery","Departments","departments","useListDepartmentsQuery","useGetDepartmentByIdQuery","departmentId","useCreateDepartmentMutation","useUpdateDepartmentMutation","useDeleteDepartmentMutation","useListDepartmentEmployeesInfiniteQuery","Employees","employees","useListDepartmentEmployeesQuery","useAddEmployeeToDepartmentMutation","useRemoveEmployeeFromDepartmentMutation","employeeId","useTablesQuery","Tables","tables","getAllAsync","useTableByIdQuery","tableId","useCreateTableMutation","useUpdateTableMutation","useListInvoicesInfiniteQuery","Invoices","invoices","useListInvoicesQuery","useGetInvoiceByIdQuery","invoiceId","useCreateInvoiceMutation","useUpdateInvoiceMutation","useDeleteInvoiceMutation","useGetNotificationByIdQuery","Notifications","notifications","useListNotificationsInfiniteQuery","useMarkNotificationsReadMutation","markAsRead","useMarkAllNotificationsReadMutation","markAllAsRead","useCreatePaymentMethodMutation","paymentMethods","PaymentMethods","useGetPaymentMethods","useGetPaymentMethodById","useDeletePaymentMethodMutation","useSetupPaymentMethod","setup","useCreatePaymentMethodFromSetupIntentMutation","setupIntentId","createFromSetupIntentAsync","useListPaymentMethodsInfiniteQuery","allPages","Array","isArray","length","useGetReceiptByIdQuery","Receipts","receipts","exception","useListReceiptsInfiniteQuery","useCreateReceiptMutation","useCreateUpdateMutation","useDeleteReceiptMutation","useListVendorsInfiniteQuery","useGetVendorByIdQuery","useDeleteVendorMutation","useCreateVendorMutation","useUpdateVendorMutation","useGetVendorLinkTokenMutation","useConnectVendorMutation","useRefreshVendorMutation","useGetCurrentUser","User","user","getCurrentUser","useSearchUsersInfiniteQuery","query","Users","users","useGetUserProfile","getUserProfile","useUpdateUserProfileMutation","updateUserProfile","useUploadUserAvatarMutation","file","uploadAvatarAsync","useSearchQuery","Search","searchAsync","useListIntegrationsInfiniteQuery","Integrations","integrations","useInstallIntegrationMutation","slug","installAsync","useUploadMutation","Expenses","expenses","uploadAsync","useValidateExpenseFilesMutation","validateAsync","useListJobInfiniteQuery","getProcessingJobsAsync"],"mappings":"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AC1BC,MAAwC,EAAA;IAExC,EAAA,MAAMvB,MAAM,GAAGgB,YAAY,EAAE;IAC7B,EAAoB6B,yBAAc;IAElC,EAAA,OAAOX,2BAAgB,CAMrB;IACDC,IAAAA,gBAAgB,EAAEJ,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCP,IAAAA,QAAQ,EAAE,CAACN,iBAAS,CAACqE,OAAO,EAAErE,iBAAS,CAACqE,OAAO,EAAEzD,OAAO,EAAET,OAAO,CAAC;QAClEK,OAAO,EAAE,OAAO;IAAES,MAAAA,SAAS,GAAG;IAAG,KAAA,KAAI;IACpC,MAAA,MAAMC,gBAAgB,GAAG;IAAE,QAAA,GAAGN,OAAO;IAAEC,QAAAA,IAAI,EAAEI;WAAW;IACxD,MAAA,OAAO,MAAMpC,MAAM,CAACyF,OAAO,CAACnD,SAAS,CACpCD,gBAAgB,EAChBf,OAAO,EACPC,MAAM,CACN;SACD;QACDgB,gBAAgB,EAAGC,QAAQ,IAAI;IAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;IACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;IAC3C;IACA,MAAA,OAAO9B,SAAS;IACjB;IACA,GAAA,CAAC;IACH;;ICrMA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AAEO,UAAMmF,OAAO,GAAG;;IClevB;;;;;;IAMG;aACaC,6BAA6BA,CAC5CjE,OAA+B,GAAA;IAAEC,EAAAA,IAAI,EAAE,CAAC;IAAEC,EAAAA,QAAQ,EAAE;IAAE,CAAE,EACxDX,OAA0B,EAC1BC,MAAgD,EAAA;IAEhD,EAAA,MAAMvB,MAAM,GAAGgB,YAAY,EAAE;IAC7B,EAAoB6B,yBAAc;IAClC,EAAA,MAAMhD,UAAU,GAAGY,aAAa,EAAE;MAClC,IAAI,CAACZ,UAAU,EAAE;IAChB,IAAA,MAAM,IAAIgB,KAAK,CAAC,gDAAgD,CAAC;IAClE;IAEA,EAAA,OAAOqB,2BAAgB,CAMrB;IACDC,IAAAA,gBAAgB,EAAEJ,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCP,IAAAA,QAAQ,EAAE,CACTN,iBAAS,CAAC8E,UAAU,EAC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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/context/ApiContext.tsx","../../src/apis/SBApiKeys.ts","../../src/apis/api-logs/LogsAPI.ts","../../src/apis/attachments/AttachmentsAPI.ts","../../src/apis/banks/accounts/BankAccountAPI.tsx","../../src/apis/banks/bank-institutions/BankInstitutionsAPI.tsx","../../src/apis/banks/bank-transactions/BankTransactionAPI.tsx","../../src/apis/documents/DocumentsAPI.tsx","../../src/apis/friends/FriendsAPI.ts","../../src/apis/loyalty/LoyaltyProgramAPI.ts","../../src/apis/business/customers/CustomerAPI.ts","../../src/apis/business/customers/CustomerPaymentMethodsAPI.ts","../../src/apis/business/customers/CustomerBalanceTransactionsAPI.ts","../../src/apis/business/taxes/TaxesAPI.tsx","../../src/apis/business/products/ProductsAPI.tsx","../../src/apis/business/products/variants/ProductVariantsAPI.tsx","../../src/apis/business/products/modifiers/ModifiersAPI.tsx","../../src/apis/business/products/options/ProductOptionsAPI.tsx","../../src/apis/business/products/images/ProductImagesAPI.tsx","../../src/apis/business/reviews/ReviewsAPI.tsx","../../src/apis/business/locations/LocationsAPI.ts","../../src/apis/business/promo-codes/PromoCodesAPI.tsx","../../src/apis/business/fees/FeesAPI.tsx","../../src/apis/business/vendors/VendorsAPI.ts","../../src/apis/business/team/TeamMemberInvitationsAPI.tsx","../../src/apis/business/team/TeamMembersAPI.tsx","../../src/apis/business/BusinessAPI.tsx","../../src/apis/business/departments/DepartmentApi.tsx","../../src/apis/business/departments/employees/DepartmentEmployeesAPI.tsx","../../src/apis/business/tables/TablesAPI.tsx","../../src/apis/invoices/InvoicesAPI.tsx","../../src/apis/notifications/NotificationAPI.ts","../../src/apis/payment-methods/PaymentMethodsAPI.tsx","../../src/apis/receipts/ReceiptAPI.tsx","../../src/apis/vendors/VendorsAPI.ts","../../src/apis/user/UserAPI.tsx","../../src/apis/integrations/IntegrationsAPI.tsx","../../src/apis/expenses/ExpensesAPI.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, ReactNode } from \"react\";\nimport { SBClient, SBCredentialProvider } from \"@smartbills/sdk\";\n\ninterface SmartbillsSDKContext {\n\tclient: SBClient;\n\tbusinessId: number | null;\n\tsetBusinessId: (id: number | null) => void;\n\tsetCredentials: (credentials: SBCredentialProvider) => void;\n}\n\nconst SmartbillSDKContext = createContext<SmartbillsSDKContext>({\n\tbusinessId: null,\n\tsetCredentials: () => {},\n\tsetBusinessId: () => {},\n\tclient: null,\n});\n\ninterface SmartbillsSDKProviderProps {\n\tchildren: ReactNode;\n\tclient: SBClient;\n}\n\n/**\n * Provider component for API context\n * @param children - Child components\n */\nexport function SmartbillsSDKProvider({\n\tclient,\n\tchildren,\n}: SmartbillsSDKProviderProps) {\n\tconst [businessId, setBusinessId] = useState<number | null>(null);\n\tconst setCredentials = (credentials: SBCredentialProvider) => {\n\t\tclient.setCredentials(credentials);\n\t};\n\treturn (\n\t\t<SmartbillSDKContext.Provider\n\t\t\tvalue={{\n\t\t\t\tbusinessId,\n\t\t\t\tsetBusinessId,\n\t\t\t\tclient,\n\t\t\t\tsetCredentials,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</SmartbillSDKContext.Provider>\n\t);\n}\n\n/**\n * Hook to access the current business ID from context\n * @returns The current business ID or null if not set\n */\nexport function useBusinessId(): number | null {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useBusinessId must be used within an ApiProvider\");\n\t}\n\treturn context.businessId;\n}\n\n/**\n * Hook to update the current business ID\n * @returns Function to set the current business ID\n */\nexport function useSetBusinessId(): (id: number | null) => void {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useSetBusinessId must be used within an ApiProvider\");\n\t}\n\treturn context.setBusinessId;\n}\n\n/**\n * Hook to access the full API context\n * @returns The complete API context object\n */\nexport function useApiContext(): SmartbillsSDKContext {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"useApiContext must be used within an ApiProvider\");\n\t}\n\treturn context;\n}\n\nexport function useApiClient(): SBClient {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t\"useApiClient must be used within an ApiClientProvider\",\n\t\t);\n\t}\n\treturn context.client;\n}\n\nexport function useSetCredentials(): (\n\tcredentials: SBCredentialProvider,\n) => void {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\"usesetCredentials must be used within an ApiProvider\");\n\t}\n\treturn context.setCredentials;\n}\n\nexport function useSmartbillsSDKContext(): SmartbillsSDKContext | null {\n\tconst context = useContext(SmartbillSDKContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t\"useSmartbillsSDKContext must be used within an SmartbillsSDKContext\",\n\t\t);\n\t}\n\treturn context;\n}\n","/**\n * Enum of API key strings for consistent query key usage across the application.\n * String values use dot notation to represent nesting.\n */\nexport enum SBApiKeys {\n\tAttachments = \"attachments\",\n\tBanks = \"banks\",\n\tBankAccounts = \"bankAccounts\",\n\tBankInstitutions = \"bankInstitutions\",\n\tBankTransactions = \"bankTransactions\",\n\tBrands = \"brands\",\n\tCategories = \"categories\",\n\tCustomers = \"customers\",\n\tCardSetupIntents = \"cardSetupIntents\",\n\tCards = \"cards\",\n\tCustomerBalanceTransactions = \"customerBalanceTransactions\",\n\tCustomerPaymentMethods = \"customerPaymentMethods\",\n\tDepartments = \"departments\",\n\tDocuments = \"documents\",\n\tEmployees = \"employees\",\n\tFees = \"fees\",\n\tFriends = \"friends\",\n\tLocations = \"locations\",\n\tInvoices = \"invoices\",\n\tLoyaltyPrograms = \"loyaltyPrograms\",\n\tLoyaltyProgramAccounts = \"loyaltyProgramAccounts\",\n\tLoyaltyProgramRewards = \"loyaltyProgramRewards\",\n\tLogs = \"logs\",\n\tBusinesses = \"businesses\",\n\tTeamMembers = \"teamMembers\",\n\tBusinessReviews = \"businessReviews\",\n\tTeamMemberInvitations = \"teamMemberInvitations\",\n\tModifiers = \"modifiers\",\n\tNotifications = \"notifications\",\n\tProducts = \"products\",\n\tProductOptions = \"productOptions\",\n\tProductModifiers = \"ProductModifiers\",\n\tProductImages = \"productImages\",\n\tPaymentMethods = \"paymentMethods.\",\n\tPromoCodes = \"promoCodes\",\n\tReceipts = \"receipts\",\n\tSubscriptions = \"subscriptions\",\n\tTaxes = \"taxes\",\n\tUser = \"user\",\n\tUsers = \"users\",\n\tVendors = \"vendors\",\n\tProductVariants = \"productVariants\",\n\tIntegrations = \"integrations\",\n\tTables = \"tables\",\n\tExpenses = \"expenses\",\n\tSearch = \"search\",\n}\n","import {\n\tLogListRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBApiLog,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseQuery,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useGetLogByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBApiLog, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Logs, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.logs.getByIdAsync(id, options, config),\n\t});\n};\n\nexport function useListLogsInfiniteQuery(\n\trequest: LogListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<LogListRequest>,\n) {\n\tconst client = useApiClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBApiLog>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBApiLog>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Logs, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.logs.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tAttachmentCreateRequest,\n\tAttachmentListRequest,\n\tSBAttachment,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for retrieving an attachment by ID\n * @param id - The ID of the attachment to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the attachment data\n */\nexport function useGetAttachmentByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBAttachment, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Attachments, id],\n\t\tqueryFn: async () => {\n\t\t\treturn client.attachments.getByIdAsync(id, options);\n\t\t},\n\t});\n}\n\n/**\n * Hook for creating an attachment\n * @returns Mutation function for creating attachments\n */\nexport function useCreateAttachmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBAttachment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: AttachmentCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn client.attachments.createAsync(data, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments],\n\t\t\t});\n\t\t},\n\t});\n}\n\n// /**\n// * Hook for uploading an attachment\n// * @returns Mutation function for uploading attachments\n// */\n// export function useUploadAttachmentMutation() {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useMutation<\n// \t\tSBAttachment,\n// \t\tSBApiException,\n// \t\t{\n// \t\t\tdata: AttachmentUploadRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}\n// \t>({\n// \t\tmutationFn: async ({ data, options, config }) => {\n// \t\t\treturn client.attachments.upload(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [SBApiKeys.Attachments],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n/**\n * Hook for deleting an attachment\n * @returns Mutation function for deleting attachments\n */\nexport function useDeleteAttachmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBAttachment,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn client.attachments.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Attachments, id],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook for listing attachments with infinite pagination\n * @param request - Request parameters for listing attachments\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @param businessId - Optional business ID when calling on behalf of a business\n * @param businessId - Optional business ID when calling on behalf of an business\n * @param userId - Optional user ID when calling on behalf of a user\n * @returns Infinite query result for implementing infinite scrolling with attachment data\n */\nexport function useListAttachmentsInfiniteQuery(\n\trequest: AttachmentListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<AttachmentListRequest>,\n\tbusinessId?: number,\n\tuserId?: number,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBAttachment>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBAttachment>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Attachments,\n\t\t\trequest,\n\t\t\tbusinessId,\n\t\t\tbusinessId,\n\t\t\tuserId,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) =>\n\t\t\tawait client.attachments.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\t{\n\t\t\t\t\t...options,\n\t\t\t\t\tbusinessId: businessId?.toString(),\n\t\t\t\t\tuserId: userId?.toString(),\n\t\t\t\t},\n\t\t\t\tconfig,\n\t\t\t),\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage <= 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t});\n}\n","import { useApiClient } from \"@/context\";\nimport {\n\tBankAccountListRequest,\n\tBankTransactionListRequest,\n\tSBRequestOptions,\n\tSBList,\n\tSBBankTransaction,\n\tSBBankAccount,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for retrieving a bank account by ID\n * @param id - The ID of the bank account to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank account data\n */\nexport const useGetBankAccountByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank accounts\n * @param request - Request parameters for listing bank accounts\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing paginated bank account data\n */\nexport const useListBankAccountsQuery = (\n\trequest: BankAccountListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankAccount[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankAccounts, request, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.bankAccounts.getAsync(request, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing bank account transactions with infinite pagination\n * @param id - The ID of the bank account\n * @param request - Request parameters for listing transactions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank account transaction data\n */\nexport const useListBankAccountTransactionsInfiniteQuery = (\n\tid: number,\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.BankAccounts,\n\t\t\tid,\n\t\t\t\"transactions\",\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.bankAccounts.listTransactions(\n\t\t\t\tid,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n","import {\n\tBankInstitutionListRequest,\n\tSBList,\n\tSBBankInstitution,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport {\n\tuseInfiniteQuery,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Hook for listing bank institutions with infinite pagination\n * @param request - Request parameters for listing bank institutions\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with bank institutions data\n */\nexport function useListBankInstitutionsInfiniteQuery(\n\trequest: BankInstitutionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BankInstitutionListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankInstitution>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBankInstitution>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankInstitutions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.bankInstitutions.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a bank institution by ID\n * @param id - The ID of the bank institution to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank institution data\n */\nexport const useGetBankInstitutionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankInstitution, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankInstitutions, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankInstitutions.getByIdAsync(id, options, config),\n\t});\n};\n","import {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n} from \"@tanstack/react-query\";\nimport {\n\tBankTransactionListRequest,\n\tSBList,\n\tSBBankTransaction,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing bank transactions with infinite pagination\n * @param request - Request parameters for listing bank transactions\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result for implementing infinite scrolling with bank transaction data\n */\nexport const useListBankTransactionsInfiniteQuery = (\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankTransactions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.bankTransactions.listAsync(\n\t\t\t\t{\n\t\t\t\t\t...request,\n\t\t\t\t\tpage: pageParam,\n\t\t\t\t},\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a bank transaction by ID\n * @param id - The ID of the bank transaction to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank transaction data\n */\nexport const useGetBankTransactionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankTransaction, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankTransactions, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankTransactions.getByIdAsync(id, options, config),\n\t});\n};\n","import {\n\tDocumentListRequest,\n\tSBList,\n\tSBDocument,\n\tDocumentUploadRequest,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useListDocumentsInfiniteQuery(\n\trequest: DocumentListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<DocumentListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDocument>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBDocument>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Documents, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.documents.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\nexport const useGetDocumentByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBDocument, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Documents, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.documents.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\nexport const useUploadDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBDocument,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: DocumentUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<DocumentUploadRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.documents.upload(request, options);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t},\n\t});\n};\n\nexport const useDeleteDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.documents.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Documents, variables.id],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBFriend,\n\tFriendListRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBFriendRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing friends with infinite pagination\n * @param request - Request parameters for listing friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with friends data\n */\nexport const useListFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriend>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing recommended friends with infinite pagination\n * @param request - Request parameters for listing recommended friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with recommended friends data\n */\nexport const useListRecommendedFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tSBList<SBFriend>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, \"recommended\", request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listRecommanded(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a friend by ID\n * @param id - The ID of the friend to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the friend data\n */\nexport const useGetFriendByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBFriend, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Friends, id],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.friends.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a friend\n * @returns Mutation function for deleting friends\n */\nexport const useDeleteFriendMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBFriend,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn await client.friends.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, variables.id],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"list\"],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"recommended\"],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListFriendRequestsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriendRequest>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriendRequest>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","// import {\n// \tuseQuery,\n// \tuseInfiniteQuery,\n// \tuseMutation,\n// \tuseQueryClient,\n// \tQueryKey,\n// } from \"@tanstack/react-query\";\n// import {\n// \tLoyaltyProgramCreateRequest,\n// \tLoyaltyProgramUpdateRequest,\n// \tLoyaltyProgramListRequest,\n// \tSBLoyaltyProgramResponse,\n// \tLoyaltyAccountCreateRequest,\n// \tLoyaltyAccountUpdateRequest,\n// \tSBLoyaltyProgramAccountResponse,\n// \tLoyaltyProgramPointsAccumulateRequest,\n// \tLoyaltyProgramPointsAdjustRequest,\n// \tSBLoyaltyProgramPointResponse,\n// \tLoyaltyRewardCreateRequest,\n// \tSBLoyaltyRewardResponse,\n// \tLoyaltyRewardRedeemRequest,\n// \tSBList,\n// \tSBRequestOptions,\n// \tSBApiException,\n// } from \"@smartbills/sdk\";\n// import { useApiClient } from \"@/context\";\n// import { AxiosRequestConfig } from \"axios\";\n\n// /**\n// * Hook for retrieving a loyalty program by ID\n// * @param programId - The ID of the loyalty program to retrieve\n// * @returns Query result containing the loyalty program data, loading state, and error information\n// */\n// export function useGetLoyaltyProgramByIdQuery(\n// \tprogramId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyProgram\", programId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getByIdAsync(programId, options, config);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for listing loyalty programs with infinite pagination\n// * @param request - Request parameters for listing loyalty programs\n// * @returns Infinite query result for implementing infinite scrolling with loyalty programs data\n// */\n// export function useListLoyaltyProgramsInfiniteQuery(\n// \trequest: LoyaltyProgramListRequest,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useInfiniteQuery<\n// \t\tSBList<SBLoyaltyProgramResponse>,\n// \t\tSBApiException,\n// \t\tSBList<SBLoyaltyProgramResponse>,\n// \t\tQueryKey,\n// \t\tnumber\n// \t>({\n// \t\tinitialPageParam: request.page || 1,\n// \t\tqueryKey: [\"loyaltyPrograms\", request, options],\n// \t\tqueryFn: async ({ pageParam = 1 }) => {\n// \t\t\tconst paginatedRequest = { ...request, page: pageParam };\n// \t\t\treturn client.loyaltyPrograms.listAsync(\n// \t\t\t\tpaginatedRequest,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tgetNextPageParam: (lastPage) => {\n// \t\t\tif (\n// \t\t\t\tlastPage.pagination &&\n// \t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n// \t\t\t) {\n// \t\t\t\treturn lastPage.pagination.currentPage + 1;\n// \t\t\t}\n// \t\t\treturn undefined;\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a new loyalty program\n// * @returns Mutation function and state for creating loyalty programs\n// */\n// export function useCreateLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createAsync(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for updating a loyalty program\n// * @returns Mutation function and state for updating loyalty programs\n// */\n// export function useUpdateLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\tdata: LoyaltyProgramUpdateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.updateAsync(\n// \t\t\t\tprogramId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgram\", variables.programId],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for deleting a loyalty program\n// * @returns Mutation function and state for deleting loyalty programs\n// */\n// export function useDeleteLoyaltyProgramMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.deleteAsync(programId, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for retrieving a loyalty program account\n// * @param programId - The ID of the loyalty program\n// * @param accountId - The ID of the account to retrieve\n// * @returns Query result containing the loyalty account data, loading state, and error information\n// */\n// export function useGetLoyaltyProgramAccountQuery(\n// \tprogramId: number,\n// \taccountId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyProgramAccount\", programId, accountId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\taccountId,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for listing loyalty program accounts with infinite pagination\n// * @param programId - The ID of the loyalty program\n// * @param request - Request parameters for listing accounts\n// * @returns Infinite query result for implementing infinite scrolling with loyalty accounts data\n// */\n// export function useListLoyaltyProgramAccountsInfiniteQuery(\n// \tprogramId: number,\n// \trequest: LoyaltyProgramListRequest,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useInfiniteQuery<\n// \t\tSBList<SBLoyaltyProgramAccountResponse>,\n// \t\tSBApiException,\n// \t\tSBList<SBLoyaltyProgramAccountResponse>,\n// \t\tQueryKey,\n// \t\tnumber\n// \t>({\n// \t\tinitialPageParam: request.page || 1,\n// \t\tqueryKey: [\"loyaltyProgramAccounts\", programId, request, options],\n// \t\tqueryFn: async ({ pageParam = 1 }) => {\n// \t\t\tconst paginatedRequest = { ...request, page: pageParam };\n// \t\t\treturn client.loyaltyPrograms.listAccounts(\n// \t\t\t\tprogramId,\n// \t\t\t\tpaginatedRequest,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tgetNextPageParam: (lastPage) => {\n// \t\t\tif (\n// \t\t\t\tlastPage.pagination &&\n// \t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n// \t\t\t) {\n// \t\t\t\treturn lastPage.pagination.currentPage + 1;\n// \t\t\t}\n// \t\t\treturn undefined;\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a loyalty program account\n// * @returns Mutation function and state for creating loyalty accounts\n// */\n// export function useCreateLoyaltyProgramAccountMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\tdata: LoyaltyAccountCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\", variables.programId],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for deleting a loyalty program account\n// * @returns Mutation function and state for deleting loyalty accounts\n// */\n// export function useDeleteLoyaltyProgramAccountMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tprogramId,\n// \t\t\taccountId,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tprogramId: number;\n// \t\t\taccountId: number;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.deleteAccount(\n// \t\t\t\tprogramId,\n// \t\t\t\taccountId,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: (_, variables) => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\", variables.programId],\n// \t\t\t});\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\n// \t\t\t\t\t\"loyaltyProgramAccount\",\n// \t\t\t\t\tvariables.programId,\n// \t\t\t\t\tvariables.accountId,\n// \t\t\t\t],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for accumulating points in a loyalty program\n// * @returns Mutation function and state for accumulating loyalty points\n// */\n// export function useAccumulateLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAccumulateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.accumulatePoints(\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for adjusting points in a loyalty program\n// * @returns Mutation function and state for adjusting loyalty points\n// */\n// export function useAdjustLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAdjustRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.adjustPoints(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for issuing points in a loyalty program\n// * @returns Mutation function and state for issuing loyalty points\n// */\n// export function useIssueLoyaltyPointsMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyProgramPointsAccumulateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.issuePoints(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for creating a loyalty reward\n// * @returns Mutation function and state for creating loyalty rewards\n// */\n// export function useCreateLoyaltyRewardMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\tdata: LoyaltyRewardCreateRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.createReward(data, options, config);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({ queryKey: [\"loyaltyPrograms\"] });\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for retrieving a loyalty reward\n// * @param rewardId - The ID of the reward to retrieve\n// * @returns Query result containing the loyalty reward data, loading state, and error information\n// */\n// export function useGetLoyaltyRewardQuery(\n// \trewardId: number,\n// \toptions?: SBRequestOptions,\n// \tconfig?: AxiosRequestConfig,\n// ) {\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n// \treturn useQuery({\n// \t\tqueryKey: [\"loyaltyReward\", rewardId],\n// \t\tqueryFn: async () => {\n// \t\t\treturn client.loyaltyPrograms.getReward(rewardId, options, config);\n// \t\t},\n// \t});\n// }\n\n// /**\n// * Hook for redeeming a loyalty reward\n// * @returns Mutation function and state for redeeming loyalty rewards\n// */\n// export function useRedeemLoyaltyRewardMutation() {\n// // \tconst queryClient = useQueryClient();\n// \tconst client = useApiClient();\n// const queryClient = useQueryClient();\n\n// \treturn useMutation({\n// \t\tmutationFn: async ({\n// \t\t\trewardId,\n// \t\t\tdata,\n// \t\t\toptions,\n// \t\t\tconfig,\n// \t\t}: {\n// \t\t\trewardId: number;\n// \t\t\tdata: LoyaltyRewardRedeemRequest;\n// \t\t\toptions?: SBRequestOptions;\n// \t\t\tconfig?: AxiosRequestConfig;\n// \t\t}) => {\n// \t\t\treturn client.loyaltyPrograms.redeemReward(\n// \t\t\t\trewardId,\n// \t\t\t\tdata,\n// \t\t\t\toptions,\n// \t\t\t\tconfig,\n// \t\t\t);\n// \t\t},\n// \t\tonSuccess: () => {\n// \t\t\tqueryClient.invalidateQueries({\n// \t\t\t\tqueryKey: [\"loyaltyProgramAccounts\"],\n// \t\t\t});\n// \t\t},\n// \t});\n// }\n\nexport const loyalty = \"\";\n","import {\n\tCustomerListRequest,\n\tSBCustomer,\n\tCustomerCreateRequest,\n\tCustomerUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list customers with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated customers\n */\nexport function useListCustomersInfiniteQuery(\n\trequest: CustomerListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomer>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBCustomer>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customers.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a customer by ID\n * @param id - The customer ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer data\n */\nexport const useGetCustomerByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useQuery<SBCustomer, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\n/**\n * Hook to create a new customer\n * @returns Mutation function to create a customer\n */\nexport const useCreateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: CustomerCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer\n * @returns Mutation function for updating customers\n */\nexport const useUpdateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: CustomerUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to delete a customer\n * @returns Mutation function for deleting customers\n */\nexport const useDeleteCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.customers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tCustomerPaymentMethodListRequest,\n\tSBPaymentMethod,\n\tSBRequestOptions,\n\tSBList,\n\tCustomerPaymentMethodCreateRequest,\n\tCustomerPaymentMethodUpdateRequest,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list a customer's payment methods with infinite query\n * @param customerId - The customer ID\n * @param request - Request parameters for listing payment methods\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the customer's payment methods\n */\nexport const useListCustomerPaymentMethodsInfiniteQuery = (\n\tcustomerId: number,\n\trequest: CustomerPaymentMethodListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer payment method operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBPaymentMethod>,\n\t\tSBApiException,\n\t\tSBList<SBPaymentMethod>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customerPaymentMethods.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to get a specific payment method for a customer\n * @param customerId - The customer ID\n * @param id - The payment method ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the payment method\n */\nexport const useGetCustomerPaymentMethodByIdQuery = (\n\tcustomerId: number,\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer payment method operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBPaymentMethod, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customerPaymentMethods.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to create a customer payment method\n * @returns Mutation function and state for creating payment methods\n */\nexport const useCreateCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tdata: CustomerPaymentMethodCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer payment method\n * @returns Mutation function and state for updating payment methods\n */\nexport const useUpdateCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tid: number;\n\t\t\tdata: CustomerPaymentMethodUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, id, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId, id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook to delete a customer payment method\n * @returns Mutation function and state for deleting payment methods\n */\nexport const useDeleteCustomerPaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tcustomerId: number;\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ customerId, id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for customer payment method operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customerPaymentMethods.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { customerId, id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Customers,\n\t\t\t\t\t\tcustomerId,\n\t\t\t\t\t\tSBApiKeys.CustomerPaymentMethods,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tCustomerBalanceTransactionListRequest,\n\tSBCustomerBalanceTransaction,\n\tSBApiException,\n} from \"@smartbills/sdk\";\n\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list balance transactions for a customer with infinite scrolling\n * @param customerId - The customer ID\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transactions\n */\nexport const useListCustomerBalanceTransactionsInfiniteQuery = (\n\tcustomerId: number,\n\trequest: CustomerBalanceTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerBalanceTransactionListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomerBalanceTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBCustomerBalanceTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!customerId,\n\t});\n};\n\n/**\n * Hook to get a specific balance transaction for a customer\n * @param customerId - The customer ID\n * @param transactionId - The balance transaction ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transaction\n */\nexport const useGetCustomerBalanceTransactionByIdQuery = (\n\tcustomerId: number,\n\ttransactionId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBCustomerBalanceTransaction, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\ttransactionId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\ttransactionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!customerId && !!transactionId,\n\t});\n};\n","import {\n\tSBList,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBTax,\n\tTaxCreateRequest,\n\tTaxListRequest,\n\tTaxUpdateRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListTaxesInfiniteQuery = (\n\trequest: TaxListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBTax>,\n\t\tSBApiException,\n\t\tSBList<SBTax>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.taxes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useGetTaxByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useQuery<SBTax, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.taxes.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: TaxCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: TaxUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeleteTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\tawait client.businesses.taxes.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tProductListRequest,\n\tProductCreateRequest,\n\tProductUpdateRequest,\n\tSBProduct,\n\tSBRequestOptions,\n\tSBApiException,\n\tBatchUpsertRequest,\n\tProductUpsertRequest,\n\tSBBatch,\n\tSBProductImage,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context/ApiContext\";\n\n/**\n * Hook to list products with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated products\n */\nexport function useListProductsInfiniteQuery(\n\trequest: ProductListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ProductListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProduct>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBProduct>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.products.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a product by ID\n * @param id - The product ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the product data\n */\nexport function useGetProductByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProduct, Error>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id],\n\t\tqueryFn: async () => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new product\n * @returns Mutation function to create a product\n */\nexport function useCreateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBProduct, SBApiException, ProductCreateRequest>({\n\t\tmutationKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products],\n\t\tmutationFn: async (request: ProductCreateRequest) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product\n * @returns Mutation function for deleting products\n */\nexport function useDeleteProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update a product\n * @returns Mutation function for updating products\n */\nexport function useUpdateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: ProductUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to batch upsert products\n * @returns Mutation function for batch upsert operations\n */\nexport function useBatchUpsertProductsMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBatch<SBProduct>,\n\t\tError,\n\t\t{\n\t\t\trequests: BatchUpsertRequest<ProductUpsertRequest>;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<\n\t\t\t\tBatchUpsertRequest<ProductUpsertRequest>\n\t\t\t>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ requests, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.batch(\n\t\t\t\tbusinessId,\n\t\t\t\trequests,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBProductVariant,\n\tProductVariantCreateRequest,\n\tProductVariantUpdateRequest,\n\tSBList,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product variants for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product variants data\n */\nexport function useListProductVariantsInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product variant operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductVariant>,\n\t\tSBApiException,\n\t\tSBList<SBProductVariant>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productVariants.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product variant by ID\n * @param productId - The ID of the product\n * @param variantId - The ID of the product variant to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product variant data\n */\nexport function useGetProductVariantByIdQuery(\n\tproductId: number,\n\tvariantId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProductVariant, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\tvariantId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId && !!variantId,\n\t});\n}\n\n/**\n * Hook to create a new product variant\n * @returns A mutation function to create a product variant\n */\nexport function useCreateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tdata: ProductVariantCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product variant\n * @returns A mutation function to update a product variant\n */\nexport function useUpdateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\tdata: ProductVariantUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product variant\n * @returns A mutation function to delete a product variant\n */\nexport function useDeleteProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tProductModifierCreateRequest,\n\tProductModifierUpdateRequest,\n\tSBApiException,\n\tSBList,\n\tSBProductModifier,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of modifiers for a specific business and product with infinite scrolling\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated modifiers data\n */\nexport function useListProductModifiersInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductModifier>,\n\t\tSBApiException,\n\t\tSBList<SBProductModifier>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productModifiers.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to fetch a specific modifier by ID for a business and product\n * @param productId - The ID of the product\n * @param modifierId - The ID of the modifier to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the modifier data\n */\nexport function useGetProductModifierByIdQuery(\n\tproductId: number,\n\tmodifierId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBProductModifier, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tmodifierId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productModifiers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to create a new modifier for a product\n * @returns A mutation function to create a modifier\n */\nexport function useCreateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ProductModifierCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing modifier for a product\n * @returns A mutation function to update a modifier\n */\nexport function useUpdateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\tdata: ProductModifierUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a modifier for a product\n * @returns A mutation function to delete a modifier\n */\nexport function useDeleteProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductOption,\n\tProductOptionCreateRequest,\n\tProductOptionUpdateRequest,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product options for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product options data\n */\nexport function useListProductOptionsInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product option operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductOption>,\n\t\tSBApiException,\n\t\tSBList<SBProductOption>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, request],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productOptions.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product option by ID\n * @param productId - The ID of the product\n * @param optionId - The ID of the product option to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product option data\n */\nexport function useGetProductOptionByIdQuery(\n\tproductId: number,\n\toptionId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product option operations\");\n\t}\n\n\treturn useQuery<SBProductOption, SBApiException>({\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productOptions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!optionId,\n\t});\n}\n\n/**\n * Hook to create a new product option\n * @returns A mutation function to create a product option\n */\nexport function useCreateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: Omit<SBProductOption, \"id\" | \"createdAt\" | \"updatedAt\">;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product option\n * @returns A mutation function to update a product option\n */\nexport function useUpdateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\trequest: Partial<SBProductOption>;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({\n\t\t\tproductId,\n\t\t\toptionId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product option\n * @returns A mutation function to delete a product option\n */\nexport function useDeleteProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, optionId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductImage,\n\tProductImageCreateRequest,\n\tProductImageUpdateRequest,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product images for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product images data\n */\nexport function useListProductImagesInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductImage>,\n\t\tSBApiException,\n\t\tSBList<SBProductImage>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a list of product images for a specific product\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated product images data\n */\nexport function useListProductImagesQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product image by ID\n * @param productId - The ID of the product\n * @param imageId - The ID of the product image to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product image data\n */\nexport function useGetProductImageByIdQuery(\n\tproductId: number,\n\timageId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery<SBProductImage, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\timageId,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productImages.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!imageId,\n\t});\n}\n\n/**\n * Hook to create a new product image\n * @returns A mutation function to create a product image\n */\nexport function useCreateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: ProductImageCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, request, options, config }) => {\n\t\t\treturn await client.businesses.productImages.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product image\n * @returns A mutation function to update a product image\n */\nexport function useUpdateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\trequest: ProductImageUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({\n\t\t\tproductId,\n\t\t\timageId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\treturn await client.businesses.productImages.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product image\n * @returns A mutation function to delete a product image\n */\nexport function useDeleteProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, imageId, options, config }) => {\n\t\t\treturn await client.businesses.productImages.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tBusinessReviewCreateRequest,\n\tBusinessReviewUpdateRequest,\n\tSBBusinessReview,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport {\n\tInfiniteData,\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing reviews with infinite pagination\n * @param request - Request parameters for listing reviews\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with reviews data\n */\nexport const useListReviewsInfiniteQuery = (\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusinessReview>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusinessReview>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.BusinessReviews,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.reviews.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for retrieving a review by ID\n * @param id - The ID of the review to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the review data\n */\nexport const useGetReviewByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBBusinessReview, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.BusinessReviews,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.reviews.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t});\n};\n\n/**\n * Hook for creating a new review\n * @returns Mutation function for creating reviews\n */\nexport const useCreateReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBBusinessReview,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: BusinessReviewCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessReviewCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.businesses.reviews.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing review\n * @returns Mutation function for updating reviews\n */\nexport const useUpdateReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBBusinessReview,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\tdata: BusinessReviewUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessReviewUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, data, options, config }) => {\n\t\t\treturn await client.businesses.reviews.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a review\n * @returns Mutation function for deleting reviews\n */\nexport const useDeleteReviewMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.businesses.reviews.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.removeQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.BusinessReviews,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tLocationsListRequest,\n\tLocationCreateRequest,\n\tLocationUpdateRequest,\n\tSBLocation,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\nexport function useListLocationsInfiniteQuery(\n\trequest: LocationsListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<LocationsListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBLocation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBLocation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.locations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\nexport const useGetLocationByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useQuery<SBLocation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.locations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: LocationCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useUpdateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: LocationUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.locations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tPromoCodeCreateRequest,\n\tPromoCodeListRequest,\n\tPromoCodeUpdateRequest,\n\tSBPromoCode,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"../../SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\nexport const useListPromoCodes = (\n\trequest: PromoCodeListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<PromoCodeListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for promo code operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBPromoCode>,\n\t\tSBApiException,\n\t\tSBList<SBPromoCode>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.PromoCodes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.promoCodes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useGetPromoCodeById = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for promo code operations\");\n\t}\n\n\treturn useQuery<SBPromoCode, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.PromoCodes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.promoCodes.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreatePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPromoCode,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: PromoCodeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PromoCodeCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.promoCodes.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdatePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBPromoCode,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: PromoCodeUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PromoCodeUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.promoCodes.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeletePromoCodeMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for promo code operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.promoCodes.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.PromoCodes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n","import {\n\tFeeCreateRequest,\n\tFeeListRequest,\n\tFeeUpdateRequest,\n\tSBApiException,\n\tSBFee,\n\tSBList,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list fees with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing paginated fee data\n */\nexport function useListFeesInfiniteQuery(\n\trequest: FeeListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FeeListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for fee operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBFee>,\n\t\tSBApiException,\n\t\tSBList<SBFee>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Fees,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.fees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a fee by ID\n * @param feeId - The ID of the fee to retrieve\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the fee data\n */\nexport function useGetFeeByIdQuery(\n\tfeeId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for fee operations\");\n\t}\n\n\treturn useQuery<SBFee, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Fees,\n\t\t\tfeeId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.fees.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to create a new fee\n * @returns Mutation function for creating fees\n */\nexport function useCreateFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: FeeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<FeeCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing fee\n * @returns Mutation function for updating fees\n */\nexport function useUpdateFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tfeeId: number;\n\t\t\tdata: FeeUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<FeeUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ feeId, data, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { feeId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t\tfeeId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a fee\n * @returns Mutation function for deleting fees\n */\nexport function useDeleteFeeMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBFee,\n\t\tSBApiException,\n\t\t{\n\t\t\tfeeId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ feeId, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for fee operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.fees.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tfeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { feeId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Fees,\n\t\t\t\t\t\tfeeId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBVendor,\n\tVendorListRequest,\n\tVendorCreateRequest,\n\tVendorUpdateRequest,\n\tVendorConnectRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { InfiniteData, useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing vendors with infinite pagination\n * @param request - Request parameters for listing vendors\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with vendor data\n */\nexport function useListBusinessVendorsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBVendor>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBVendor>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Vendors,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.businesses.vendors.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest as VendorListRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a vendor by ID\n * @param id - The ID of the vendor to retrieve\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the vendor data, loading state, and error information\n */\nexport function useGetBusinessVendorByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Vendors,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.vendors.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook for deleting a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for deleting vendors\n */\nexport function useDeleteBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for creating a new vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for creating vendors\n */\nexport function useCreateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for updating a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for updating vendors\n */\nexport function useUpdateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\trequest: VendorUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\trequest: VendorUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for getting a vendor link token for Deck connection\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for getting a vendor link token\n */\nexport function useGetBusinessVendorLinkTokenMutation(\n\tmutationOptions?: UseMutationOptions<\n\t\tany, // Replace with the actual return type\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\treturn client.businesses.vendors.getLinkToken(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\t// Spread all mutation options\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook for connecting a vendor to Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for connecting vendors\n */\nexport function useConnectBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorConnectRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorConnectRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.connectAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for manually refreshing a vendor's data from Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for refreshing vendors\n */\nexport function useRefreshBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tvoid,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.manualRefresh(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n","import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberInvitationListRequest,\n\tTeamMemberInvitationRequest,\n\tTeamMemberInvitationResponseRequest,\n\tSBApiException,\n\tSBList,\n\tSBTeamMemberInvitation,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { QueryKey, useMutation, useQuery } from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useInfiniteQuery, InfiniteData } from \"@tanstack/react-query\";\n\ninterface TeamMemberInvitationRequestMutation {\n\trequest: TeamMemberInvitationRequest;\n}\n\nexport const useInviteMemberToBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRequestMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRequestMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCancelMutation {\n\tinvitationId: number;\n}\n\nexport const useCancelTeamMemberInvitation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCancelMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t}: TeamMemberInvitationCancelMutation) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationAcceptMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationResponseRequest>;\n}\n\ninterface TeamMemberInvitationRefuseMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n}\n\ninterface GetTeamMemberInvitationQuery {\n\tinvitationId: number;\n}\n\nexport const useGetTeamMemberInvitationById = ({\n\tinvitationId,\n}: GetTeamMemberInvitationQuery) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMemberInvitation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\tinvitationId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.teamMembers.invitations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCreateMutation {\n\trequest: TeamMemberInvitationRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationRequest>;\n}\n\n/**\n * Hook for creating an business invitation\n * @returns Mutation function for creating business invitations\n */\nexport const useCreateTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCreateMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: TeamMemberInvitationCreateMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for accepting an business invitation\n * @returns Mutation function for accepting business invitations\n */\nexport const useAcceptTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationAcceptMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationAcceptMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for refusing an business invitation\n * @returns Mutation function for refusing business invitations\n */\nexport const useRefuseTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRefuseMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRefuseMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing business invitations with infinite pagination\n * @param businessId - The ID of the business\n * @param request - Request parameters for listing invitations\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business invitations data\n */\nexport function useListTeamMemberInvitationsInfiniteQuery(\n\tbusinessId: number,\n\trequest: TeamMemberInvitationListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationListRequest>,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMemberInvitation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMemberInvitation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n","import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberListRequest,\n\tSBApiException,\n\tSBTeamMember,\n\tSBTeamMemberRole,\n\tSBRequestOptions,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\nexport const useChangeTeamMemberRoleMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteTeamMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListTeamMembersInfiniteQuery(\n\trequest: TeamMemberListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMember>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMember>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMembers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listMembers(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t});\n}\n\nexport const useGetTeamMemberByIdQuery = (id: number) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMember, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getMemberById(businessId, id),\n\t});\n};\n","import {\n\tBusinessCreateRequest,\n\tBusinessListRequest,\n\tSBBusiness,\n\tBusinessUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n\tBusinessInvitationRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing business with infinite pagination\n * @param request - Request parameters for listing business\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business data\n */\nexport function useListBusinessInfiniteQuery(\n\trequest: BusinessListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BusinessListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusiness>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusiness>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Businesses, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for retrieving a business by ID\n * @param id - The ID of the business to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the business data\n */\nexport const useGetBusinessByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useQuery<SBBusiness, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getByIdAsync(id, options, config),\n\t\t// If we're requesting the current business, only enable when businessId is set\n\t\tenabled: id === currentBusinessId ? !!currentBusinessId : true,\n\t});\n};\n\n/**\n * Hook for creating a new business\n * @returns Mutation function for creating business\n */\nexport const useCreateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: BusinessCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.createAsync(\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing business\n * @returns Mutation function for updating business\n */\nexport const useUpdateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\trequest: BusinessUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, request, options, config }) => {\n\t\t\treturn await client.businesses.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\n\t\t\t// If updating the current business, invalidate any queries that depend on it\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a business\n * @returns Mutation function for deleting business\n */\nexport const useDeleteBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, options, config }) => {\n\t\t\treturn await client.businesses.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\n\t\t\t// If deleting the current business, invalidate all queries\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for batch inviting members to a business\n */\nexport const useBatchInviteMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\tinvitations: BusinessInvitationRequest[];\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, invitations, options, config }) => {\n\t\t\treturn await client.businesses.batchInviteMemberAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitations,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, \"members\"],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBEntity,\n\tITimestamp,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * NOTE: This API implementation assumes that the SDK has a departments service\n * which may still need to be implemented in the SDK. The implementation follows\n * the same pattern as the EmployeesAPI but requires the BusinessService to have\n * a departments property.\n */\n\n// Define Department interface based on SBEntity\ninterface SBDepartment extends SBEntity, ITimestamp {\n\tname: string;\n\tdescription?: string;\n\tbusinessId: number;\n}\n\n// Define request types\ninterface DepartmentCreateRequest {\n\tname: string;\n\tdescription?: string;\n}\n\ninterface DepartmentUpdateRequest {\n\tname?: string;\n\tdescription?: string;\n}\n\n/**\n * Hook to fetch a list of departments using infinite query\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated departments data\n */\nexport function useListDepartmentsInfiniteQuery(\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for department operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDepartment>,\n\t\tSBApiException,\n\t\tSBList<SBDepartment>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn await client.businesses.departments.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to fetch a list of departments\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated departments data\n */\nexport function useListDepartmentsQuery(\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.departments.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a specific department by ID\n * @param departmentId - The ID of the department to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the department data\n */\nexport function useGetDepartmentByIdQuery(\n\tdepartmentId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBDepartment, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.departments.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t});\n}\n\n/**\n * Hook to create a new department\n * @returns A mutation function to create a department\n */\nexport function useCreateDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: DepartmentCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.departments.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing department\n * @returns A mutation function to update a department\n */\nexport function useUpdateDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\trequest: DepartmentUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, request, options, config }) => {\n\t\t\treturn await client.businesses.departments.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a department\n * @returns A mutation function to delete a department\n */\nexport function useDeleteDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartment,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, options, config }) => {\n\t\t\treturn await client.businesses.departments.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBDepartmentTeamMember,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { DepartmentEmployeeCreateRequest } from \"@smartbills/sdk/dist/@types/services/businesses/departments/Employees/DepartmentEmployeeCreateRequest\";\n\n/**\n * NOTE: This API implementation assumes that the SDK has a departments service\n * which may still need to be implemented in the SDK. The implementation follows\n * the same pattern as the EmployeesAPI but requires the BusinessService to have\n * a departments property with an employees subproperty.\n */\n\n/**\n * Hook to fetch a list of employees in a department using infinite query\n * @param departmentId - The ID of the department\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated department employees data\n */\nexport function useListDepartmentEmployeesInfiniteQuery(\n\tdepartmentId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for department employee operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDepartmentTeamMember>,\n\t\tSBApiException,\n\t\tSBList<SBDepartmentTeamMember>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t\tSBApiKeys.Employees,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn await client.businesses.departments.employees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId && !!departmentId,\n\t});\n}\n\n/**\n * Hook to fetch a list of employees in a department\n * @param departmentId - The ID of the department\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated department employees data\n */\nexport function useListDepartmentEmployeesQuery(\n\tdepartmentId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Departments,\n\t\t\tdepartmentId,\n\t\t\tSBApiKeys.Employees,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.departments.employees.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!departmentId,\n\t});\n}\n\n/**\n * Hook to add an employee to a department\n * @returns A mutation function to add an employee to a department\n */\nexport function useAddEmployeeToDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartmentTeamMember,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\trequest: DepartmentEmployeeCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, request, options, config }) => {\n\t\t\treturn await client.businesses.departments.employees.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to remove an employee from a department\n * @returns A mutation function to remove an employee from a department\n */\nexport function useRemoveEmployeeFromDepartmentMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBDepartmentTeamMember,\n\t\tSBApiException,\n\t\t{\n\t\t\tdepartmentId: number;\n\t\t\temployeeId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ departmentId, employeeId, options, config }) => {\n\t\t\treturn await client.businesses.departments.employees.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdepartmentId,\n\t\t\t\temployeeId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { departmentId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Departments,\n\t\t\t\t\tdepartmentId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Employees,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBTable,\n\tTableCreateRequest,\n\tTableUpdateRequest,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient, useBusinessId } from \"@/context\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useTablesQuery() {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTable[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.tables.getAllAsync(businessId);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\nexport function useTableByIdQuery(tableId: number) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTable, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Tables, businessId, tableId],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.tables.getByIdAsync(businessId, tableId);\n\t\t},\n\t\tenabled: !!businessId && !!tableId,\n\t});\n}\n\nexport function useCreateTableMutation() {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBTable,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: TableCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.tables.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\t\t});\n\t\t},\n\t});\n}\n\nexport function useUpdateTableMutation(tableId: number) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBTable,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: TableUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.tables.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\ttableId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Tables, businessId, tableId],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBInvoice,\n\tSBList,\n\tInvoiceUpdateRequest,\n\tInvoiceCreateRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Type for invoice list request\n */\nexport interface InvoiceListRequest {\n\t/** Page number (0-indexed) */\n\tpage?: number;\n\t/** Number of items per page */\n\tpageSize?: number;\n\t/** Search term for filtering invoices */\n\tsearch?: string;\n}\n\n/**\n * Hook to fetch a list of invoices using infinite query\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated invoices data\n */\nexport function useListInvoicesInfiniteQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBInvoice>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBInvoice>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 0,\n\t\tqueryKey: [SBApiKeys.Invoices, request, options],\n\t\tqueryFn: async ({ pageParam = 0 }) => {\n\t\t\treturn await client.invoices.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage <\n\t\t\t\tlastPage.pagination.pageCount - 1\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a list of invoices\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated invoices data\n */\nexport function useListInvoicesQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBList<SBInvoice>, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, request],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.listAsync(request, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a specific invoice by ID\n * @param invoiceId - The ID of the invoice to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the invoice data\n */\nexport function useGetInvoiceByIdQuery(\n\tinvoiceId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBInvoice, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, invoiceId, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.getByIdAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for creating an invoice\n */\nexport function useCreateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tdata: InvoiceCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: InvoiceCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.invoices.createAsync(data, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to update an existing invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for updating an invoice\n */\nexport function useUpdateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\tdata: InvoiceUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\tdata: InvoiceUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, data, options, config }) => {\n\t\t\treturn await client.invoices.updateAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices, variables.invoiceId],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to delete an invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for deleting an invoice\n */\nexport function useDeleteInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, options, config }) => {\n\t\t\treturn await client.invoices.deleteAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n","import {\n\tuseQuery,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport {\n\tSBList,\n\tSBNotification,\n\tSBRequestOptions,\n\tSBApiException,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\n\n/**\n * Hook for retrieving a notification by ID\n * @param id - The ID of the notification to retrieve\n * @param options - Optional request options including businessId, businessId, and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the notification data, loading state, and error information\n */\nexport function useGetNotificationByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBNotification, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Notifications, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.notifications.getByIdAsync(id, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for listing notifications with infinite pagination\n * @param options - Optional request options including businessId, businessId, and userId\n * @param limit - Number of items per page\n * @returns Infinite query result for implementing infinite scrolling with notification data\n */\nexport function useListNotificationsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBNotification>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBNotification>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Notifications, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.notifications.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\n/**\n * Hook for marking notifications as read\n * @returns Mutation function and state for marking notifications as read\n */\nexport function useMarkNotificationsReadMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.notifications.markAsRead(id, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Notifications],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook for marking all notifications as read\n * @returns Mutation function and state for marking all notifications as read\n */\nexport function useMarkAllNotificationsReadMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ options, config }) => {\n\t\t\tawait client.notifications.markAllAsRead(options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Notifications],\n\t\t\t});\n\t\t},\n\t});\n}\n","import {\n\tPaymentMethodCreateRequest,\n\tPaymentMethodListRequest,\n\tSBPaymentMethodSetup,\n\tSBApiException,\n\tSBPaymentMethod,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseQuery,\n\tuseQueryClient,\n\tuseInfiniteQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useCreatePaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: PaymentMethodCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<PaymentMethodCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.paymentMethods.createAsync(\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useGetPaymentMethods = (\n\trequest: PaymentMethodListRequest,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBPaymentMethod[], SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, request, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.getAsync(\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n};\n\nexport const useGetPaymentMethodById = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\treturn useQuery<SBPaymentMethod, SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.getByIdAsync(\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n};\n\nexport const useDeletePaymentMethodMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\treturn await client.paymentMethods.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods, id],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useSetupPaymentMethod = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBPaymentMethodSetup, SBApiException>({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, \"setup\"],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.paymentMethods.setup();\n\t\t},\n\t});\n};\n\nexport const useCreatePaymentMethodFromSetupIntentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBPaymentMethod,\n\t\tSBApiException,\n\t\t{\n\t\t\tsetupIntentId: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ setupIntentId, options, config }) => {\n\t\t\treturn await client.paymentMethods.createFromSetupIntentAsync(\n\t\t\t\tsetupIntentId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.PaymentMethods],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useListPaymentMethodsInfiniteQuery = (\n\tpage: number = 1,\n\tpageSize: number = 10,\n) => {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.PaymentMethods, \"infinite\", page, pageSize],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: PaymentMethodListRequest = {\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.paymentMethods.getAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage, allPages) => {\n\t\t\t// Assuming the API returns pagination info similar to other services\n\t\t\tif (\n\t\t\t\tlastPage &&\n\t\t\t\tArray.isArray(lastPage) &&\n\t\t\t\tlastPage.length === pageSize\n\t\t\t) {\n\t\t\t\treturn allPages.length + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n};\n","import {\n\tSBList,\n\tReceiptListRequest,\n\tSBApiException,\n\tSBReceipt,\n\tSBRequestOptions,\n\tReceiptCreateRequest,\n\tReceiptUpdateRequest,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for retrieving a receipt by ID\n * @param id - The ID of the receipt to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the receipt data\n */\nexport const useGetReceiptByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBReceipt, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Receipts, id, options],\n\t\tqueryFn: async () => {\n\t\t\ttry {\n\t\t\t\treturn await client.receipts.getByIdAsync(id, options, config);\n\t\t\t} catch (exception) {\n\t\t\t\tthrow exception;\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing receipts with infinite pagination\n * @param request - Request parameters for listing receipts\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with receipt data\n */\nexport const useListReceiptsInfiniteQuery = (\n\trequest: ReceiptListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ReceiptListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBReceipt>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBReceipt>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Receipts, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\ttry {\n\t\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\t\treturn await client.receipts.listAsync(\n\t\t\t\t\tpaginatedRequest,\n\t\t\t\t\toptions,\n\t\t\t\t\tconfig,\n\t\t\t\t);\n\t\t\t} catch (exception) {\n\t\t\t\tthrow exception;\n\t\t\t}\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\nexport const useCreateReceiptMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBReceipt,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: ReceiptCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.receipts.createAsync(request, options, config);\n\t\t},\n\t\tonSuccess: (_, { request }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useCreateUpdateMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBReceipt,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: ReceiptUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\treturn await client.receipts.updateAsync(\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { request }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteReceiptMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tawait client.receipts.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Receipts, id],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tSBList,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBVendor,\n\tVendorCreateRequest,\n\tVendorUpdateRequest,\n\tVendorConnectRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { InfiniteData, useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useListVendorsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBVendor>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBVendor>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Vendors, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn client.vendors.listAsync(paginatedRequest, options, config);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination &&\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n\nexport function useGetVendorByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery({\n\t\tqueryKey: [SBApiKeys.Vendors, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.vendors.getByIdAsync(id, options, config);\n\t\t},\n\t});\n}\n\nexport function useDeleteVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.deleteAsync(vendorId, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useCreateVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.createAsync(request, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useUpdateVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\trequest: VendorUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\trequest: VendorUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.updateAsync(\n\t\t\t\tvendorId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors, variables.vendorId],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useGetVendorLinkTokenMutation(\n\tmutationOptions?: UseMutationOptions<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>,\n) {\n\tconst client = useApiClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\treturn client.vendors.getLinkToken(options, config);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\nexport function useConnectVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorConnectRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorConnectRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.connectAsync(request, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook for retrieving a Deck connection by ID\n * @param id - The ID of the connection to retrieve\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the connection data, loading state, and error information\n */\nexport function useGetDeckConnectionByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery({\n\t\tqueryKey: [SBApiKeys.Vendors, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.vendors.getConnectionByIdAsync(id, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for disconnecting from a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for disconnecting from a vendor\n */\nexport function useDisconnectFromVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.disconnectAsync(vendorId, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\nexport function useRefreshVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tvoid,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.vendors.manualRefresh(vendorId, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Vendors, variables.vendorId],\n\t\t\t});\n\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n","import {\n\tuseQuery,\n\tuseMutation,\n\tuseInfiniteQuery,\n\tQueryKey,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport {\n\tSBRequestOptions,\n\tSBUserAccount,\n\tSearchUsersRequest,\n\tSBApiException,\n\tSBList,\n\tSBBusiness,\n\tSBUser,\n\tUserUpdateRequest,\n} from \"@smartbills/sdk\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useApiClient } from \"@/context\";\n\n/**\n * Hook for retrieving the current user's profile\n * @param options - Optional request options including UserId, businessId, and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the user data, loading state, and error information\n */\nexport function useGetCurrentUser(\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBUserAccount, SBApiException>({\n\t\tqueryKey: [SBApiKeys.User, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.getCurrentUser(options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for Searching Users with infinite pagination\n * @param request - Request parameters for Searching Users\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with User data\n */\nexport const useSearchUsersInfiniteQuery = (\n\trequest: SearchUsersRequest = { page: 1, pageSize: 25, query: \"\" },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<SearchUsersRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBUserAccount>,\n\t\tSBApiException,\n\t\tSBList<SBUserAccount>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Users, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.users.listAsync(\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n};\n\n/**\n * Hook for getting user profile\n */\nexport function useGetUserProfile(\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery<any, SBApiException>({\n\t\tqueryKey: [SBApiKeys.User, \"profile\", options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.getUserProfile(options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook for updating user profile\n */\nexport function useUpdateUserProfileMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: UserUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn client.user.updateUserProfile(data, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.User] });\n\t\t},\n\t});\n}\n\n/**\n * Hook for uploading user avatar\n */\nexport function useUploadUserAvatarMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tfile: File;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ file, options, config }) => {\n\t\t\treturn client.user.uploadAvatarAsync(file, options, config);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.User] });\n\t\t},\n\t});\n}\n\n/**\n * Hook for searching items\n */\nexport function useSearchQuery(\n\tquery: string,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\treturn useQuery<any, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Search, query, options],\n\t\tqueryFn: async () => {\n\t\t\treturn client.user.searchAsync(query, options, config);\n\t\t},\n\t\tenabled: !!query,\n\t});\n}\n","import {\n\tIntegrationListRequest,\n\tSBIntegration,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListIntegrationsInfiniteQuery = (\n\tbusinessId: string | number,\n\tpage: number = 1,\n\tpageSize: number = 10,\n) => {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Integrations, businessId, page, pageSize],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: IntegrationListRequest = {\n\t\t\t\tbusinessId,\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.integrations.getAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage, allPages) => {\n\t\t\t// Assuming the API returns pagination info\n\t\t\tif (\n\t\t\t\tlastPage &&\n\t\t\t\tArray.isArray(lastPage) &&\n\t\t\t\tlastPage.length === pageSize\n\t\t\t) {\n\t\t\t\treturn allPages.length + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n};\n\nexport const useInstallIntegrationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: string | number;\n\t\t\tslug: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, slug, options, config }) => {\n\t\t\treturn await client.integrations.installAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tslug,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Integrations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n","import {\n\tExpenseUploadRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useUploadMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"upload\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.uploadAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useValidateExpenseFilesMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"validate\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.validateAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useListJobInfiniteQuery(\n\tpage: number = 1,\n\tpageSize: number = 150,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Expenses, \"jobs\", { page, pageSize }],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: ListRequest = {\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.expenses.getProcessingJobsAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage?.pagination?.currentPage ===\n\t\t\t\tlastPage?.pagination?.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage?.pagination?.currentPage + 1;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n}\n"],"names":["SmartbillSDKContext","createContext","businessId","setCredentials","setBusinessId","client","SmartbillsSDKProvider","children","useState","credentials","React","createElement","Provider","value","useBusinessId","context","useContext","undefined","Error","useSetBusinessId","useApiContext","useApiClient","useSetCredentials","useSmartbillsSDKContext","SBApiKeys","useGetLogByIdQuery","id","options","config","useQuery","queryKey","Logs","queryFn","logs","getByIdAsync","useListLogsInfiniteQuery","request","page","pageSize","useInfiniteQuery","initialPageParam","pageParam","paginatedRequest","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","useGetAttachmentByIdQuery","useQueryClient","Attachments","attachments","useCreateAttachmentMutation","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","invalidateQueries","useDeleteAttachmentMutation","deleteAsync","_","useListAttachmentsInfiniteQuery","userId","toString","getPreviousPageParam","firstPage","useGetBankAccountByIdQuery","BankAccounts","bankAccounts","useListBankAccountsQuery","getAsync","useListBankAccountTransactionsInfiniteQuery","listTransactions","useListBankInstitutionsInfiniteQuery","BankInstitutions","bankInstitutions","useGetBankInstitutionByIdQuery","useListBankTransactionsInfiniteQuery","BankTransactions","bankTransactions","useGetBankTransactionByIdQuery","useListDocumentsInfiniteQuery","Documents","documents","useGetDocumentByIdQuery","useUploadDocumentMutation","upload","useDeleteDocumentMutation","variables","useListFriendsInfiniteQuery","Friends","friends","useListRecommendedFriendsInfiniteQuery","listRecommanded","useGetFriendByIdQuery","useDeleteFriendMutation","useListFriendRequestsInfiniteQuery","loyalty","useListCustomersInfiniteQuery","Businesses","Customers","businesses","customers","enabled","useGetCustomerByIdQuery","useCreateCustomerMutation","useUpdateCustomerMutation","updateAsync","useDeleteCustomerMutation","useListCustomerPaymentMethodsInfiniteQuery","customerId","CustomerPaymentMethods","customerPaymentMethods","useGetCustomerPaymentMethodByIdQuery","useCreateCustomerPaymentMethodMutation","useUpdateCustomerPaymentMethodMutation","useDeleteCustomerPaymentMethodMutation","useListCustomerBalanceTransactionsInfiniteQuery","CustomerBalanceTransactions","customerBalanceTransactions","useGetCustomerBalanceTransactionByIdQuery","transactionId","useListTaxesInfiniteQuery","Taxes","taxes","useGetTaxByIdQuery","useCreateTaxMutation","useUpdateTaxMutation","useDeleteTaxMutation","useListProductsInfiniteQuery","Products","products","useGetProductByIdQuery","useCreateProductMutation","mutationKey","useDeleteProductMutation","useUpdateProductMutation","useBatchUpsertProductsMutation","requests","batch","useListProductVariantsInfiniteQuery","productId","ProductVariants","productVariants","useGetProductVariantByIdQuery","variantId","useCreateProductVariantMutation","useUpdateProductVariantMutation","useDeleteProductVariantMutation","useListProductModifiersInfiniteQuery","ProductModifiers","productModifiers","useGetProductModifierByIdQuery","modifierId","useCreateProductModifierMutation","useUpdateProductModifierMutation","useDeleteProductModifierMutation","useListProductOptionsInfiniteQuery","ProductOptions","productOptions","useGetProductOptionByIdQuery","optionId","useCreateProductOptionMutation","useUpdateProductOptionMutation","useDeleteProductOptionMutation","useListProductImagesInfiniteQuery","ProductImages","productImages","useListProductImagesQuery","useGetProductImageByIdQuery","imageId","useCreateProductImageMutation","useUpdateProductImageMutation","useDeleteProductImageMutation","useListReviewsInfiniteQuery","BusinessReviews","reviews","useGetReviewByIdQuery","useCreateReviewMutation","useUpdateReviewMutation","useDeleteReviewMutation","removeQueries","useListLocationsInfiniteQuery","Locations","locations","useGetLocationByIdQuery","useCreateLocationMutation","useUpdateLocationMutation","useDeleteLocationMutation","useListPromoCodes","PromoCodes","promoCodes","useGetPromoCodeById","useCreatePromoCodeMutation","useUpdatePromoCodeMutation","useDeletePromoCodeMutation","useListFeesInfiniteQuery","Fees","fees","useGetFeeByIdQuery","feeId","useCreateFeeMutation","useUpdateFeeMutation","useDeleteFeeMutation","useListBusinessVendorsInfiniteQuery","Vendors","vendors","useGetBusinessVendorByIdQuery","useDeleteBusinessVendorMutation","mutationOptions","vendorId","useCreateBusinessVendorMutation","useUpdateBusinessVendorMutation","useGetBusinessVendorLinkTokenMutation","getLinkToken","useConnectBusinessVendorMutation","connectAsync","useRefreshBusinessVendorMutation","manualRefresh","useInviteMemberToBusinessMutation","teamMembers","invitations","TeamMemberInvitations","useCancelTeamMemberInvitation","invitationId","useGetTeamMemberInvitationById","useCreateTeamMemberInvitationMutation","useAcceptTeamMemberInvitationMutation","accept","useRefuseTeamMemberInvitationMutation","useListTeamMemberInvitationsInfiniteQuery","useChangeTeamMemberRoleMutation","deleteMember","TeamMembers","useDeleteTeamMemberMutation","useListTeamMembersInfiniteQuery","listMembers","useGetTeamMemberByIdQuery","getMemberById","useListBusinessInfiniteQuery","useGetBusinessByIdQuery","currentBusinessId","useCreateBusinessMutation","useUpdateBusinessMutation","useDeleteBusinessMutation","useBatchInviteMemberMutation","batchInviteMemberAsync","useListDepartmentsInfiniteQuery","Departments","departments","useListDepartmentsQuery","useGetDepartmentByIdQuery","departmentId","useCreateDepartmentMutation","useUpdateDepartmentMutation","useDeleteDepartmentMutation","useListDepartmentEmployeesInfiniteQuery","Employees","employees","useListDepartmentEmployeesQuery","useAddEmployeeToDepartmentMutation","useRemoveEmployeeFromDepartmentMutation","employeeId","useTablesQuery","Tables","tables","getAllAsync","useTableByIdQuery","tableId","useCreateTableMutation","useUpdateTableMutation","useListInvoicesInfiniteQuery","Invoices","invoices","useListInvoicesQuery","useGetInvoiceByIdQuery","invoiceId","useCreateInvoiceMutation","useUpdateInvoiceMutation","useDeleteInvoiceMutation","useGetNotificationByIdQuery","Notifications","notifications","useListNotificationsInfiniteQuery","useMarkNotificationsReadMutation","markAsRead","useMarkAllNotificationsReadMutation","markAllAsRead","useCreatePaymentMethodMutation","paymentMethods","PaymentMethods","useGetPaymentMethods","useGetPaymentMethodById","useDeletePaymentMethodMutation","useSetupPaymentMethod","setup","useCreatePaymentMethodFromSetupIntentMutation","setupIntentId","createFromSetupIntentAsync","useListPaymentMethodsInfiniteQuery","allPages","Array","isArray","length","useGetReceiptByIdQuery","Receipts","receipts","exception","useListReceiptsInfiniteQuery","useCreateReceiptMutation","useCreateUpdateMutation","useDeleteReceiptMutation","useListVendorsInfiniteQuery","useGetVendorByIdQuery","useDeleteVendorMutation","useCreateVendorMutation","useUpdateVendorMutation","useGetVendorLinkTokenMutation","useConnectVendorMutation","useGetDeckConnectionByIdQuery","getConnectionByIdAsync","useDisconnectFromVendorMutation","disconnectAsync","useRefreshVendorMutation","useGetCurrentUser","User","user","getCurrentUser","useSearchUsersInfiniteQuery","query","Users","users","useGetUserProfile","getUserProfile","useUpdateUserProfileMutation","updateUserProfile","useUploadUserAvatarMutation","file","uploadAvatarAsync","useSearchQuery","Search","searchAsync","useListIntegrationsInfiniteQuery","Integrations","integrations","useInstallIntegrationMutation","slug","installAsync","useUploadMutation","Expenses","expenses","uploadAsync","useValidateExpenseFilesMutation","validateAsync","useListJobInfiniteQuery","getProcessingJobsAsync"],"mappings":"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CA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AAEO,UAAMmF,OAAO,GAAG;;IClevB;;;;;;IAMG;aACaC,6BAA6BA,CAC5CjE,OAA+B,GAAA;IAAEC,EAAAA,IAAI,EAAE,CAAC;IAAEC,EAAAA,QAAQ,EAAE;IAAE,CAAE,EACxDX,OAA0B,EAC1BC,MAAgD,EAAA;IAEhD,EAAA,MAAMvB,MAAM,GAAGgB,YAAY,EAAE;IAC7B,EAAoB6B,yBAAc;IAClC,EAAA,MAAMhD,UAAU,GAAGY,aAAa,EAAE;MAClC,IAAI,CAACZ,UAAU,EAAE;IAChB,IAAA,MAAM,IAAIgB,KAAK,CAAC,gDAAgD,CAAC;IAClE;IAEA,EAAA,OAAOqB,2BAAgB,CAMrB;IACDC,IAAAA,gBAAgB,EAAEJ,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCP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"}
|