@osise/api-client 0.0.1 → 0.0.3

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 (166) hide show
  1. package/README.md +82 -0
  2. package/dist/cjs/api/admin-b2b.js +260 -0
  3. package/dist/cjs/api/admin-b2b.js.map +1 -0
  4. package/dist/cjs/api/admin-finance.js +78 -0
  5. package/dist/cjs/api/admin-finance.js.map +1 -0
  6. package/dist/cjs/api/admin-payouts.js +54 -0
  7. package/dist/cjs/api/admin-payouts.js.map +1 -0
  8. package/dist/cjs/api/admin-qc.js +237 -0
  9. package/dist/cjs/api/admin-qc.js.map +1 -0
  10. package/dist/cjs/api/admin.js +280 -24
  11. package/dist/cjs/api/admin.js.map +1 -1
  12. package/dist/cjs/api/b2b.js +124 -0
  13. package/dist/cjs/api/b2b.js.map +1 -0
  14. package/dist/cjs/api/communication.js +283 -0
  15. package/dist/cjs/api/communication.js.map +1 -0
  16. package/dist/cjs/api/index.js +33 -1
  17. package/dist/cjs/api/index.js.map +1 -1
  18. package/dist/cjs/api/jobs.js +304 -43
  19. package/dist/cjs/api/jobs.js.map +1 -1
  20. package/dist/cjs/api/location.js +91 -0
  21. package/dist/cjs/api/location.js.map +1 -0
  22. package/dist/cjs/api/payments.js +129 -0
  23. package/dist/cjs/api/payments.js.map +1 -0
  24. package/dist/cjs/api/support.js +148 -0
  25. package/dist/cjs/api/support.js.map +1 -0
  26. package/dist/cjs/hooks/index.js +1738 -4
  27. package/dist/cjs/hooks/index.js.map +1 -1
  28. package/dist/cjs/index.js +35 -1
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/types/admin-finance.js +7 -0
  31. package/dist/cjs/types/admin-finance.js.map +1 -0
  32. package/dist/cjs/types/admin-invoice.js +7 -0
  33. package/dist/cjs/types/admin-invoice.js.map +1 -0
  34. package/dist/cjs/types/admin-payout.js +7 -0
  35. package/dist/cjs/types/admin-payout.js.map +1 -0
  36. package/dist/cjs/types/b2b.js +7 -0
  37. package/dist/cjs/types/b2b.js.map +1 -0
  38. package/dist/cjs/types/communication.js +90 -0
  39. package/dist/cjs/types/communication.js.map +1 -0
  40. package/dist/cjs/types/enums.js +343 -1
  41. package/dist/cjs/types/enums.js.map +1 -1
  42. package/dist/cjs/types/index.js +18 -2
  43. package/dist/cjs/types/index.js.map +1 -1
  44. package/dist/cjs/types/job.js +1 -0
  45. package/dist/cjs/types/job.js.map +1 -1
  46. package/dist/cjs/types/location.js +7 -0
  47. package/dist/cjs/types/location.js.map +1 -0
  48. package/dist/cjs/types/payment.js +7 -0
  49. package/dist/cjs/types/payment.js.map +1 -0
  50. package/dist/cjs/types/qc.js +8 -0
  51. package/dist/cjs/types/qc.js.map +1 -0
  52. package/dist/cjs/types/support.js +7 -0
  53. package/dist/cjs/types/support.js.map +1 -0
  54. package/dist/esm/api/admin-b2b.js +255 -0
  55. package/dist/esm/api/admin-b2b.js.map +1 -0
  56. package/dist/esm/api/admin-finance.js +74 -0
  57. package/dist/esm/api/admin-finance.js.map +1 -0
  58. package/dist/esm/api/admin-payouts.js +50 -0
  59. package/dist/esm/api/admin-payouts.js.map +1 -0
  60. package/dist/esm/api/admin-qc.js +233 -0
  61. package/dist/esm/api/admin-qc.js.map +1 -0
  62. package/dist/esm/api/admin.js +275 -22
  63. package/dist/esm/api/admin.js.map +1 -1
  64. package/dist/esm/api/b2b.js +120 -0
  65. package/dist/esm/api/b2b.js.map +1 -0
  66. package/dist/esm/api/communication.js +275 -0
  67. package/dist/esm/api/communication.js.map +1 -0
  68. package/dist/esm/api/index.js +10 -1
  69. package/dist/esm/api/index.js.map +1 -1
  70. package/dist/esm/api/jobs.js +304 -43
  71. package/dist/esm/api/jobs.js.map +1 -1
  72. package/dist/esm/api/location.js +87 -0
  73. package/dist/esm/api/location.js.map +1 -0
  74. package/dist/esm/api/payments.js +124 -0
  75. package/dist/esm/api/payments.js.map +1 -0
  76. package/dist/esm/api/support.js +143 -0
  77. package/dist/esm/api/support.js.map +1 -0
  78. package/dist/esm/hooks/index.js +1552 -3
  79. package/dist/esm/hooks/index.js.map +1 -1
  80. package/dist/esm/index.js +36 -2
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/types/admin-finance.js +6 -0
  83. package/dist/esm/types/admin-finance.js.map +1 -0
  84. package/dist/esm/types/admin-invoice.js +6 -0
  85. package/dist/esm/types/admin-invoice.js.map +1 -0
  86. package/dist/esm/types/admin-payout.js +6 -0
  87. package/dist/esm/types/admin-payout.js.map +1 -0
  88. package/dist/esm/types/b2b.js +6 -0
  89. package/dist/esm/types/b2b.js.map +1 -0
  90. package/dist/esm/types/communication.js +87 -0
  91. package/dist/esm/types/communication.js.map +1 -0
  92. package/dist/esm/types/enums.js +341 -0
  93. package/dist/esm/types/enums.js.map +1 -1
  94. package/dist/esm/types/index.js +18 -2
  95. package/dist/esm/types/index.js.map +1 -1
  96. package/dist/esm/types/job.js +1 -0
  97. package/dist/esm/types/job.js.map +1 -1
  98. package/dist/esm/types/location.js +6 -0
  99. package/dist/esm/types/location.js.map +1 -0
  100. package/dist/esm/types/payment.js +6 -0
  101. package/dist/esm/types/payment.js.map +1 -0
  102. package/dist/esm/types/qc.js +7 -0
  103. package/dist/esm/types/qc.js.map +1 -0
  104. package/dist/esm/types/support.js +6 -0
  105. package/dist/esm/types/support.js.map +1 -0
  106. package/dist/types/api/admin-b2b.d.ts +225 -0
  107. package/dist/types/api/admin-b2b.d.ts.map +1 -0
  108. package/dist/types/api/admin-finance.d.ts +52 -0
  109. package/dist/types/api/admin-finance.d.ts.map +1 -0
  110. package/dist/types/api/admin-payouts.d.ts +37 -0
  111. package/dist/types/api/admin-payouts.d.ts.map +1 -0
  112. package/dist/types/api/admin-qc.d.ts +157 -0
  113. package/dist/types/api/admin-qc.d.ts.map +1 -0
  114. package/dist/types/api/admin.d.ts +184 -17
  115. package/dist/types/api/admin.d.ts.map +1 -1
  116. package/dist/types/api/b2b.d.ts +77 -0
  117. package/dist/types/api/b2b.d.ts.map +1 -0
  118. package/dist/types/api/communication.d.ts +201 -0
  119. package/dist/types/api/communication.d.ts.map +1 -0
  120. package/dist/types/api/index.d.ts +10 -1
  121. package/dist/types/api/index.d.ts.map +1 -1
  122. package/dist/types/api/jobs.d.ts +197 -38
  123. package/dist/types/api/jobs.d.ts.map +1 -1
  124. package/dist/types/api/location.d.ts +76 -0
  125. package/dist/types/api/location.d.ts.map +1 -0
  126. package/dist/types/api/payments.d.ts +81 -0
  127. package/dist/types/api/payments.d.ts.map +1 -0
  128. package/dist/types/api/support.d.ts +101 -0
  129. package/dist/types/api/support.d.ts.map +1 -0
  130. package/dist/types/hooks/index.d.ts +965 -6
  131. package/dist/types/hooks/index.d.ts.map +1 -1
  132. package/dist/types/index.d.ts +32 -2
  133. package/dist/types/index.d.ts.map +1 -1
  134. package/dist/types/types/admin-finance.d.ts +265 -0
  135. package/dist/types/types/admin-finance.d.ts.map +1 -0
  136. package/dist/types/types/admin-invoice.d.ts +262 -0
  137. package/dist/types/types/admin-invoice.d.ts.map +1 -0
  138. package/dist/types/types/admin-payout.d.ts +180 -0
  139. package/dist/types/types/admin-payout.d.ts.map +1 -0
  140. package/dist/types/types/admin.d.ts +1341 -0
  141. package/dist/types/types/admin.d.ts.map +1 -1
  142. package/dist/types/types/artisan.d.ts +46 -37
  143. package/dist/types/types/artisan.d.ts.map +1 -1
  144. package/dist/types/types/b2b.d.ts +687 -0
  145. package/dist/types/types/b2b.d.ts.map +1 -0
  146. package/dist/types/types/common.d.ts +1 -1
  147. package/dist/types/types/common.d.ts.map +1 -1
  148. package/dist/types/types/communication.d.ts +670 -0
  149. package/dist/types/types/communication.d.ts.map +1 -0
  150. package/dist/types/types/consumer.d.ts +10 -5
  151. package/dist/types/types/consumer.d.ts.map +1 -1
  152. package/dist/types/types/enums.d.ts +311 -0
  153. package/dist/types/types/enums.d.ts.map +1 -1
  154. package/dist/types/types/index.d.ts +10 -1
  155. package/dist/types/types/index.d.ts.map +1 -1
  156. package/dist/types/types/job.d.ts +576 -55
  157. package/dist/types/types/job.d.ts.map +1 -1
  158. package/dist/types/types/location.d.ts +74 -0
  159. package/dist/types/types/location.d.ts.map +1 -0
  160. package/dist/types/types/payment.d.ts +281 -0
  161. package/dist/types/types/payment.d.ts.map +1 -0
  162. package/dist/types/types/qc.d.ts +589 -0
  163. package/dist/types/types/qc.d.ts.map +1 -0
  164. package/dist/types/types/support.d.ts +194 -0
  165. package/dist/types/types/support.d.ts.map +1 -0
  166. package/package.json +1 -1
