@osise/api-client 0.0.1 → 0.0.2

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 (160) 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/b2b.d.ts +687 -0
  143. package/dist/types/types/b2b.d.ts.map +1 -0
  144. package/dist/types/types/communication.d.ts +670 -0
  145. package/dist/types/types/communication.d.ts.map +1 -0
  146. package/dist/types/types/enums.d.ts +311 -0
  147. package/dist/types/types/enums.d.ts.map +1 -1
  148. package/dist/types/types/index.d.ts +10 -1
  149. package/dist/types/types/index.d.ts.map +1 -1
  150. package/dist/types/types/job.d.ts +576 -55
  151. package/dist/types/types/job.d.ts.map +1 -1
  152. package/dist/types/types/location.d.ts +74 -0
  153. package/dist/types/types/location.d.ts.map +1 -0
  154. package/dist/types/types/payment.d.ts +281 -0
  155. package/dist/types/types/payment.d.ts.map +1 -0
  156. package/dist/types/types/qc.d.ts +589 -0
  157. package/dist/types/types/qc.d.ts.map +1 -0
  158. package/dist/types/types/support.d.ts +194 -0
  159. package/dist/types/types/support.d.ts.map +1 -0
  160. package/package.json +1 -1
@@ -1,13 +1,42 @@
1
1
  /**
2
2
  * Jobs API
3
- * Handles job requests, quotes, payments, ratings, and disputes
3
+ * Handles job requests, quotes, payments, ratings, disputes, and admin operations
4
4
  */
