@smartbills/react-hooks-sdk 0.0.2-alpha.44 → 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.
Files changed (161) hide show
  1. package/dist/@types/index.d.ts +1447 -0
  2. package/dist/@types/index.d.ts.map +1 -0
  3. package/dist/cjs/apis/SBApiKeys.cjs +56 -0
  4. package/dist/cjs/apis/SBApiKeys.cjs.map +1 -0
  5. package/dist/cjs/apis/api-logs/LogsAPI.cjs +42 -0
  6. package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +1 -0
  7. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +147 -0
  8. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +1 -0
  9. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +88 -0
  10. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +1 -0
  11. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +58 -0
  12. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +1 -0
  13. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +57 -0
  14. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +1 -0
  15. package/dist/cjs/apis/business/BusinessAPI.cjs +172 -0
  16. package/dist/cjs/apis/business/BusinessAPI.cjs.map +1 -0
  17. package/dist/cjs/apis/business/customers/CustomerAPI.cjs +161 -0
  18. package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +1 -0
  19. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +71 -0
  20. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +1 -0
  21. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +176 -0
  22. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +1 -0
  23. package/dist/cjs/apis/business/departments/DepartmentApi.cjs +168 -0
  24. package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +1 -0
  25. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +137 -0
  26. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +1 -0
  27. package/dist/cjs/apis/business/fees/FeesAPI.cjs +167 -0
  28. package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +1 -0
  29. package/dist/cjs/apis/business/locations/LocationsAPI.cjs +133 -0
  30. package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +1 -0
  31. package/dist/cjs/apis/business/products/ProductsAPI.cjs +184 -0
  32. package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +1 -0
  33. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +195 -0
  34. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +1 -0
  35. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +169 -0
  36. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +1 -0
  37. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +183 -0
  38. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +1 -0
  39. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +185 -0
  40. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +1 -0
  41. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +139 -0
  42. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +1 -0
  43. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +143 -0
  44. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +1 -0
  45. package/dist/cjs/apis/business/tables/TablesAPI.cjs +75 -0
  46. package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +1 -0
  47. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +140 -0
  48. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +1 -0
  49. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +161 -0
  50. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +1 -0
  51. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +93 -0
  52. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +1 -0
  53. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +237 -0
  54. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -0
  55. package/dist/cjs/apis/documents/DocumentsAPI.cjs +87 -0
  56. package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +1 -0
  57. package/dist/cjs/apis/expenses/ExpensesAPI.cjs +62 -0
  58. package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +1 -0
  59. package/dist/cjs/apis/friends/FriendsAPI.cjs +150 -0
  60. package/dist/cjs/apis/friends/FriendsAPI.cjs.map +1 -0
  61. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +55 -0
  62. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +1 -0
  63. package/dist/cjs/apis/invoices/InvoicesAPI.cjs +168 -0
  64. package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +1 -0
  65. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +484 -0
  66. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +1 -0
  67. package/dist/cjs/apis/notifications/NotificationAPI.cjs +103 -0
  68. package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +1 -0
  69. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +125 -0
  70. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +1 -0
  71. package/dist/cjs/apis/receipts/ReceiptAPI.cjs +135 -0
  72. package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +1 -0
  73. package/dist/cjs/apis/user/UserAPI.cjs +130 -0
  74. package/dist/cjs/apis/user/UserAPI.cjs.map +1 -0
  75. package/dist/cjs/apis/vendors/VendorsAPI.cjs +215 -0
  76. package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -0
  77. package/dist/cjs/context/ApiContext.cjs +94 -0
  78. package/dist/cjs/context/ApiContext.cjs.map +1 -0
  79. package/dist/cjs/index.cjs +224 -0
  80. package/dist/cjs/index.cjs.map +1 -0
  81. package/dist/esm/apis/SBApiKeys.mjs +56 -0
  82. package/dist/esm/apis/SBApiKeys.mjs.map +1 -0
  83. package/dist/esm/apis/api-logs/LogsAPI.mjs +39 -0
  84. package/dist/esm/apis/api-logs/LogsAPI.mjs.map +1 -0
  85. package/dist/esm/apis/attachments/AttachmentsAPI.mjs +142 -0
  86. package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +1 -0
  87. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +84 -0
  88. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +1 -0
  89. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +55 -0
  90. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +1 -0
  91. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +54 -0
  92. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +1 -0
  93. package/dist/esm/apis/business/BusinessAPI.mjs +165 -0
  94. package/dist/esm/apis/business/BusinessAPI.mjs.map +1 -0
  95. package/dist/esm/apis/business/customers/CustomerAPI.mjs +155 -0
  96. package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +1 -0
  97. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +68 -0
  98. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +1 -0
  99. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +170 -0
  100. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +1 -0
  101. package/dist/esm/apis/business/departments/DepartmentApi.mjs +161 -0
  102. package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +1 -0
  103. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +132 -0
  104. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +1 -0
  105. package/dist/esm/apis/business/fees/FeesAPI.mjs +161 -0
  106. package/dist/esm/apis/business/fees/FeesAPI.mjs.map +1 -0
  107. package/dist/esm/apis/business/locations/LocationsAPI.mjs +127 -0
  108. package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +1 -0
  109. package/dist/esm/apis/business/products/ProductsAPI.mjs +177 -0
  110. package/dist/esm/apis/business/products/ProductsAPI.mjs.map +1 -0
  111. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +188 -0
  112. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +1 -0
  113. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +163 -0
  114. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +1 -0
  115. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +177 -0
  116. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +1 -0
  117. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +179 -0
  118. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +1 -0
  119. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +133 -0
  120. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +1 -0
  121. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +137 -0
  122. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +1 -0
  123. package/dist/esm/apis/business/tables/TablesAPI.mjs +70 -0
  124. package/dist/esm/apis/business/tables/TablesAPI.mjs.map +1 -0
  125. package/dist/esm/apis/business/taxes/TaxesAPI.mjs +134 -0
  126. package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +1 -0
  127. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +153 -0
  128. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +1 -0
  129. package/dist/esm/apis/business/team/TeamMembersAPI.mjs +88 -0
  130. package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +1 -0
  131. package/dist/esm/apis/business/vendors/VendorsAPI.mjs +228 -0
  132. package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -0
  133. package/dist/esm/apis/documents/DocumentsAPI.mjs +82 -0
  134. package/dist/esm/apis/documents/DocumentsAPI.mjs.map +1 -0
  135. package/dist/esm/apis/expenses/ExpensesAPI.mjs +58 -0
  136. package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +1 -0
  137. package/dist/esm/apis/friends/FriendsAPI.mjs +144 -0
  138. package/dist/esm/apis/friends/FriendsAPI.mjs.map +1 -0
  139. package/dist/esm/apis/integrations/IntegrationsAPI.mjs +52 -0
  140. package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +1 -0
  141. package/dist/esm/apis/invoices/InvoicesAPI.mjs +161 -0
  142. package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +1 -0
  143. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +482 -0
  144. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +1 -0
  145. package/dist/esm/apis/notifications/NotificationAPI.mjs +98 -0
  146. package/dist/esm/apis/notifications/NotificationAPI.mjs.map +1 -0
  147. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +117 -0
  148. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +1 -0
  149. package/dist/esm/apis/receipts/ReceiptAPI.mjs +129 -0
  150. package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +1 -0
  151. package/dist/esm/apis/user/UserAPI.mjs +123 -0
  152. package/dist/esm/apis/user/UserAPI.mjs.map +1 -0
  153. package/dist/esm/apis/vendors/VendorsAPI.mjs +204 -0
  154. package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -0
  155. package/dist/esm/context/ApiContext.mjs +86 -0
  156. package/dist/esm/context/ApiContext.mjs.map +1 -0
  157. package/dist/esm/index.mjs +39 -0
  158. package/dist/esm/index.mjs.map +1 -0
  159. package/dist/umd/index.js +5099 -0
  160. package/dist/umd/index.js.map +1 -0
  161. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentsAPI.mjs","sources":["../../../../src/apis/attachments/AttachmentsAPI.ts"],"sourcesContent":["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"],"names":["useGetAttachmentByIdQuery","id","options","config","client","useApiClient","useQueryClient","useQuery","queryKey","SBApiKeys","Attachments","queryFn","attachments","getByIdAsync","useCreateAttachmentMutation","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","invalidateQueries","useDeleteAttachmentMutation","deleteAsync","_","useListAttachmentsInfiniteQuery","request","page","pageSize","businessId","userId","useInfiniteQuery","initialPageParam","pageParam","listAsync","toString","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","getPreviousPageParam","firstPage"],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { useApiClient } from '../../../context/ApiContext.mjs';