package/README.md CHANGED
@@ -365,6 +365,73 @@ await client.adminConsumers.unblock('consumer-id');
365
365
  await client.adminJobs.list();
366
366
  await client.adminJobs.assignArtisan('job-id', 'artisan-id');
367
367
  await client.adminJobs.resolveDispute('job-id', 'Refund issued', 5000);
368
+
369
+ // Service Categories Management
370
+ await client.adminServiceCategories.list();
371
+ await client.adminServiceCategories.get('category-id');
372
+ await client.adminServiceCategories.create({
373
+ name: 'Landscaping',
374
+ description: 'Garden and outdoor maintenance services',
375
+ displayOrder: 10,
376
+ });
377
+ await client.adminServiceCategories.update('category-id', {
378
+ isActive: true,
379
+ displayOrder: 5,
380
+ });
381
+ await client.adminServiceCategories.delete('category-id');
382
+ ```
383
+
384
+ ### Location Services
385
+
386
+ ```typescript
387
+ // Geocode an address to coordinates
388
+ const geocodeResult = await client.location.geocode({
389
+ address: '123 Main Street',
390
+ city: 'Lagos',
391
+ state: 'Lagos',
392
+ country: 'Nigeria',
393
+ });
394
+ console.log('Coordinates:', geocodeResult.data?.latitude, geocodeResult.data?.longitude);
395
+
396
+ // Reverse geocode coordinates to address
397
+ const reverseResult = await client.location.reverseGeocode({
398
+ latitude: 6.5244,
399
+ longitude: 3.3792,
400
+ });
401
+ console.log('Address:', reverseResult.data?.formattedAddress);
402
+
403
+ // Calculate distance between two points
404
+ const distance = await client.location.calculateDistance({
405
+ originLatitude: 6.5244,
406
+ originLongitude: 3.3792,
407
+ destinationLatitude: 6.4281,
408
+ destinationLongitude: 3.4219,
409
+ });
410
+ console.log(`Distance: ${distance.data?.distanceKm} km`);
411
+ console.log(`Estimated travel time: ${distance.data?.estimatedTravelTimeMinutes} minutes`);
412
+
413
+ // Get all service areas
414
+ const areas = await client.location.getServiceAreas({
415
+ state: 'Lagos',
416
+ city: 'Lekki',
417
+ });
418
+
419
+ // Find nearby service areas
420
+ const nearby = await client.location.getNearbyAreas({
421
+ latitude: 6.5244,
422
+ longitude: 3.3792,
423
+ radiusKm: 10,
424
+ limit: 5,
425
+ });
426
+
427
+ // Check if a location is serviced
428
+ const serviceCheck = await client.location.checkServiceArea(6.5244, 3.3792);
429
+ if (serviceCheck.data?.isServiced) {
430
+ console.log('Location is serviced!');
431
+ console.log('Service Area:', serviceCheck.data.serviceArea);
432
+ } else {
433
+ console.log('Location not serviced. Nearby areas:', serviceCheck.data?.nearbyAreas);
434
+ }
368
435
  ```
369
436
 
370
437
  ## Error Handling
@@ -419,6 +486,21 @@ import type {
419
486
  JobStatus,
420
487
  Quote,
421
488
 
489
+ // Location
490
+ LocationServiceAreaDto,
491
+ GeocodeRequestDto,
492
+ GeocodeResponseDto,
493
+ ReverseGeocodeRequestDto,
494
+ ReverseGeocodeResponseDto,
495
+ CalculateDistanceRequestDto,
496
+ CalculateDistanceResponseDto,
497
+ ServiceAreaCheckResultDto,
498
+
499
+ // Admin
500
+ AdminServiceCategoryDto,
501
+ CreateServiceCategoryDto,
502
+ UpdateServiceCategoryDto,
503
+
422
504
  // Common
423
505
  StandardResponse,
424
506
  PagedResult,
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ /**
3
+ * Admin B2B API
4
+ * Handles B2B company management, contracts, properties, users, and invoices (admin operations)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AdminB2BApi = exports.AdminB2BInvoicesApi = void 0;
8
+ /**
9
+ * Admin B2B Invoices API
10
+ * Manages B2B company invoices - create, send, record payments, and generate statements
11
+ */
12
+ class AdminB2BInvoicesApi {
13
+ constructor(http) {
14
+ this.http = http;
15
+ }
16
+ /**
17
+ * Get base path for a company's invoices
18
+ */
19
+ getBasePath(companyId) {
20
+ return `/api/v1/admin/b2b/${companyId}`;
21
+ }
22
+ // ==================== Invoice CRUD ====================
23
+ /**
24
+ * Get invoices for a company
25
+ */
26
+ async listInvoices(companyId, params) {
27
+ return this.http.get(`${this.getBasePath(companyId)}/invoices`, params);
28
+ }
29
+ /**
30
+ * Create a new invoice for a company
31
+ */
32
+ async createInvoice(companyId, data) {
33
+ return this.http.post(`${this.getBasePath(companyId)}/invoices`, data);
34
+ }
35
+ /**
36
+ * Get invoice details
37
+ */
38
+ async getInvoice(companyId, invoiceId) {
39
+ return this.http.get(`${this.getBasePath(companyId)}/invoices/${invoiceId}`);
40
+ }
41
+ /**
42
+ * Update a draft invoice
43
+ */
44
+ async updateInvoice(companyId, invoiceId, data) {
45
+ return this.http.put(`${this.getBasePath(companyId)}/invoices/${invoiceId}`, data);
46
+ }
47
+ // ==================== Invoice Actions ====================
48
+ /**
49
+ * Send an invoice to the company
50
+ */
51
+ async sendInvoice(companyId, invoiceId, data) {
52
+ return this.http.post(`${this.getBasePath(companyId)}/invoices/${invoiceId}/send`, data || {});
53
+ }
54
+ /**
55
+ * Record a payment against an invoice
56
+ */
57
+ async recordPayment(companyId, invoiceId, data) {
58
+ return this.http.post(`${this.getBasePath(companyId)}/invoices/${invoiceId}/payment`, data);
59
+ }
60
+ /**
61
+ * Cancel an invoice
62
+ */
63
+ async cancelInvoice(companyId, invoiceId, data) {
64
+ return this.http.post(`${this.getBasePath(companyId)}/invoices/${invoiceId}/cancel`, data);
65
+ }
66
+ // ==================== Company Statement ====================
67
+ /**
68
+ * Get company statement (billing history)
69
+ */
70
+ async getStatement(companyId, params) {
71
+ return this.http.get(`${this.getBasePath(companyId)}/statement`, params);
72
+ }
73
+ // ==================== Invoiceable Jobs ====================
74
+ /**
75
+ * Get jobs that can be included in an invoice
76
+ */
77
+ async getInvoiceableJobs(companyId, params) {
78
+ return this.http.get(`${this.getBasePath(companyId)}/invoiceable-jobs`, params);
79
+ }
80
+ }
81
+ exports.AdminB2BInvoicesApi = AdminB2BInvoicesApi;
82
+ /**
83
+ * Admin B2B API
84
+ * Manages B2B companies, contracts, properties, users, and meeting notes
85
+ */
86
+ class AdminB2BApi {
87
+ constructor(http) {
88
+ this.http = http;
89
+ this.basePath = '/api/v1/admin/b2b';
90
+ }
91
+ // ==================== Company Management ====================
92
+ /**
93
+ * Get a paginated list of B2B companies
94
+ */
95
+ async listCompanies(params) {
96
+ return this.http.get(`${this.basePath}/companies`, params);
97
+ }
98
+ /**
99
+ * Get detailed company information by ID
100
+ */
101
+ async getCompany(companyId) {
102
+ return this.http.get(`${this.basePath}/companies/${companyId}`);
103
+ }
104
+ /**
105
+ * Create a new B2B company
106
+ */
107
+ async createCompany(data) {
108
+ return this.http.post(`${this.basePath}/companies`, data);
109
+ }
110
+ /**
111
+ * Update an existing B2B company
112
+ */
113
+ async updateCompany(companyId, data) {
114
+ return this.http.put(`${this.basePath}/companies/${companyId}`, data);
115
+ }
116
+ /**
117
+ * Delete (soft delete) a B2B company
118
+ */
119
+ async deleteCompany(companyId) {
120
+ return this.http.delete(`${this.basePath}/companies/${companyId}`);
121
+ }
122
+ /**
123
+ * Regenerate a company's linking code
124
+ */
125
+ async regenerateCompanyCode(companyId) {
126
+ return this.http.post(`${this.basePath}/companies/${companyId}/regenerate-code`, {});
127
+ }
128
+ /**
129
+ * Assign an account manager to a company
130
+ */
131
+ async assignAccountManager(companyId, data) {
132
+ return this.http.post(`${this.basePath}/companies/${companyId}/account-manager`, data);
133
+ }
134
+ /**
135
+ * Get usage report for a company
136
+ */
137
+ async getUsageReport(companyId, params) {
138
+ return this.http.get(`${this.basePath}/companies/${companyId}/usage-report`, params);
139
+ }
140
+ // ==================== Company Users ====================
141
+ /**
142
+ * Get users for a company
143
+ */
144
+ async listCompanyUsers(companyId, params) {
145
+ return this.http.get(`${this.basePath}/companies/${companyId}/users`, params);
146
+ }
147
+ /**
148
+ * Add a user to a company
149
+ */
150
+ async addCompanyUser(companyId, data) {
151
+ return this.http.post(`${this.basePath}/companies/${companyId}/users`, data);
152
+ }
153
+ /**
154
+ * Update a company user
155
+ */
156
+ async updateCompanyUser(companyId, userId, data) {
157
+ return this.http.put(`${this.basePath}/companies/${companyId}/users/${userId}`, data);
158
+ }
159
+ /**
160
+ * Remove a user from a company
161
+ */
162
+ async removeCompanyUser(companyId, userId) {
163
+ return this.http.delete(`${this.basePath}/companies/${companyId}/users/${userId}`);
164
+ }
165
+ // ==================== Contracts ====================
166
+ /**
167
+ * Get contracts for a company
168
+ */
169
+ async listCompanyContracts(companyId, params) {
170
+ return this.http.get(`${this.basePath}/companies/${companyId}/contracts`, params);
171
+ }
172
+ /**
173
+ * Get contract details
174
+ */
175
+ async getContract(contractId) {
176
+ return this.http.get(`${this.basePath}/contracts/${contractId}`);
177
+ }
178
+ /**
179
+ * Create a new contract for a company
180
+ */
181
+ async createContract(companyId, data) {
182
+ return this.http.post(`${this.basePath}/companies/${companyId}/contracts`, data);
183
+ }
184
+ /**
185
+ * Update a contract
186
+ */
187
+ async updateContract(contractId, data) {
188
+ return this.http.put(`${this.basePath}/contracts/${contractId}`, data);
189
+ }
190
+ /**
191
+ * Terminate a contract
192
+ */
193
+ async terminateContract(contractId, reason) {
194
+ return this.http.post(`${this.basePath}/contracts/${contractId}/terminate?reason=${encodeURIComponent(reason)}`, {});
195
+ }
196
+ // ==================== Properties ====================
197
+ /**
198
+ * Get properties for a company
199
+ */
200
+ async listCompanyProperties(companyId, params) {
201
+ return this.http.get(`${this.basePath}/companies/${companyId}/properties`, params);
202
+ }
203
+ /**
204
+ * Get property details
205
+ */
206
+ async getProperty(propertyId) {
207
+ return this.http.get(`${this.basePath}/properties/${propertyId}`);
208
+ }
209
+ /**
210
+ * Create a new property for a company
211
+ */
212
+ async createProperty(companyId, data) {
213
+ return this.http.post(`${this.basePath}/companies/${companyId}/properties`, data);
214
+ }
215
+ /**
216
+ * Update a property
217
+ */
218
+ async updateProperty(propertyId, data) {
219
+ return this.http.put(`${this.basePath}/properties/${propertyId}`, data);
220
+ }
221
+ /**
222
+ * Delete (soft delete) a property
223
+ */
224
+ async deleteProperty(propertyId) {
225
+ return this.http.delete(`${this.basePath}/properties/${propertyId}`);
226
+ }
227
+ // ==================== Meeting Notes ====================
228
+ /**
229
+ * Get meeting notes for a company
230
+ */
231
+ async listCompanyMeetingNotes(companyId, params) {
232
+ return this.http.get(`${this.basePath}/companies/${companyId}/meeting-notes`, params);
233
+ }
234
+ /**
235
+ * Get meeting note details
236
+ */
237
+ async getMeetingNote(meetingNoteId) {
238
+ return this.http.get(`${this.basePath}/meeting-notes/${meetingNoteId}`);
239
+ }
240
+ /**
241
+ * Create a new meeting note for a company
242
+ */
243
+ async createMeetingNote(companyId, data) {
244
+ return this.http.post(`${this.basePath}/companies/${companyId}/meeting-notes`, data);
245
+ }
246
+ /**
247
+ * Update a meeting note
248
+ */
249
+ async updateMeetingNote(meetingNoteId, data) {
250
+ return this.http.put(`${this.basePath}/meeting-notes/${meetingNoteId}`, data);
251
+ }
252
+ /**
253
+ * Delete a meeting note
254
+ */
255
+ async deleteMeetingNote(meetingNoteId) {
256
+ return this.http.delete(`${this.basePath}/meeting-notes/${meetingNoteId}`);
257
+ }
258
+ }
259
+ exports.AdminB2BApi = AdminB2BApi;
260
+ //# sourceMappingURL=admin-b2b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-b2b.js","sourceRoot":"","sources":["../../../src/api/admin-b2b.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * Admin Finance API
4
+ * Handles financial reporting, reconciliation, and revenue management (admin operations)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AdminFinanceApi = void 0;
8
+ /**
9
+ * Admin Finance API
10
+ * Provides financial reporting, reconciliation, revenue analysis, and outstanding balance management
11
+ */
12
+ class AdminFinanceApi {
13
+ constructor(http) {
14
+ this.http = http;
15
+ this.basePath = '/api/v1/admin/finance';
16
+ }
17
+ // ==================== Transactions ====================
18
+ /**
19
+ * Get all transactions (with filters)
20
+ */
21
+ async listTransactions(params) {
22
+ return this.http.get(`${this.basePath}/transactions`, params);
23
+ }
24
+ /**
25
+ * Get transaction details
26
+ */
27
+ async getTransaction(transactionId) {
28
+ return this.http.get(`${this.basePath}/transactions/${transactionId}`);
29
+ }
30
+ /**
31
+ * Flag a transaction for review
32
+ */
33
+ async flagTransaction(transactionId, data) {
34
+ return this.http.post(`${this.basePath}/transactions/${transactionId}/flag`, data);
35
+ }
36
+ /**
37
+ * Unflag a transaction
38
+ */
39
+ async unflagTransaction(transactionId) {
40
+ return this.http.delete(`${this.basePath}/transactions/${transactionId}/flag`);
41
+ }
42
+ /**
43
+ * Mark a transaction as reconciled
44
+ */
45
+ async markReconciled(transactionId) {
46
+ return this.http.post(`${this.basePath}/transactions/${transactionId}/reconcile`);
47
+ }
48
+ // ==================== Reconciliation ====================
49
+ /**
50
+ * Get reconciliation report
51
+ */
52
+ async getReconciliationReport(params) {
53
+ return this.http.get(`${this.basePath}/reconciliation`, params);
54
+ }
55
+ // ==================== Revenue ====================
56
+ /**
57
+ * Get revenue summary
58
+ */
59
+ async getRevenueSummary(params) {
60
+ return this.http.get(`${this.basePath}/revenue`, params);
61
+ }
62
+ // ==================== Commission ====================
63
+ /**
64
+ * Get commission summary
65
+ */
66
+ async getCommissionSummary(params) {
67
+ return this.http.get(`${this.basePath}/commission`, params);
68
+ }
69
+ // ==================== Outstanding Balances ====================
70
+ /**
71
+ * Get outstanding balances (artisan payables and B2B receivables)
72
+ */
73
+ async getOutstandingBalances(params) {
74
+ return this.http.get(`${this.basePath}/outstanding`, params);
75
+ }
76
+ }
77
+ exports.AdminFinanceApi = AdminFinanceApi;
78
+ //# sourceMappingURL=admin-finance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-finance.js","sourceRoot":"","sources":["../../../src/api/admin-finance.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAyBH;;;GAGG;AACH,MAAa,eAAe;IAG1B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,aAAQ,GAAG,uBAAuB,CAAC;IAEJ,CAAC;IAEjD,yDAAyD;IAEzD;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAkC;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,eAAe,EAC/B,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,aAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,aAAa,EAAE,CACjD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,aAAqB,EACrB,IAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,aAAa,OAAO,EACrD,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,aAAa,OAAO,CACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,aAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,aAAa,YAAY,CAC3D,CAAC;IACJ,CAAC;IAED,2DAA2D;IAE3D;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,MAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,EACjC,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED,oDAAoD;IAEpD;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,UAAU,EAC1B,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED,uDAAuD;IAEvD;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAmC;QAEnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,aAAa,EAC7B,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED,iEAAiE;IAEjE;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,MAAoC;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,cAAc,EAC9B,MAA+D,CAChE,CAAC;IACJ,CAAC;CACF;AAxHD,0CAwHC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Admin Payouts API
4
+ * Handles artisan payout management (admin operations)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AdminPayoutsApi = void 0;
8
+ /**
9
+ * Admin Payouts API
10
+ * Manages artisan payouts - view pending, process weekly, view history, retry failed
11
+ */
12
+ class AdminPayoutsApi {
13
+ constructor(http) {
14
+ this.http = http;
15
+ this.basePath = '/api/v1/admin/payouts';
16
+ }
17
+ // ==================== Pending Payouts ====================
18
+ /**
19
+ * Get pending payouts (artisans waiting to be paid)
20
+ */
21
+ async getPendingPayouts(params) {
22
+ return this.http.get(`${this.basePath}/pending`, params);
23
+ }
24
+ // ==================== Process Payouts ====================
25
+ /**
26
+ * Process weekly payouts for artisans
27
+ * Can be run as dry-run to preview results before actual processing
28
+ */
29
+ async processWeeklyPayouts(data) {
30
+ return this.http.post(`${this.basePath}/process-weekly`, data || {});
31
+ }
32
+ // ==================== Payout History ====================
33
+ /**
34
+ * Get payout history (past payouts)
35
+ */
36
+ async getHistory(params) {
37
+ return this.http.get(`${this.basePath}/history`, params);
38
+ }
39
+ /**
40
+ * Get payout details
41
+ */
42
+ async getPayout(payoutId) {
43
+ return this.http.get(`${this.basePath}/${payoutId}`);
44
+ }
45
+ // ==================== Retry Failed ====================
46
+ /**
47
+ * Retry a failed payout
48
+ */
49
+ async retryPayout(payoutId, data) {
50
+ return this.http.post(`${this.basePath}/${payoutId}/retry`, data || {});
51
+ }
52
+ }
53
+ exports.AdminPayoutsApi = AdminPayoutsApi;
54
+ //# sourceMappingURL=admin-payouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-payouts.js","sourceRoot":"","sources":["../../../src/api/admin-payouts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkBH;;;GAGG;AACH,MAAa,eAAe;IAG1B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,aAAQ,GAAG,uBAAuB,CAAC;IAEJ,CAAC;IAEjD,4DAA4D;IAE5D;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,UAAU,EAC1B,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED,4DAA4D;IAE5D;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CACxB,IAA8B;QAE9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,IAAI,CAAC,QAAQ,iBAAiB,EACjC,IAAI,IAAI,EAAE,CACX,CAAC;IACJ,CAAC;IAED,2DAA2D;IAE3D;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAA+B;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,QAAQ,UAAU,EAC1B,MAA+D,CAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,yDAAyD;IAEzD;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,IAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,QAAQ,EACpC,IAAI,IAAI,EAAE,CACX,CAAC;IACJ,CAAC;CACF;AArED,0CAqEC"}