5
- import { JobStatus, } from '../types';
5
+ import {
6
+ // Enums
7
+ JobStatus, } from '../types';
8
+ // ==================== Service Categories API ====================
9
+ export class ServiceCategoriesApi {
10
+ constructor(http) {
11
+ this.http = http;
12
+ this.basePath = '/api/v1/services/categories';
13
+ }
14
+ /**
15
+ * Get all active service categories
16
+ */
17
+ async list() {
18
+ return this.http.get(this.basePath);
19
+ }
20
+ /**
21
+ * Get a specific service category by ID
22
+ */
23
+ async get(categoryId) {
24
+ return this.http.get(`${this.basePath}/${categoryId}`);
25
+ }
26
+ }
27
+ // ==================== Consumer Jobs API ====================
6
28
  export class JobsApi {
7
29
  constructor(http) {
8
30
  this.http = http;
9
31
  this.basePath = '/api/v1/jobs';
10
32
  }
33
+ // ==================== Service Categories & Estimates ====================
34
+ /**
35
+ * Get a price estimate for a service
36
+ */
37
+ async getEstimate(data) {
38
+ return this.http.post(`${this.basePath}/estimate`, data);
39
+ }
11
40
  // ==================== Consumer Job Operations ====================
12
41
  /**
13
42
  * Create a new job request
@@ -34,17 +63,42 @@ export class JobsApi {
34
63
  return this.http.get(this.basePath, params);
35
64
  }
36
65
  /**
37
- * Cancel a job
66
+ * Get job status with history
38
67
  */
39
- async cancel(jobId, data) {
40
- return this.http.post(`${this.basePath}/${jobId}/cancel`, data);
68
+ async getStatus(jobId) {
69
+ return this.http.get(`${this.basePath}/${jobId}/status`);
41
70
  }
42
71
  /**
43
- * Get job timeline/history
72
+ * Get job updates/events
73
+ */
74
+ async getUpdates(jobId) {
75
+ return this.http.get(`${this.basePath}/${jobId}/updates`);
76
+ }
77
+ /**
78
+ * Get job timeline/history (legacy)
44
79
  */
45
80
  async getTimeline(jobId) {
46
81
  return this.http.get(`${this.basePath}/${jobId}/timeline`);
47
82
  }
83
+ // ==================== Artisan Info ====================
84
+ /**
85
+ * Get assigned artisan for a job
86
+ */
87
+ async getArtisan(jobId) {
88
+ return this.http.get(`${this.basePath}/${jobId}/artisan`);
89
+ }
90
+ /**
91
+ * Get ETA for artisan arrival
92
+ */
93
+ async getEta(jobId) {
94
+ return this.http.get(`${this.basePath}/${jobId}/eta`);
95
+ }
96
+ /**
97
+ * Get artisan's live location
98
+ */
99
+ async getLocation(jobId) {
100
+ return this.http.get(`${this.basePath}/${jobId}/location`);
101
+ }
48
102
  // ==================== Quote Operations (Consumer) ====================
49
103
  /**
50
104
  * Get the current quote for a job
@@ -53,35 +107,53 @@ export class JobsApi {
53
107
  return this.http.get(`${this.basePath}/${jobId}/quote`);
54
108
  }
55
109
  /**
56
- * Approve or reject a quote
110
+ * Approve a quote
111
+ */
112
+ async approveQuote(jobId, data) {
113
+ return this.http.post(`${this.basePath}/${jobId}/quote/approve`, data || {});
114
+ }
115
+ /**
116
+ * Reject a quote
117
+ */
118
+ async rejectQuote(jobId, data) {
119
+ return this.http.post(`${this.basePath}/${jobId}/quote/reject`, data);
120
+ }
121
+ /**
122
+ * Negotiate a quote
123
+ */
124
+ async negotiateQuote(jobId, data) {
125
+ return this.http.post(`${this.basePath}/${jobId}/quote/negotiate`, data);
126
+ }
127
+ /**
128
+ * Approve or reject a quote (legacy)
57
129
  */
58
130
  async respondToQuote(jobId, data) {
59
131
  return this.http.post(`${this.basePath}/${jobId}/quote/respond`, data);
60
132
  }
61
- // ==================== Payment Operations ====================
133
+ // ==================== Job Actions ====================
62
134
  /**
63
- * Get payment details for a job
135
+ * Cancel a job
64
136
  */
65
- async getPayment(jobId) {
66
- return this.http.get(`${this.basePath}/${jobId}/payment`);
137
+ async cancel(jobId, data) {
138
+ return this.http.post(`${this.basePath}/${jobId}/cancel`, data);
67
139
  }
68
140
  /**
69
- * Initiate payment for a job
141
+ * Reschedule a job
70
142
  */
71
- async initiatePayment(jobId, data) {
72
- return this.http.post(`${this.basePath}/${jobId}/payment/initiate`, data);
143
+ async reschedule(jobId, data) {
144
+ return this.http.post(`${this.basePath}/${jobId}/reschedule`, data);
73
145
  }
74
146
  /**
75
- * Verify payment (callback from payment gateway)
147
+ * Escalate a job
76
148
  */
77
- async verifyPayment(jobId, reference) {
78
- return this.http.post(`${this.basePath}/${jobId}/payment/verify`, { reference });
149
+ async escalate(jobId, data) {
150
+ return this.http.post(`${this.basePath}/${jobId}/escalate`, data);
79
151
  }
80
152
  /**
81
- * Mark payment as cash (for cash payments)
153
+ * Confirm job completion
82
154
  */
83
- async markCashPayment(jobId) {
84
- return this.http.post(`${this.basePath}/${jobId}/payment/cash`);
155
+ async confirmCompletion(jobId, data) {
156
+ return this.http.post(`${this.basePath}/${jobId}/confirm-completion`, data || {});
85
157
  }
86
158
  // ==================== Rating Operations ====================
87
159
  /**
@@ -96,6 +168,50 @@ export class JobsApi {
96
168
  async submitRating(jobId, data) {
97
169
  return this.http.post(`${this.basePath}/${jobId}/rating`, data);
98
170
  }
171
+ /**
172
+ * Add a tip for the artisan
173
+ */
174
+ async addTip(jobId, data) {
175
+ return this.http.post(`${this.basePath}/${jobId}/tip`, data);
176
+ }
177
+ // ==================== Issue & Redo ====================
178
+ /**
179
+ * Report an issue with the job
180
+ */
181
+ async reportIssue(jobId, data) {
182
+ return this.http.post(`${this.basePath}/${jobId}/issue`, data);
183
+ }
184
+ /**
185
+ * Request a redo for the job
186
+ */
187
+ async requestRedo(jobId, data) {
188
+ return this.http.post(`${this.basePath}/${jobId}/redo`, data);
189
+ }
190
+ // ==================== Payment Operations ====================
191
+ /**
192
+ * Get payment details for a job
193
+ */
194
+ async getPayment(jobId) {
195
+ return this.http.get(`${this.basePath}/${jobId}/payment`);
196
+ }
197
+ /**
198
+ * Initiate payment for a job
199
+ */
200
+ async initiatePayment(jobId, data) {
201
+ return this.http.post(`${this.basePath}/${jobId}/payment/initiate`, data);
202
+ }
203
+ /**
204
+ * Verify payment (callback from payment gateway)
205
+ */
206
+ async verifyPayment(jobId, reference) {
207
+ return this.http.post(`${this.basePath}/${jobId}/payment/verify`, { reference });
208
+ }
209
+ /**
210
+ * Mark payment as cash (for cash payments)
211
+ */
212
+ async markCashPayment(jobId) {
213
+ return this.http.post(`${this.basePath}/${jobId}/payment/cash`);
214
+ }
99
215
  // ==================== Dispute Operations ====================
100
216
  /**
101
217
  * Get dispute for a job
@@ -110,13 +226,21 @@ export class JobsApi {
110
226
  return this.http.post(`${this.basePath}/${jobId}/dispute`, data);
111
227
  }
112
228
  }
229
+ // ==================== Artisan Jobs API ====================
113
230
  export class ArtisanJobsApi {
114
231
  constructor(http) {
115
232
  this.http = http;
116
233
  this.basePath = '/api/v1/artisans/jobs';
117
234
  }
235
+ // ==================== Job Discovery & Listing ====================
236
+ /**
237
+ * Get available jobs for the artisan
238
+ */
239
+ async getAvailable(params) {
240
+ return this.http.get(`${this.basePath}/available`, params);
241
+ }
118
242
  /**
119
- * Get assigned jobs for artisan (paginated with filters)
243
+ * Get artisan's assigned jobs (paginated with filters)
120
244
  */
121
245
  async list(params) {
122
246
  return this.http.get(this.basePath, params);
@@ -128,47 +252,62 @@ export class ArtisanJobsApi {
128
252
  return this.http.get(`${this.basePath}/${jobId}`);
129
253
  }
130
254
  /**
131
- * Accept an assigned job
255
+ * Get artisan's job history
132
256
  */
133
- async accept(jobId) {
134
- return this.http.post(`${this.basePath}/${jobId}/accept`);
257
+ async getHistory(params) {
258
+ return this.http.get(`${this.basePath}/history`, params);
135
259
  }
260
+ // ==================== Job Acceptance ====================
136
261
  /**
137
- * Decline an assigned job
262
+ * Accept an available job
138
263
  */
139
- async decline(jobId, reason) {
140
- return this.http.post(`${this.basePath}/${jobId}/decline`, { reason });
264
+ async accept(jobId, data) {
265
+ return this.http.post(`${this.basePath}/${jobId}/accept`, data || {});
141
266
  }
142
267
  /**
143
- * Update job status (en_route, arrived, in_progress, completed)
268
+ * Decline an available job
144
269
  */
145
- async updateStatus(jobId, data) {
146
- return this.http.patch(`${this.basePath}/${jobId}/status`, data);
270
+ async decline(jobId, data) {
271
+ return this.http.post(`${this.basePath}/${jobId}/decline`, data);
147
272
  }
148
273
  /**
149
- * Start traveling to job location
274
+ * Acknowledge an auto-assigned job
150
275
  */
151
- async startEnRoute(jobId) {
152
- return this.updateStatus(jobId, { status: JobStatus.ArtisanEnRoute });
276
+ async acknowledge(jobId, data) {
277
+ return this.http.post(`${this.basePath}/${jobId}/acknowledge`, data || {});
278
+ }
279
+ // ==================== Job Progress ====================
280
+ /**
281
+ * Mark as en route to job location
282
+ */
283
+ async markEnRoute(jobId, data) {
284
+ return this.http.post(`${this.basePath}/${jobId}/en-route`, data);
153
285
  }
154
286
  /**
155
287
  * Mark arrival at job location (GPS verified)
156
288
  */
157
- async markArrived(jobId, location) {
158
- return this.updateStatus(jobId, { status: JobStatus.Arrived, location });
289
+ async markArrived(jobId, data) {
290
+ return this.http.post(`${this.basePath}/${jobId}/arrive`, data);
159
291
  }
160
292
  /**
161
- * Start work on the job
293
+ * Update location while en route
162
294
  */
163
- async startWork(jobId) {
164
- return this.updateStatus(jobId, { status: JobStatus.InProgress });
295
+ async updateLocation(jobId, data) {
296
+ return this.http.patch(`${this.basePath}/${jobId}/location`, data);
297
+ }
298
+ /**
299
+ * Send a progress update
300
+ */
301
+ async sendUpdate(jobId, data) {
302
+ return this.http.post(`${this.basePath}/${jobId}/update`, data);
165
303
  }
166
304
  /**
167
305
  * Mark job as completed
168
306
  */
169
- async complete(jobId, notes) {
170
- return this.updateStatus(jobId, { status: JobStatus.Completed, notes });
307
+ async markComplete(jobId, data) {
308
+ return this.http.post(`${this.basePath}/${jobId}/complete`, data || {});
171
309
  }
310
+ // ==================== Quote Operations ====================
172
311
  /**
173
312
  * Submit a quote for the job
174
313
  */
@@ -182,10 +321,42 @@ export class ArtisanJobsApi {
182
321
  return this.http.put(`${this.basePath}/${jobId}/quote`, data);
183
322
  }
184
323
  /**
185
- * Update location while en route
324
+ * Request additional materials
186
325
  */
187
- async updateLocation(jobId, data) {
188
- return this.http.post(`${this.basePath}/${jobId}/location`, data);
326
+ async requestMaterials(jobId, data) {
327
+ return this.http.post(`${this.basePath}/${jobId}/materials`, data);
328
+ }
329
+ // ==================== Payment ====================
330
+ /**
331
+ * Confirm cash payment received
332
+ */
333
+ async confirmCashReceived(jobId, data) {
334
+ return this.http.post(`${this.basePath}/${jobId}/cash-received`, data);
335
+ }
336
+ // ==================== Legacy Methods (for backwards compatibility) ====================
337
+ /**
338
+ * Update job status (legacy)
339
+ */
340
+ async updateStatus(jobId, data) {
341
+ return this.http.patch(`${this.basePath}/${jobId}/status`, data);
342
+ }
343
+ /**
344
+ * Start traveling to job location (legacy helper)
345
+ */
346
+ async startEnRoute(jobId) {
347
+ return this.updateStatus(jobId, { status: JobStatus.ArtisanEnRoute });
348
+ }
349
+ /**
350
+ * Start work on the job (legacy helper)
351
+ */
352
+ async startWork(jobId) {
353
+ return this.updateStatus(jobId, { status: JobStatus.InProgress });
354
+ }
355
+ /**
356
+ * Mark job as completed (legacy helper)
357
+ */
358
+ async complete(jobId, notes) {
359
+ return this.updateStatus(jobId, { status: JobStatus.Completed, notes });
189
360
  }
190
361
  /**
191
362
  * Respond to a consumer review
@@ -194,4 +365,94 @@ export class ArtisanJobsApi {
194
365
  return this.http.post(`${this.basePath}/${jobId}/review/respond`, { response });
195
366
  }
196
367
  }
368
+ // ==================== Admin Jobs API ====================
369
+ export class AdminJobsApi {
370
+ constructor(http) {
371
+ this.http = http;
372
+ this.basePath = '/api/v1/admin/jobs';
373
+ }
374
+ // ==================== Job Queue ====================
375
+ /**
376
+ * Get the job queue for dispatch
377
+ */
378
+ async getQueue(params) {
379
+ return this.http.get(`${this.basePath}/queue`, params);
380
+ }
381
+ /**
382
+ * Get a specific job with admin details
383
+ */
384
+ async get(jobId) {
385
+ return this.http.get(`${this.basePath}/${jobId}`);
386
+ }
387
+ /**
388
+ * Get all active jobs
389
+ */
390
+ async getActive(params) {
391
+ return this.http.get(`${this.basePath}/active`, params);
392
+ }
393
+ // ==================== Artisan Selection ====================
394
+ /**
395
+ * Get available artisans for a job
396
+ */
397
+ async getAvailableArtisans(jobId) {
398
+ return this.http.get(`${this.basePath}/${jobId}/artisans/available`);
399
+ }
400
+ /**
401
+ * Get system-suggested artisans for a job
402
+ */
403
+ async getSuggestedArtisans(jobId) {
404
+ return this.http.get(`${this.basePath}/${jobId}/artisans/suggested`);
405
+ }
406
+ // ==================== Job Assignment ====================
407
+ /**
408
+ * Assign an artisan to a job (manual dispatch)
409
+ */
410
+ async assignArtisan(jobId, data) {
411
+ return this.http.post(`${this.basePath}/${jobId}/assign`, data);
412
+ }
413
+ /**
414
+ * Broadcast a job to multiple artisans
415
+ */
416
+ async broadcast(jobId, data) {
417
+ return this.http.post(`${this.basePath}/${jobId}/broadcast`, data);
418
+ }
419
+ /**
420
+ * Reassign a job to a different artisan
421
+ */
422
+ async reassign(jobId, data) {
423
+ return this.http.post(`${this.basePath}/${jobId}/reassign`, data);
424
+ }
425
+ // ==================== Job Management ====================
426
+ /**
427
+ * Update job priority
428
+ */
429
+ async updatePriority(jobId, data) {
430
+ return this.http.patch(`${this.basePath}/${jobId}/priority`, data);
431
+ }
432
+ /**
433
+ * Add an internal note to a job
434
+ */
435
+ async addNote(jobId, data) {
436
+ return this.http.post(`${this.basePath}/${jobId}/notes`, data);
437
+ }
438
+ /**
439
+ * Update job ETA
440
+ */
441
+ async updateEta(jobId, data) {
442
+ return this.http.patch(`${this.basePath}/${jobId}/eta`, data);
443
+ }
444
+ // ==================== Contact Logging ====================
445
+ /**
446
+ * Log a contact attempt with the customer
447
+ */
448
+ async logCustomerContact(jobId, data) {
449
+ return this.http.post(`${this.basePath}/${jobId}/contact-customer`, data);
450
+ }
451
+ /**
452
+ * Log a contact attempt with the artisan
453
+ */
454
+ async logArtisanContact(jobId, data) {
455
+ return this.http.post(`${this.basePath}/${jobId}/contact-artisan`, data);
456
+ }
457
+ }
197
458
  //# sourceMappingURL=jobs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/api/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/api/jobs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Location API
3
+ * Handles geocoding, reverse geocoding, distance calculation, and service area queries
4
+ */
5
+ export class LocationApi {
6
+ constructor(http) {
7
+ this.http = http;
8
+ this.basePath = '/api/v1/location';
9
+ }
10
+ // ==================== Geocoding ====================
11
+ /**
12
+ * Geocode an address to coordinates
13
+ *
14
+ * Converts a street address to latitude/longitude coordinates.
15
+ * Note: Full geocoding requires external service integration.
16
+ *
17
+ * @param data - The address to geocode
18
+ * @returns Geocoding result with coordinates
19
+ */
20
+ async geocode(data) {
21
+ return this.http.post(`${this.basePath}/geocode`, data);
22
+ }
23
+ /**
24
+ * Reverse geocode coordinates to an address
25
+ *
26
+ * Converts latitude/longitude coordinates to an address.
27
+ * Returns the nearest known service area information.
28
+ *
29
+ * @param data - The coordinates to reverse geocode
30
+ * @returns Reverse geocoding result with address components
31
+ */
32
+ async reverseGeocode(data) {
33
+ return this.http.post(`${this.basePath}/reverse-geocode`, data);
34
+ }
35
+ // ==================== Distance Calculation ====================
36
+ /**
37
+ * Calculate distance between two points
38
+ *
39
+ * Calculates the straight-line (Haversine) distance between two coordinates.
40
+ * Also provides an estimated travel time based on average city driving speed.
41
+ *
42
+ * @param data - The origin and destination coordinates
43
+ * @returns Distance calculation result
44
+ */
45
+ async calculateDistance(data) {
46
+ return this.http.post(`${this.basePath}/distance`, data);
47
+ }
48
+ // ==================== Service Areas ====================
49
+ /**
50
+ * Get all service areas
51
+ *
52
+ * Returns a list of all active service areas where Osise operates.
53
+ * Can be filtered by state or city.
54
+ *
55
+ * @param params - Optional filters (state, city)
56
+ * @returns List of service areas
57
+ */
58
+ async getServiceAreas(params) {
59
+ return this.http.get(`${this.basePath}/service-areas`, params);
60
+ }
61
+ /**
62
+ * Find nearby service areas
63
+ *
64
+ * Returns service areas within a specified radius of the given coordinates.
65
+ * Useful for determining if a location is serviceable.
66
+ *
67
+ * @param data - The location and search radius
68
+ * @returns List of nearby service areas with distances
69
+ */
70
+ async getNearbyAreas(data) {
71
+ return this.http.post(`${this.basePath}/service-areas/nearby`, data);
72
+ }
73
+ /**
74
+ * Check if a location is within a service area
75
+ *
76
+ * Checks if the given coordinates are within a supported service area.
77
+ * Returns the matching area if found, or nearby areas if not.
78
+ *
79
+ * @param latitude - Latitude coordinate
80
+ * @param longitude - Longitude coordinate
81
+ * @returns Service area check result
82
+ */
83
+ async checkServiceArea(latitude, longitude) {
84
+ return this.http.get(`${this.basePath}/service-areas/check`, { latitude, longitude });
85
+ }
86
+ }
87
+ //# sourceMappingURL=location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/api/location.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,OAAO,WAAW;IAGpB,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF5B,aAAQ,GAAG,kBAAkB,CAAC;IAEE,CAAC;IAElD,sDAAsD;IAEtD;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,IAAuB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqB,GAAG,IAAI,CAAC,QAAQ,UAAU,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,IAA8B;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,iEAAiE;IAEjE;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAiC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,GAAG,IAAI,CAAC,QAAQ,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,0DAA0D;IAE1D;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CAAC,MAA0C;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,GAAG,IAAI,CAAC,QAAQ,gBAAgB,EAChC,MAA+D,CAClE,CAAC;IACN,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,IAA8B;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,GAAG,IAAI,CAAC,QAAQ,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACjG,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,GAAG,IAAI,CAAC,QAAQ,sBAAsB,EACtC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAC1B,CAAC;IACN,CAAC;CACJ"}