@instockng/api-client 1.0.11 → 1.0.12

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 (169) hide show
  1. package/package.json +2 -2
  2. package/dist/apps/backend/src/http-app.d.ts +0 -40
  3. package/dist/apps/backend/src/http-app.js +0 -134
  4. package/dist/apps/backend/src/lib/brand-response.d.ts +0 -16
  5. package/dist/apps/backend/src/lib/brand-response.js +0 -8
  6. package/dist/apps/backend/src/lib/cart-helpers.d.ts +0 -286
  7. package/dist/apps/backend/src/lib/cart-helpers.js +0 -121
  8. package/dist/apps/backend/src/lib/cart-recovery.d.ts +0 -30
  9. package/dist/apps/backend/src/lib/cart-recovery.js +0 -147
  10. package/dist/apps/backend/src/lib/cart-response.d.ts +0 -123
  11. package/dist/apps/backend/src/lib/cart-response.js +0 -150
  12. package/dist/apps/backend/src/lib/clerk.d.ts +0 -18
  13. package/dist/apps/backend/src/lib/clerk.js +0 -190
  14. package/dist/apps/backend/src/lib/delivery-zone-response.d.ts +0 -66
  15. package/dist/apps/backend/src/lib/delivery-zone-response.js +0 -24
  16. package/dist/apps/backend/src/lib/discount-code-response.d.ts +0 -44
  17. package/dist/apps/backend/src/lib/discount-code-response.js +0 -19
  18. package/dist/apps/backend/src/lib/discount.d.ts +0 -20
  19. package/dist/apps/backend/src/lib/discount.js +0 -35
  20. package/dist/apps/backend/src/lib/inventory.d.ts +0 -26
  21. package/dist/apps/backend/src/lib/inventory.js +0 -160
  22. package/dist/apps/backend/src/lib/meta-capi.d.ts +0 -53
  23. package/dist/apps/backend/src/lib/meta-capi.js +0 -151
  24. package/dist/apps/backend/src/lib/openapi.d.ts +0 -36
  25. package/dist/apps/backend/src/lib/openapi.js +0 -69
  26. package/dist/apps/backend/src/lib/order-recovery.d.ts +0 -465
  27. package/dist/apps/backend/src/lib/order-recovery.js +0 -378
  28. package/dist/apps/backend/src/lib/order-response.d.ts +0 -140
  29. package/dist/apps/backend/src/lib/order-response.js +0 -61
  30. package/dist/apps/backend/src/lib/pricing.d.ts +0 -39
  31. package/dist/apps/backend/src/lib/pricing.js +0 -62
  32. package/dist/apps/backend/src/lib/prisma.d.ts +0 -9
  33. package/dist/apps/backend/src/lib/prisma.js +0 -30
  34. package/dist/apps/backend/src/lib/product-response.d.ts +0 -84
  35. package/dist/apps/backend/src/lib/product-response.js +0 -29
  36. package/dist/apps/backend/src/lib/sentry.d.ts +0 -48
  37. package/dist/apps/backend/src/lib/sentry.js +0 -180
  38. package/dist/apps/backend/src/lib/utils.d.ts +0 -32
  39. package/dist/apps/backend/src/lib/utils.js +0 -63
  40. package/dist/apps/backend/src/middleware/clerk-auth.d.ts +0 -8
  41. package/dist/apps/backend/src/middleware/clerk-auth.js +0 -89
  42. package/dist/apps/backend/src/middleware/cors.d.ts +0 -8
  43. package/dist/apps/backend/src/middleware/cors.js +0 -11
  44. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.d.ts +0 -62
  45. package/dist/apps/backend/src/notifications/producers/meta-capi-producer.js +0 -180
  46. package/dist/apps/backend/src/notifications/producers/order-notification.d.ts +0 -9
  47. package/dist/apps/backend/src/notifications/producers/order-notification.js +0 -18
  48. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.d.ts +0 -10
  49. package/dist/apps/backend/src/notifications/producers/prospect-recovery-notification.js +0 -11
  50. package/dist/apps/backend/src/routes/admin/abandoned-carts.d.ts +0 -609
  51. package/dist/apps/backend/src/routes/admin/abandoned-carts.js +0 -194
  52. package/dist/apps/backend/src/routes/admin/brands.d.ts +0 -183
  53. package/dist/apps/backend/src/routes/admin/brands.js +0 -118
  54. package/dist/apps/backend/src/routes/admin/customers.d.ts +0 -310
  55. package/dist/apps/backend/src/routes/admin/customers.js +0 -39
  56. package/dist/apps/backend/src/routes/admin/delivery-zones.d.ts +0 -454
  57. package/dist/apps/backend/src/routes/admin/delivery-zones.js +0 -300
  58. package/dist/apps/backend/src/routes/admin/discount-codes.d.ts +0 -488
  59. package/dist/apps/backend/src/routes/admin/discount-codes.js +0 -418
  60. package/dist/apps/backend/src/routes/admin/inventory.d.ts +0 -273
  61. package/dist/apps/backend/src/routes/admin/inventory.js +0 -199
  62. package/dist/apps/backend/src/routes/admin/orders.d.ts +0 -1792
  63. package/dist/apps/backend/src/routes/admin/orders.js +0 -552
  64. package/dist/apps/backend/src/routes/admin/products.d.ts +0 -868
  65. package/dist/apps/backend/src/routes/admin/products.js +0 -126
  66. package/dist/apps/backend/src/routes/admin/stats.d.ts +0 -292
  67. package/dist/apps/backend/src/routes/admin/stats.js +0 -55
  68. package/dist/apps/backend/src/routes/admin/variants.d.ts +0 -239
  69. package/dist/apps/backend/src/routes/admin/variants.js +0 -197
  70. package/dist/apps/backend/src/routes/admin/warehouses.d.ts +0 -375
  71. package/dist/apps/backend/src/routes/admin/warehouses.js +0 -123
  72. package/dist/apps/backend/src/routes/public/brands.d.ts +0 -41
  73. package/dist/apps/backend/src/routes/public/brands.js +0 -39
  74. package/dist/apps/backend/src/routes/public/carts.d.ts +0 -2675
  75. package/dist/apps/backend/src/routes/public/carts.js +0 -778
  76. package/dist/apps/backend/src/routes/public/delivery-zones.d.ts +0 -37
  77. package/dist/apps/backend/src/routes/public/delivery-zones.js +0 -64
  78. package/dist/apps/backend/src/routes/public/orders.d.ts +0 -613
  79. package/dist/apps/backend/src/routes/public/orders.js +0 -184
  80. package/dist/apps/backend/src/routes/public/products.d.ts +0 -453
  81. package/dist/apps/backend/src/routes/public/products.js +0 -133
  82. package/dist/apps/backend/src/types/index.d.ts +0 -43
  83. package/dist/apps/backend/src/types/index.js +0 -2
  84. package/dist/apps/backend/src/validators/brand.d.ts +0 -21
  85. package/dist/apps/backend/src/validators/brand.js +0 -19
  86. package/dist/apps/backend/src/validators/delivery-zone.d.ts +0 -35
  87. package/dist/apps/backend/src/validators/delivery-zone.js +0 -55
  88. package/dist/apps/backend/src/validators/discount-code.d.ts +0 -74
  89. package/dist/apps/backend/src/validators/discount-code.js +0 -50
  90. package/dist/apps/backend/src/validators/inventory.d.ts +0 -20
  91. package/dist/apps/backend/src/validators/inventory.js +0 -15
  92. package/dist/apps/backend/src/validators/order.d.ts +0 -58
  93. package/dist/apps/backend/src/validators/order.js +0 -62
  94. package/dist/apps/backend/src/validators/product.d.ts +0 -18
  95. package/dist/apps/backend/src/validators/product.js +0 -19
  96. package/dist/apps/backend/src/validators/variant.d.ts +0 -19
  97. package/dist/apps/backend/src/validators/variant.js +0 -19
  98. package/dist/apps/backend/src/validators/warehouse.d.ts +0 -15
  99. package/dist/apps/backend/src/validators/warehouse.js +0 -15
  100. /package/dist/{packages/api-client/src/backend-types.d.ts → backend-types.d.ts} +0 -0
  101. /package/dist/{packages/api-client/src/backend-types.js → backend-types.js} +0 -0
  102. /package/dist/{packages/api-client/src/client.d.ts → client.d.ts} +0 -0
  103. /package/dist/{packages/api-client/src/client.js → client.js} +0 -0
  104. /package/dist/{packages/api-client/src/enum-types.d.ts → enum-types.d.ts} +0 -0
  105. /package/dist/{packages/api-client/src/enum-types.js → enum-types.js} +0 -0
  106. /package/dist/{packages/api-client/src/fetchers → fetchers}/brands.d.ts +0 -0
  107. /package/dist/{packages/api-client/src/fetchers → fetchers}/brands.js +0 -0
  108. /package/dist/{packages/api-client/src/fetchers → fetchers}/carts.d.ts +0 -0
  109. /package/dist/{packages/api-client/src/fetchers → fetchers}/carts.js +0 -0
  110. /package/dist/{packages/api-client/src/fetchers → fetchers}/delivery-zones.d.ts +0 -0
  111. /package/dist/{packages/api-client/src/fetchers → fetchers}/delivery-zones.js +0 -0
  112. /package/dist/{packages/api-client/src/fetchers → fetchers}/index.d.ts +0 -0
  113. /package/dist/{packages/api-client/src/fetchers → fetchers}/index.js +0 -0
  114. /package/dist/{packages/api-client/src/fetchers → fetchers}/orders.d.ts +0 -0
  115. /package/dist/{packages/api-client/src/fetchers → fetchers}/orders.js +0 -0
  116. /package/dist/{packages/api-client/src/fetchers → fetchers}/products.d.ts +0 -0
  117. /package/dist/{packages/api-client/src/fetchers → fetchers}/products.js +0 -0
  118. /package/dist/{packages/api-client/src/hooks → hooks}/admin/abandoned-carts.d.ts +0 -0
  119. /package/dist/{packages/api-client/src/hooks → hooks}/admin/abandoned-carts.js +0 -0
  120. /package/dist/{packages/api-client/src/hooks → hooks}/admin/brands.d.ts +0 -0
  121. /package/dist/{packages/api-client/src/hooks → hooks}/admin/brands.js +0 -0
  122. /package/dist/{packages/api-client/src/hooks → hooks}/admin/customers.d.ts +0 -0
  123. /package/dist/{packages/api-client/src/hooks → hooks}/admin/customers.js +0 -0
  124. /package/dist/{packages/api-client/src/hooks → hooks}/admin/delivery-zones.d.ts +0 -0
  125. /package/dist/{packages/api-client/src/hooks → hooks}/admin/delivery-zones.js +0 -0
  126. /package/dist/{packages/api-client/src/hooks → hooks}/admin/discount-codes.d.ts +0 -0
  127. /package/dist/{packages/api-client/src/hooks → hooks}/admin/discount-codes.js +0 -0
  128. /package/dist/{packages/api-client/src/hooks → hooks}/admin/index.d.ts +0 -0
  129. /package/dist/{packages/api-client/src/hooks → hooks}/admin/index.js +0 -0
  130. /package/dist/{packages/api-client/src/hooks → hooks}/admin/inventory.d.ts +0 -0
  131. /package/dist/{packages/api-client/src/hooks → hooks}/admin/inventory.js +0 -0
  132. /package/dist/{packages/api-client/src/hooks → hooks}/admin/orders.d.ts +0 -0
  133. /package/dist/{packages/api-client/src/hooks → hooks}/admin/orders.js +0 -0
  134. /package/dist/{packages/api-client/src/hooks → hooks}/admin/products.d.ts +0 -0
  135. /package/dist/{packages/api-client/src/hooks → hooks}/admin/products.js +0 -0
  136. /package/dist/{packages/api-client/src/hooks → hooks}/admin/stats.d.ts +0 -0
  137. /package/dist/{packages/api-client/src/hooks → hooks}/admin/stats.js +0 -0
  138. /package/dist/{packages/api-client/src/hooks → hooks}/admin/variants.d.ts +0 -0
  139. /package/dist/{packages/api-client/src/hooks → hooks}/admin/variants.js +0 -0
  140. /package/dist/{packages/api-client/src/hooks → hooks}/admin/warehouses.d.ts +0 -0
  141. /package/dist/{packages/api-client/src/hooks → hooks}/admin/warehouses.js +0 -0
  142. /package/dist/{packages/api-client/src/hooks → hooks}/public/brands.d.ts +0 -0
  143. /package/dist/{packages/api-client/src/hooks → hooks}/public/brands.js +0 -0
  144. /package/dist/{packages/api-client/src/hooks → hooks}/public/carts.d.ts +0 -0
  145. /package/dist/{packages/api-client/src/hooks → hooks}/public/carts.js +0 -0
  146. /package/dist/{packages/api-client/src/hooks → hooks}/public/delivery-zones.d.ts +0 -0
  147. /package/dist/{packages/api-client/src/hooks → hooks}/public/delivery-zones.js +0 -0
  148. /package/dist/{packages/api-client/src/hooks → hooks}/public/index.d.ts +0 -0
  149. /package/dist/{packages/api-client/src/hooks → hooks}/public/index.js +0 -0
  150. /package/dist/{packages/api-client/src/hooks → hooks}/public/orders.d.ts +0 -0
  151. /package/dist/{packages/api-client/src/hooks → hooks}/public/orders.js +0 -0
  152. /package/dist/{packages/api-client/src/hooks → hooks}/public/products.d.ts +0 -0
  153. /package/dist/{packages/api-client/src/hooks → hooks}/public/products.js +0 -0
  154. /package/dist/{packages/api-client/src/hooks → hooks}/use-query-unwrapped.d.ts +0 -0
  155. /package/dist/{packages/api-client/src/hooks → hooks}/use-query-unwrapped.js +0 -0
  156. /package/dist/{packages/api-client/src/hooks → hooks}/useApiConfig.d.ts +0 -0
  157. /package/dist/{packages/api-client/src/hooks → hooks}/useApiConfig.js +0 -0
  158. /package/dist/{packages/api-client/src/index.d.ts → index.d.ts} +0 -0
  159. /package/dist/{packages/api-client/src/index.js → index.js} +0 -0
  160. /package/dist/{packages/api-client/src/provider.d.ts → provider.d.ts} +0 -0
  161. /package/dist/{packages/api-client/src/provider.js → provider.js} +0 -0
  162. /package/dist/{packages/api-client/src/rpc-client.d.ts → rpc-client.d.ts} +0 -0
  163. /package/dist/{packages/api-client/src/rpc-client.js → rpc-client.js} +0 -0
  164. /package/dist/{packages/api-client/src/rpc-types.d.ts → rpc-types.d.ts} +0 -0
  165. /package/dist/{packages/api-client/src/rpc-types.js → rpc-types.js} +0 -0
  166. /package/dist/{packages/api-client/src/types.d.ts → types.d.ts} +0 -0
  167. /package/dist/{packages/api-client/src/types.js → types.js} +0 -0
  168. /package/dist/{packages/api-client/src/utils → utils}/query-keys.d.ts +0 -0
  169. /package/dist/{packages/api-client/src/utils → utils}/query-keys.js +0 -0