2
+ import { useQueryClient, useQuery, useInfiniteQuery } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook for retrieving a bank account by ID
7
+ * @param id - The ID of the bank account to retrieve
8
+ * @param options - Optional request options
9
+ * @param config - Optional Axios request configuration
10
+ * @returns Query result containing the bank account data
11
+ */
12
+ const useGetBankAccountByIdQuery = (id, options, config) => {
13
+ const client = useApiClient();
14
+ useQueryClient();
15
+ return useQuery({
16
+ queryKey: [SBApiKeys.BankAccounts, id, options],
17
+ queryFn: async () => {
18
+ return client.bankAccounts.getByIdAsync(id, options, config);
19
+ }
20
+ });
21
+ };
22
+ /**
23
+ * Hook for listing bank accounts
24
+ * @param request - Request parameters for listing bank accounts
25
+ * @param options - Optional request options
26
+ * @param config - Optional Axios request configuration
27
+ * @returns Query result containing paginated bank account data
28
+ */
29
+ const useListBankAccountsQuery = (request = {
30
+ page: 1,
31
+ pageSize: 25
32
+ }, options, config) => {
33
+ const client = useApiClient();
34
+ useQueryClient();
35
+ return useQuery({
36
+ queryKey: [SBApiKeys.BankAccounts, request, options],
37
+ queryFn: async () => {
38
+ return client.bankAccounts.getAsync(request, options, config);
39
+ }
40
+ });
41
+ };
42
+ /**
43
+ * Hook for listing bank account transactions with infinite pagination
44
+ * @param id - The ID of the bank account
45
+ * @param request - Request parameters for listing transactions
46
+ * @param options - Optional request options
47
+ * @param config - Optional Axios request configuration
48
+ * @returns Infinite query result for implementing infinite scrolling with bank account transaction data
49
+ */
50
+ const useListBankAccountTransactionsInfiniteQuery = (id, request = {
51
+ page: 1,
52
+ pageSize: 25
53
+ }, options, config) => {
54
+ const client = useApiClient();
55
+ useQueryClient();
56
+ return useInfiniteQuery({
57
+ initialPageParam: request.page || 1,
58
+ queryKey: [SBApiKeys.BankAccounts, id, "transactions", request, options],
59
+ queryFn: async ({
60
+ pageParam = 1
61
+ }) => {
62
+ const paginatedRequest = {
63
+ ...request,
64
+ page: pageParam
65
+ };
66
+ return client.bankAccounts.listTransactions(id, paginatedRequest, options, config);
67
+ },
68
+ getPreviousPageParam: firstPage => {
69
+ if (firstPage.pagination.currentPage === 1) {
70
+ return undefined;
71
+ }
72
+ return firstPage.pagination.currentPage - 1;
73
+ },
74
+ getNextPageParam: lastPage => {
75
+ if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
76
+ return lastPage.pagination.currentPage + 1;
77
+ }
78
+ return undefined;
79
+ }
80
+ });
81
+ };
82
+
83
+ export { useGetBankAccountByIdQuery, useListBankAccountTransactionsInfiniteQuery, useListBankAccountsQuery };
84
+ //# sourceMappingURL=BankAccountAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankAccountAPI.mjs","sources":["../../../../../src/apis/banks/accounts/BankAccountAPI.tsx"],"sourcesContent":["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"],"names":["useGetBankAccountByIdQuery","id","options","config","client","useApiClient","useQueryClient","useQuery","queryKey","SBApiKeys","BankAccounts","queryFn","bankAccounts","getByIdAsync","useListBankAccountsQuery","request","page","pageSize","getAsync","useListBankAccountTransactionsInfiniteQuery","useInfiniteQuery","initialPageParam","pageParam","paginatedRequest","listTransactions","getPreviousPageParam","firstPage","pagination","currentPage","undefined","getNextPageParam","lastPage","pageCount"],"mappings":";;;;AAoBA;;;;;;AAMG;AACI,MAAMA,0BAA0B,GAAGA,CACzCC,EAAU,EACVC,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,QAAQ,CAAgC;IAC9CC,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAET,EAAE,EAAEC,OAAO,CAAC;IAC/CS,OAAO,EAAE,YAAW;MACnB,OAAOP,MAAM,CAACQ,YAAY,CAACC,YAAY,CAACZ,EAAE,EAAEC,OAAO,EAAEC,MAAM,CAAC;AAC7D;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACUW,MAAAA,wBAAwB,GAAGA,CACvCC,OAAkC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAI,CAAA,EAC3Df,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,QAAQ,CAAkC;IAChDC,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAEK,OAAO,EAAEb,OAAO,CAAC;IACpDS,OAAO,EAAE,YAAW;MACnB,OAAOP,MAAM,CAACQ,YAAY,CAACM,QAAQ,CAACH,OAAO,EAAEb,OAAO,EAAEC,MAAM,CAAC;AAC9D;AACA,GAAA,CAAC;AACH;AAEA;;;;;;;AAOG;MACUgB,2CAA2C,GAAGA,CAC1DlB,EAAU,EACVc,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAE,CAAE,EAC/Df,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOc,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAEN,OAAO,CAACC,IAAI,IAAI,CAAC;AACnCR,IAAAA,QAAQ,EAAE,CACTC,SAAS,CAACC,YAAY,EACtBT,EAAE,EACF,cAAc,EACdc,OAAO,EACPb,OAAO,CACP;IACDS,OAAO,EAAE,OAAO;AAAEW,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,gBAAgB,GAAG;AAAE,QAAA,GAAGR,OAAO;AAAEC,QAAAA,IAAI,EAAEM;OAAW;AACxD,MAAA,OAAOlB,MAAM,CAACQ,YAAY,CAACY,gBAAgB,CAC1CvB,EAAE,EACFsB,gBAAgB,EAChBrB,OAAO,EACPC,MAAM,CACN;KACD;IACDsB,oBAAoB,EAAGC,SAAS,IAAI;AACnC,MAAA,IAAIA,SAAS,CAACC,UAAU,CAACC,WAAW,KAAK,CAAC,EAAE;AAC3C,QAAA,OAAOC,SAAS;AACjB;AACA,MAAA,OAAOH,SAAS,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;KAC3C;IACDE,gBAAgB,EAAGC,QAAQ,IAAI;MAC9B,IACCA,QAAQ,CAACJ,UAAU,CAACC,WAAW,GAAGG,QAAQ,CAACJ,UAAU,CAACK,SAAS,EAC9D;AACD,QAAA,OAAOD,QAAQ,CAACJ,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOC,SAAS;AACjB;AACA,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,55 @@
1
+ import { useQueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
2
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
3
+ import { useApiClient } from '../../../context/ApiContext.mjs';
4
+
5
+ /**
6
+ * Hook for listing bank institutions with infinite pagination
7
+ * @param request - Request parameters for listing bank institutions
8
+ * @param options - Optional request options
9
+ * @param config - Optional Axios request configuration
10
+ * @returns Infinite query result for implementing infinite scrolling with bank institutions data
11
+ */
12
+ function useListBankInstitutionsInfiniteQuery(request = {
13
+ page: 1,
14
+ pageSize: 25
15
+ }, options, config) {
16
+ const client = useApiClient();
17
+ useQueryClient();
18
+ return useInfiniteQuery({
19
+ initialPageParam: request.page || 1,
20
+ queryKey: [SBApiKeys.BankInstitutions, request, options],
21
+ queryFn: async ({
22
+ pageParam = 1
23
+ }) => {
24
+ const paginatedRequest = {
25
+ ...request,
26
+ page: pageParam
27
+ };
28
+ return await client.bankInstitutions.listAsync(paginatedRequest, options, config);
29
+ },
30
+ getNextPageParam: lastPage => {
31
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
32
+ return lastPage.pagination.currentPage + 1;
33
+ }
34
+ return undefined;
35
+ }
36
+ });
37
+ }
38
+ /**
39
+ * Hook for retrieving a bank institution by ID
40
+ * @param id - The ID of the bank institution to retrieve
41
+ * @param options - Optional request options
42
+ * @param config - Optional Axios request configuration
43
+ * @returns Query result containing the bank institution data
44
+ */
45
+ const useGetBankInstitutionByIdQuery = (id, options, config) => {
46
+ const client = useApiClient();
47
+ useQueryClient();
48
+ return useQuery({
49
+ queryKey: [SBApiKeys.BankInstitutions, id],
50
+ queryFn: async () => await client.bankInstitutions.getByIdAsync(id, options, config)
51
+ });
52
+ };
53
+
54
+ export { useGetBankInstitutionByIdQuery, useListBankInstitutionsInfiniteQuery };
55
+ //# sourceMappingURL=BankInstitutionsAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankInstitutionsAPI.mjs","sources":["../../../../../src/apis/banks/bank-institutions/BankInstitutionsAPI.tsx"],"sourcesContent":["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"],"names":["useListBankInstitutionsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","BankInstitutions","queryFn","pageParam","paginatedRequest","bankInstitutions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBankInstitutionByIdQuery","id","useQuery","getByIdAsync"],"mappings":";;;;AAkBA;;;;;;AAMG;SACaA,oCAAoCA,CACnDC,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAE,CAAE,EAC/DC,OAA0B,EAC1BC,MAAuD,EAAA;AAEvD,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAET,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCS,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEZ,OAAO,EAAEG,OAAO,CAAC;IACxDU,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,gBAAgB,GAAG;AAAE,QAAA,GAAGf,OAAO;AAAEC,QAAAA,IAAI,EAAEa;OAAW;AACxD,MAAA,OAAO,MAAMT,MAAM,CAACW,gBAAgB,CAACC,SAAS,CAC7CF,gBAAgB,EAChBZ,OAAO,EACPC,MAAM,CACN;KACD;IACDc,gBAAgB,EAAGC,QAAQ,IAAI;AAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;AACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOE,SAAS;AACjB;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACI,MAAMC,8BAA8B,GAAGA,CAC7CC,EAAU,EACVtB,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOmB,QAAQ,CAAoC;AAClDhB,IAAAA,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEa,EAAE,CAAC;AAC1CZ,IAAAA,OAAO,EAAE,YACR,MAAMR,MAAM,CAACW,gBAAgB,CAACW,YAAY,CAACF,EAAE,EAAEtB,OAAO,EAAEC,MAAM;AAC/D,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,54 @@
1
+ import { useQueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
2
+ import { useApiClient } from '../../../context/ApiContext.mjs';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook for listing bank transactions with infinite pagination
7
+ * @param request - Request parameters for listing bank transactions
8
+ * @param options - Optional request options
9
+ * @param config - Optional axios request config
10
+ * @returns Infinite query result for implementing infinite scrolling with bank transaction data
11
+ */
12
+ const useListBankTransactionsInfiniteQuery = (request = {
13
+ page: 1,
14
+ pageSize: 25
15
+ }, options, config) => {
16
+ const client = useApiClient();
17
+ useQueryClient();
18
+ return useInfiniteQuery({
19
+ initialPageParam: request.page || 1,
20
+ queryKey: [SBApiKeys.BankTransactions, request, options],
21
+ queryFn: async ({
22
+ pageParam = 1
23
+ }) => {
24
+ return client.bankTransactions.listAsync({
25
+ ...request,
26
+ page: pageParam
27
+ }, options, config);
28
+ },
29
+ getNextPageParam: lastPage => {
30
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
31
+ return lastPage.pagination.currentPage + 1;
32
+ }
33
+ return undefined;
34
+ }
35
+ });
36
+ };
37
+ /**
38
+ * Hook for retrieving a bank transaction by ID
39
+ * @param id - The ID of the bank transaction to retrieve
40
+ * @param options - Optional request options
41
+ * @param config - Optional Axios request configuration
42
+ * @returns Query result containing the bank transaction data
43
+ */
44
+ const useGetBankTransactionByIdQuery = (id, options, config) => {
45
+ const client = useApiClient();
46
+ useQueryClient();
47
+ return useQuery({
48
+ queryKey: [SBApiKeys.BankTransactions, id, options],
49
+ queryFn: async () => await client.bankTransactions.getByIdAsync(id, options, config)
50
+ });
51
+ };
52
+
53
+ export { useGetBankTransactionByIdQuery, useListBankTransactionsInfiniteQuery };
54
+ //# sourceMappingURL=BankTransactionAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BankTransactionAPI.mjs","sources":["../../../../../src/apis/banks/bank-transactions/BankTransactionAPI.tsx"],"sourcesContent":["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"],"names":["useListBankTransactionsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","BankTransactions","queryFn","pageParam","bankTransactions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBankTransactionByIdQuery","id","useQuery","getByIdAsync"],"mappings":";;;;AAkBA;;;;;;AAMG;AACUA,MAAAA,oCAAoC,GAAGA,CACnDC,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAI,CAAA,EAC/DC,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAET,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCS,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEZ,OAAO,EAAEG,OAAO,CAAC;IACxDU,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,OAAOT,MAAM,CAACU,gBAAgB,CAACC,SAAS,CACvC;AACC,QAAA,GAAGhB,OAAO;AACVC,QAAAA,IAAI,EAAEa;AACN,OAAA,EACDX,OAAO,EACPC,MAAM,CACN;KACD;IACDa,gBAAgB,EAAGC,QAAQ,IAAI;AAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;AACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOE,SAAS;AACjB;AACA,GAAA,CAAC;AACH;AAEA;;;;;;AAMG;AACI,MAAMC,8BAA8B,GAAGA,CAC7CC,EAAU,EACVrB,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOkB,QAAQ,CAAoC;IAClDf,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEY,EAAE,EAAErB,OAAO,CAAC;AACnDU,IAAAA,OAAO,EAAE,YACR,MAAMR,MAAM,CAACU,gBAAgB,CAACW,YAAY,CAACF,EAAE,EAAErB,OAAO,EAAEC,MAAM;AAC/D,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,165 @@
1
+ import { useApiClient, useBusinessId } from '../../context/ApiContext.mjs';
2
+ import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook for listing business with infinite pagination
7
+ * @param request - Request parameters for listing business
8
+ * @param options - Optional request options
9
+ * @param config - Optional Axios request configuration
10
+ * @returns Infinite query result for implementing infinite scrolling with business data
11
+ */
12
+ function useListBusinessInfiniteQuery(request = {
13
+ page: 1,
14
+ pageSize: 25
15
+ }, options, config) {
16
+ const client = useApiClient();
17
+ useQueryClient();
18
+ return useInfiniteQuery({
19
+ initialPageParam: request.page || 1,
20
+ queryKey: [SBApiKeys.Businesses, request, options],
21
+ queryFn: async ({
22
+ pageParam = 1
23
+ }) => {
24
+ return await client.businesses.listAsync({
25
+ ...request,
26
+ page: pageParam
27
+ }, options, config);
28
+ },
29
+ getNextPageParam: lastPage => {
30
+ if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
31
+ return lastPage.pagination.currentPage + 1;
32
+ }
33
+ return undefined;
34
+ }
35
+ });
36
+ }
37
+ /**
38
+ * Hook for retrieving a business by ID
39
+ * @param id - The ID of the business to retrieve
40
+ * @param options - Optional request options
41
+ * @param config - Optional Axios request configuration
42
+ * @returns Query result containing the business data
43
+ */
44
+ const useGetBusinessByIdQuery = (id, options, config) => {
45
+ const client = useApiClient();
46
+ useQueryClient();
47
+ const currentBusinessId = useBusinessId();
48
+ return useQuery({
49
+ queryKey: [SBApiKeys.Businesses, id, options],
50
+ queryFn: async () => await client.businesses.getByIdAsync(id, options, config),
51
+ // If we're requesting the current business, only enable when businessId is set
52
+ enabled: id === currentBusinessId ? !!currentBusinessId : true
53
+ });
54
+ };
55
+ /**
56
+ * Hook for creating a new business
57
+ * @returns Mutation function for creating business
58
+ */
59
+ const useCreateBusinessMutation = () => {
60
+ const client = useApiClient();
61
+ const queryClient = useQueryClient();
62
+ return useMutation({
63
+ mutationFn: async ({
64
+ request,
65
+ options,
66
+ config
67
+ }) => {
68
+ return await client.businesses.createAsync(request, options, config);
69
+ },
70
+ onSuccess: () => {
71
+ queryClient.invalidateQueries({
72
+ queryKey: [SBApiKeys.Businesses]
73
+ });
74
+ }
75
+ });
76
+ };
77
+ /**
78
+ * Hook for updating an existing business
79
+ * @returns Mutation function for updating business
80
+ */
81
+ const useUpdateBusinessMutation = () => {
82
+ const client = useApiClient();
83
+ const queryClient = useQueryClient();
84
+ const currentBusinessId = useBusinessId();
85
+ return useMutation({
86
+ mutationFn: async ({
87
+ businessId,
88
+ request,
89
+ options,
90
+ config
91
+ }) => {
92
+ return await client.businesses.updateAsync(businessId, request, options, config);
93
+ },
94
+ onSuccess: (_, {
95
+ businessId
96
+ }) => {
97
+ queryClient.invalidateQueries({
98
+ queryKey: [SBApiKeys.Businesses]
99
+ });
100
+ queryClient.invalidateQueries({
101
+ queryKey: [SBApiKeys.Businesses, businessId]
102
+ });
103
+ // If updating the current business, invalidate any queries that depend on it
104
+ if (businessId === currentBusinessId) {
105
+ queryClient.invalidateQueries();
106
+ }
107
+ }
108
+ });
109
+ };
110
+ /**
111
+ * Hook for deleting a business
112
+ * @returns Mutation function for deleting business
113
+ */
114
+ const useDeleteBusinessMutation = () => {
115
+ const client = useApiClient();
116
+ const queryClient = useQueryClient();
117
+ const currentBusinessId = useBusinessId();
118
+ return useMutation({
119
+ mutationFn: async ({
120
+ businessId,
121
+ options,
122
+ config
123
+ }) => {
124
+ return await client.businesses.deleteAsync(businessId, options, config);
125
+ },
126
+ onSuccess: (_, {
127
+ businessId
128
+ }) => {
129
+ queryClient.invalidateQueries({
130
+ queryKey: [SBApiKeys.Businesses]
131
+ });
132
+ // If deleting the current business, invalidate all queries
133
+ if (businessId === currentBusinessId) {
134
+ queryClient.invalidateQueries();
135
+ }
136
+ }
137
+ });
138
+ };
139
+ /**
140
+ * Hook for batch inviting members to a business
141
+ */
142
+ const useBatchInviteMemberMutation = () => {
143
+ const client = useApiClient();
144
+ const queryClient = useQueryClient();
145
+ return useMutation({
146
+ mutationFn: async ({
147
+ businessId,
148
+ invitations,
149
+ options,
150
+ config
151
+ }) => {
152
+ return await client.businesses.batchInviteMemberAsync(businessId, invitations, options, config);
153
+ },
154
+ onSuccess: (_, {
155
+ businessId
156
+ }) => {
157
+ queryClient.invalidateQueries({
158
+ queryKey: [SBApiKeys.Businesses, businessId, "members"]
159
+ });
160
+ }
161
+ });
162
+ };
163
+
164
+ export { useBatchInviteMemberMutation, useCreateBusinessMutation, useDeleteBusinessMutation, useGetBusinessByIdQuery, useListBusinessInfiniteQuery, useUpdateBusinessMutation };
165
+ //# sourceMappingURL=BusinessAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BusinessAPI.mjs","sources":["../../../../src/apis/business/BusinessAPI.tsx"],"sourcesContent":["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"],"names":["useListBusinessInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","queryFn","pageParam","businesses","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBusinessByIdQuery","id","currentBusinessId","useBusinessId","useQuery","getByIdAsync","enabled","useCreateBusinessMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateBusinessMutation","businessId","updateAsync","_","useDeleteBusinessMutation","deleteAsync","useBatchInviteMemberMutation","invitations","batchInviteMemberAsync"],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
+ import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook to list customers with infinite scrolling
7
+ * @param request - The list request parameters
8
+ * @param options - Optional request options
9
+ * @param config - Optional axios request config
10
+ * @returns Infinite query result containing the paginated customers
11
+ */
12
+ function useListCustomersInfiniteQuery(request = {
13
+ page: 1,
14
+ pageSize: 25
15
+ }, options, config) {
16
+ const client = useApiClient();
17
+ useQueryClient();
18
+ const businessId = useBusinessId();
19
+ if (!businessId) {
20
+ throw new Error("businessId is required for customer operations");
21
+ }
22
+ return useInfiniteQuery({
23
+ initialPageParam: request.page || 1,
24
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, request, options],
25
+ queryFn: async ({
26
+ pageParam = 1
27
+ }) => {
28
+ return await client.businesses.customers.listAsync(businessId, {
29
+ ...request,
30
+ page: pageParam
31
+ }, options, config);
32
+ },
33
+ getNextPageParam: lastPage => {
34
+ if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
35
+ return lastPage.pagination.currentPage + 1;
36
+ }
37
+ return undefined;
38
+ },
39
+ enabled: !!businessId
40
+ });
41
+ }
42
+ /**
43
+ * Hook to get a customer by ID
44
+ * @param id - The customer ID
45
+ * @param options - Optional request options
46
+ * @param config - Optional axios request config
47
+ * @returns Query result containing the customer data
48
+ */
49
+ const useGetCustomerByIdQuery = (id, options, config) => {
50
+ const client = useApiClient();
51
+ useQueryClient();
52
+ const businessId = useBusinessId();
53
+ if (!businessId) {
54
+ throw new Error("businessId is required for customer operations");
55
+ }
56
+ return useQuery({
57
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id, options],
58
+ queryFn: async () => {
59
+ return await client.businesses.customers.getByIdAsync(businessId, id, options, config);
60
+ },
61
+ enabled: !!businessId
62
+ });
63
+ };
64
+ /**
65
+ * Hook to create a new customer
66
+ * @returns Mutation function to create a customer
67
+ */
68
+ const useCreateCustomerMutation = () => {
69
+ const client = useApiClient();
70
+ const queryClient = useQueryClient();
71
+ const businessId = useBusinessId();
72
+ return useMutation({
73
+ mutationFn: async ({
74
+ request,
75
+ options,
76
+ config
77
+ }) => {
78
+ if (!businessId) {
79
+ throw new Error("businessId is required for customer operations");
80
+ }
81
+ return await client.businesses.customers.createAsync(businessId, request, options, config);
82
+ },
83
+ onSuccess: () => {
84
+ queryClient.invalidateQueries({
85
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
86
+ });
87
+ }
88
+ });
89
+ };
90
+ /**
91
+ * Hook to update a customer
92
+ * @returns Mutation function for updating customers
93
+ */
94
+ const useUpdateCustomerMutation = () => {
95
+ const client = useApiClient();
96
+ const queryClient = useQueryClient();
97
+ const businessId = useBusinessId();
98
+ return useMutation({
99
+ mutationFn: async ({
100
+ id,
101
+ request,
102
+ options,
103
+ config
104
+ }) => {
105
+ if (!businessId) {
106
+ throw new Error("businessId is required for customer operations");
107
+ }
108
+ return await client.businesses.customers.updateAsync(businessId, id, request, options, config);
109
+ },
110
+ onSuccess: (_, {
111
+ id
112
+ }) => {
113
+ queryClient.invalidateQueries({
114
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
115
+ });
116
+ queryClient.invalidateQueries({
117
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
118
+ });
119
+ }
120
+ });
121
+ };
122
+ /**
123
+ * Hook to delete a customer
124
+ * @returns Mutation function for deleting customers
125
+ */
126
+ const useDeleteCustomerMutation = () => {
127
+ const client = useApiClient();
128
+ const queryClient = useQueryClient();
129
+ const businessId = useBusinessId();
130
+ return useMutation({
131
+ mutationFn: async ({
132
+ id,
133
+ options,
134
+ config
135
+ }) => {
136
+ if (!businessId) {
137
+ throw new Error("businessId is required for customer operations");
138
+ }
139
+ await client.businesses.customers.deleteAsync(businessId, id, options, config);
140
+ },
141
+ onSuccess: (_, {
142
+ id
143
+ }) => {
144
+ queryClient.invalidateQueries({
145
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
146
+ });
147
+ queryClient.invalidateQueries({
148
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
149
+ });
150
+ }
151
+ });
152
+ };
153
+
154
+ export { useCreateCustomerMutation, useDeleteCustomerMutation, useGetCustomerByIdQuery, useListCustomersInfiniteQuery, useUpdateCustomerMutation };
155
+ //# sourceMappingURL=CustomerAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerAPI.mjs","sources":["../../../../../src/apis/business/customers/CustomerAPI.ts"],"sourcesContent":["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"],"names":["useListCustomersInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Customers","queryFn","pageParam","businesses","customers","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetCustomerByIdQuery","id","useQuery","getByIdAsync","useCreateCustomerMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateCustomerMutation","updateAsync","_","useDeleteCustomerMutation","deleteAsync"],"mappings":"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"}