@@ -1,310 +0,0 @@
1
- import { AppContext } from '../../types';
2
- declare const app: import("hono/hono-base").HonoBase<AppContext, {
3
- "/history": {
4
- $get: {
5
- input: {};
6
- output: {
7
- error: {
8
- code: string;
9
- message: string;
10
- };
11
- };
12
- outputFormat: "json";
13
- status: 400;
14
- } | {
15
- input: {};
16
- output: {
17
- customer: any;
18
- orders: never;
19
- };
20
- outputFormat: "json";
21
- status: import("hono/utils/http-status").ContentfulStatusCode;
22
- } | {
23
- input: {};
24
- output: {
25
- customer: {
26
- firstName: string;
27
- lastName: string;
28
- phone: string;
29
- totalOrders: number;
30
- totalSpent: number;
31
- };
32
- orders: {
33
- subtotal: number;
34
- deliveryCharge: number;
35
- totalPrice: number;
36
- discountAmount: number;
37
- createdAt: string;
38
- updatedAt: string;
39
- deletedAt: string;
40
- prospectSince: string;
41
- lastRecoveryAttemptAt: string;
42
- brand: {
43
- createdAt: string;
44
- updatedAt: string;
45
- deletedAt: string;
46
- id: string;
47
- name: string;
48
- slug: string;
49
- logoUrl: string | null;
50
- siteUrl: string;
51
- domain: string;
52
- metaPixelId: string | null;
53
- paystackPublicKey: string | null;
54
- paystackSecretKey: string | null;
55
- };
56
- deliveryZone: {
57
- deliveryCost: number;
58
- freeShippingThreshold: number;
59
- createdAt: string;
60
- updatedAt: string;
61
- deletedAt: string;
62
- state: {
63
- createdAt: string;
64
- updatedAt: string;
65
- deletedAt: string;
66
- id: string;
67
- name: string;
68
- isActive: boolean;
69
- };
70
- id: string;
71
- name: string;
72
- brandId: string | null;
73
- stateId: string;
74
- allowCOD: boolean;
75
- allowOnline: boolean;
76
- waybillOnly: boolean;
77
- estimatedDays: number | null;
78
- noteTitle: string | null;
79
- noteContent: string | null;
80
- isActive: boolean;
81
- };
82
- items: {
83
- priceAtPurchase: number;
84
- variant: {
85
- price: number;
86
- createdAt: string;
87
- updatedAt: string;
88
- deletedAt: string;
89
- product: {
90
- createdAt: string;
91
- updatedAt: string;
92
- deletedAt: string;
93
- id: string;
94
- name: string;
95
- slug: string;
96
- brandId: string;
97
- isActive: boolean;
98
- description: string | null;
99
- thumbnailUrl: string | null;
100
- quantityDiscounts: string | number | boolean | {
101
- [x: string]: string | number | boolean | /*elided*/ any | {
102
- [x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
103
- length: number;
104
- toString: never;
105
- toLocaleString: never;
106
- pop: never;
107
- push: never;
108
- concat: never;
109
- join: never;
110
- reverse: never;
111
- shift: never;
112
- slice: never;
113
- sort: never;
114
- splice: never;
115
- unshift: never;
116
- indexOf: never;
117
- lastIndexOf: never;
118
- every: never;
119
- some: never;
120
- forEach: never;
121
- map: never;
122
- filter: never;
123
- reduce: never;
124
- reduceRight: never;
125
- find: never;
126
- findIndex: never;
127
- fill: never;
128
- copyWithin: never;
129
- entries: never;
130
- keys: never;
131
- values: never;
132
- includes: never;
133
- flatMap: never;
134
- flat: never;
135
- [Symbol.iterator]: never;
136
- readonly [Symbol.unscopables]: {
137
- [x: number]: boolean;
138
- length?: boolean;
139
- toString?: boolean;
140
- toLocaleString?: boolean;
141
- pop?: boolean;
142
- push?: boolean;
143
- concat?: boolean;
144
- join?: boolean;
145
- reverse?: boolean;
146
- shift?: boolean;
147
- slice?: boolean;
148
- sort?: boolean;
149
- splice?: boolean;
150
- unshift?: boolean;
151
- indexOf?: boolean;
152
- lastIndexOf?: boolean;
153
- every?: boolean;
154
- some?: boolean;
155
- forEach?: boolean;
156
- map?: boolean;
157
- filter?: boolean;
158
- reduce?: boolean;
159
- reduceRight?: boolean;
160
- find?: boolean;
161
- findIndex?: boolean;
162
- fill?: boolean;
163
- copyWithin?: boolean;
164
- entries?: boolean;
165
- keys?: boolean;
166
- values?: boolean;
167
- includes?: boolean;
168
- flatMap?: boolean;
169
- flat?: boolean;
170
- };
171
- };
172
- } | {
173
- [x: number]: string | number | boolean | {
174
- [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
175
- } | /*elided*/ any;
176
- length: number;
177
- toString: never;
178
- toLocaleString: never;
179
- pop: never;
180
- push: never;
181
- concat: never;
182
- join: never;
183
- reverse: never;
184
- shift: never;
185
- slice: never;
186
- sort: never;
187
- splice: never;
188
- unshift: never;
189
- indexOf: never;
190
- lastIndexOf: never;
191
- every: never;
192
- some: never;
193
- forEach: never;
194
- map: never;
195
- filter: never;
196
- reduce: never;
197
- reduceRight: never;
198
- find: never;
199
- findIndex: never;
200
- fill: never;
201
- copyWithin: never;
202
- entries: never;
203
- keys: never;
204
- values: never;
205
- includes: never;
206
- flatMap: never;
207
- flat: never;
208
- [Symbol.iterator]: never;
209
- readonly [Symbol.unscopables]: {
210
- [x: number]: boolean;
211
- length?: boolean;
212
- toString?: boolean;
213
- toLocaleString?: boolean;
214
- pop?: boolean;
215
- push?: boolean;
216
- concat?: boolean;
217
- join?: boolean;
218
- reverse?: boolean;
219
- shift?: boolean;
220
- slice?: boolean;
221
- sort?: boolean;
222
- splice?: boolean;
223
- unshift?: boolean;
224
- indexOf?: boolean;
225
- lastIndexOf?: boolean;
226
- every?: boolean;
227
- some?: boolean;
228
- forEach?: boolean;
229
- map?: boolean;
230
- filter?: boolean;
231
- reduce?: boolean;
232
- reduceRight?: boolean;
233
- find?: boolean;
234
- findIndex?: boolean;
235
- fill?: boolean;
236
- copyWithin?: boolean;
237
- entries?: boolean;
238
- keys?: boolean;
239
- values?: boolean;
240
- includes?: boolean;
241
- flatMap?: boolean;
242
- flat?: boolean;
243
- };
244
- };
245
- };
246
- id: string;
247
- name: string | null;
248
- isActive: boolean;
249
- thumbnailUrl: string | null;
250
- productId: string;
251
- sku: string;
252
- trackInventory: boolean;
253
- lowStockThreshold: number | null;
254
- };
255
- warehouse: {
256
- createdAt: string;
257
- updatedAt: string;
258
- deletedAt: string;
259
- id: string;
260
- name: string;
261
- isActive: boolean;
262
- address: string | null;
263
- city: string | null;
264
- state: string | null;
265
- };
266
- id: string;
267
- orderId: string;
268
- variantId: string;
269
- warehouseId: string | null;
270
- quantity: number;
271
- }[];
272
- email: string | null;
273
- id: string;
274
- brandId: string;
275
- deliveryZoneId: string;
276
- recoveryAttempts: number;
277
- recoveryDiscountCodeId: string | null;
278
- wasRecovered: boolean;
279
- estimatedDays: number | null;
280
- orderNumber: number;
281
- firstName: string;
282
- lastName: string;
283
- phone: string;
284
- address: string;
285
- city: string;
286
- discountCodeId: string | null;
287
- paymentMethod: import("@prisma/client").$Enums.PaymentMethod;
288
- paystackReference: string | null;
289
- status: import("@prisma/client").$Enums.OrderStatus;
290
- cancellationReason: string | null;
291
- prospectReason: import("@prisma/client").$Enums.ProspectReason | null;
292
- userActionToken: string;
293
- }[];
294
- };
295
- outputFormat: "json";
296
- status: import("hono/utils/http-status").ContentfulStatusCode;
297
- } | {
298
- input: {};
299
- output: {
300
- error: {
301
- code: string;
302
- message: string;
303
- };
304
- };
305
- outputFormat: "json";
306
- status: 500;
307
- };
308
- };
309
- }, "/">;
310
- export default app;
@@ -1,39 +0,0 @@
1
- import { Hono } from 'hono';
2
- import { getPrismaClient } from '../../lib/prisma';
3
- import { formatOrderResponse } from '../../lib/order-response';
4
- import { ORDER_INCLUDE_FULL } from '../../lib/cart-helpers';
5
- const app = new Hono()
6
- // Get customer order history by phone
7
- .get('/history', async (c) => {
8
- try {
9
- const phone = c.req.query('phone');
10
- if (!phone) {
11
- return c.json({ error: { code: 'MISSING_PARAMETER', message: 'Phone required' } }, 400);
12
- }
13
- const prisma = getPrismaClient(c.env.DATABASE_URL);
14
- const where = { deletedAt: null, phone };
15
- const orders = await prisma.order.findMany({
16
- where,
17
- include: ORDER_INCLUDE_FULL,
18
- orderBy: { createdAt: 'desc' },
19
- });
20
- if (orders.length === 0) {
21
- return c.json({
22
- customer: null,
23
- orders: [],
24
- });
25
- }
26
- const customer = {
27
- firstName: orders[0].firstName,
28
- lastName: orders[0].lastName,
29
- phone: orders[0].phone,
30
- totalOrders: orders.length,
31
- totalSpent: orders.reduce((sum, order) => sum + parseFloat(order.totalPrice.toString()), 0),
32
- };
33
- return c.json({ customer, orders: orders.map((order) => formatOrderResponse(order)) });
34
- }
35
- catch (error) {
36
- return c.json({ error: { code: 'INTERNAL_ERROR', message: 'Failed to retrieve customer history' } }, 500);
37
- }
38
- });
39
- export default app;