@duongthiu/onex-core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -65
- package/THEME_API.md +36 -33
- package/dist/api.js +14 -0
- package/dist/api.js.map +1 -0
- package/dist/api.mjs +5 -0
- package/dist/api.mjs.map +1 -0
- package/dist/auth.js +23 -0
- package/dist/auth.js.map +1 -0
- package/dist/auth.mjs +6 -0
- package/dist/auth.mjs.map +1 -0
- package/dist/blog.js +22 -0
- package/dist/blog.js.map +1 -0
- package/dist/blog.mjs +5 -0
- package/dist/blog.mjs.map +1 -0
- package/dist/cart.js +27 -0
- package/dist/cart.js.map +1 -0
- package/dist/cart.mjs +6 -0
- package/dist/cart.mjs.map +1 -0
- package/dist/chunk-2CSWHI3L.js +210 -0
- package/dist/chunk-2CSWHI3L.js.map +1 -0
- package/dist/chunk-2FGHIDUV.js +99 -0
- package/dist/chunk-2FGHIDUV.js.map +1 -0
- package/dist/chunk-2NMEKWO5.js +40 -0
- package/dist/chunk-2NMEKWO5.js.map +1 -0
- package/dist/chunk-43BVHGDT.mjs +131 -0
- package/dist/chunk-43BVHGDT.mjs.map +1 -0
- package/dist/chunk-4JVQJI3I.mjs +290 -0
- package/dist/chunk-4JVQJI3I.mjs.map +1 -0
- package/dist/chunk-5N2EKK5O.js +9550 -0
- package/dist/chunk-5N2EKK5O.js.map +1 -0
- package/dist/chunk-5T6NDVSN.js +76 -0
- package/dist/chunk-5T6NDVSN.js.map +1 -0
- package/dist/chunk-73AINNCI.mjs +201 -0
- package/dist/chunk-73AINNCI.mjs.map +1 -0
- package/dist/chunk-AIXBDAVP.mjs +61 -0
- package/dist/chunk-AIXBDAVP.mjs.map +1 -0
- package/dist/chunk-ALYN5HAC.js +210 -0
- package/dist/chunk-ALYN5HAC.js.map +1 -0
- package/dist/chunk-AREMJR3Q.js +36 -0
- package/dist/chunk-AREMJR3Q.js.map +1 -0
- package/dist/chunk-DXAI6XOI.mjs +33 -0
- package/dist/chunk-DXAI6XOI.mjs.map +1 -0
- package/dist/chunk-F5TFNWFJ.mjs +257 -0
- package/dist/chunk-F5TFNWFJ.mjs.map +1 -0
- package/dist/chunk-FQ7FWUZN.js +265 -0
- package/dist/chunk-FQ7FWUZN.js.map +1 -0
- package/dist/{chunk-3SZX6LHT.js → chunk-J27VGXJH.js} +2 -24
- package/dist/chunk-J27VGXJH.js.map +1 -0
- package/dist/chunk-JZ46LLTZ.js +121 -0
- package/dist/chunk-JZ46LLTZ.js.map +1 -0
- package/dist/chunk-K24UHN6G.mjs +76 -0
- package/dist/chunk-K24UHN6G.mjs.map +1 -0
- package/dist/chunk-KCQGGU5R.mjs +344 -0
- package/dist/chunk-KCQGGU5R.mjs.map +1 -0
- package/dist/chunk-MT22NYKT.mjs +117 -0
- package/dist/chunk-MT22NYKT.mjs.map +1 -0
- package/dist/chunk-NDD472IZ.js +85 -0
- package/dist/chunk-NDD472IZ.js.map +1 -0
- package/dist/chunk-NHOIGGYU.mjs +833 -0
- package/dist/chunk-NHOIGGYU.mjs.map +1 -0
- package/dist/chunk-O3XR7TW3.mjs +12 -0
- package/dist/chunk-O3XR7TW3.mjs.map +1 -0
- package/dist/chunk-OAPYSC2X.mjs +206 -0
- package/dist/chunk-OAPYSC2X.mjs.map +1 -0
- package/dist/{chunk-XE4EOKS4.mjs → chunk-ONJREDYY.mjs} +3 -23
- package/dist/chunk-ONJREDYY.mjs.map +1 -0
- package/dist/chunk-OVT2LUAM.js +197 -0
- package/dist/chunk-OVT2LUAM.js.map +1 -0
- package/dist/chunk-OWNGNGKL.js +331 -0
- package/dist/chunk-OWNGNGKL.js.map +1 -0
- package/dist/chunk-P7SXNZSV.js +298 -0
- package/dist/chunk-P7SXNZSV.js.map +1 -0
- package/dist/chunk-PFJOL3HI.mjs +71 -0
- package/dist/chunk-PFJOL3HI.mjs.map +1 -0
- package/dist/chunk-PPULMWJ6.js +295 -0
- package/dist/chunk-PPULMWJ6.js.map +1 -0
- package/dist/chunk-RGIVKACG.js +359 -0
- package/dist/chunk-RGIVKACG.js.map +1 -0
- package/dist/chunk-RPP5K2LP.js +870 -0
- package/dist/chunk-RPP5K2LP.js.map +1 -0
- package/dist/{chunk-7EON6Q4L.mjs → chunk-RUCHWUD7.mjs} +7651 -6370
- package/dist/chunk-RUCHWUD7.mjs.map +1 -0
- package/dist/chunk-SEVUIX4H.js +137 -0
- package/dist/chunk-SEVUIX4H.js.map +1 -0
- package/dist/chunk-SK2FSHFM.mjs +208 -0
- package/dist/chunk-SK2FSHFM.mjs.map +1 -0
- package/dist/chunk-T6EJ2GAV.mjs +294 -0
- package/dist/chunk-T6EJ2GAV.mjs.map +1 -0
- package/dist/chunk-ULBDOFZI.mjs +302 -0
- package/dist/chunk-ULBDOFZI.mjs.map +1 -0
- package/dist/chunk-V3JIELNV.js +241 -0
- package/dist/chunk-V3JIELNV.js.map +1 -0
- package/dist/chunk-V5E2KWMA.mjs +238 -0
- package/dist/chunk-V5E2KWMA.mjs.map +1 -0
- package/dist/chunk-VJA3ER6A.js +14 -0
- package/dist/chunk-VJA3ER6A.js.map +1 -0
- package/dist/chunk-VLI7ULX5.js +66 -0
- package/dist/chunk-VLI7ULX5.js.map +1 -0
- package/dist/chunk-WFGS5OFH.mjs +189 -0
- package/dist/chunk-WFGS5OFH.mjs.map +1 -0
- package/dist/chunk-WVC5GP24.mjs +96 -0
- package/dist/chunk-WVC5GP24.mjs.map +1 -0
- package/dist/chunk-YOSPWY5K.mjs +36 -0
- package/dist/chunk-YOSPWY5K.mjs.map +1 -0
- package/dist/chunk-ZFFXXLX7.js +205 -0
- package/dist/chunk-ZFFXXLX7.js.map +1 -0
- package/dist/client.js +512 -249
- package/dist/client.mjs +21 -2
- package/dist/components.js +393 -0
- package/dist/components.js.map +1 -0
- package/dist/components.mjs +8 -0
- package/dist/components.mjs.map +1 -0
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -0
- package/dist/config.mjs +4 -0
- package/dist/config.mjs.map +1 -0
- package/dist/contact.js +22 -0
- package/dist/contact.js.map +1 -0
- package/dist/contact.mjs +5 -0
- package/dist/contact.mjs.map +1 -0
- package/dist/contexts.js +51 -0
- package/dist/contexts.js.map +1 -0
- package/dist/contexts.mjs +6 -0
- package/dist/contexts.mjs.map +1 -0
- package/dist/finance.js +26 -0
- package/dist/finance.js.map +1 -0
- package/dist/finance.mjs +5 -0
- package/dist/finance.mjs.map +1 -0
- package/dist/icons.js +15 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +4 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/index.js +512 -249
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -2
- package/dist/index.mjs.map +1 -1
- package/dist/internal.js +1437 -0
- package/dist/internal.js.map +1 -0
- package/dist/internal.mjs +1404 -0
- package/dist/internal.mjs.map +1 -0
- package/dist/motion.js +51 -0
- package/dist/motion.js.map +1 -0
- package/dist/motion.mjs +38 -0
- package/dist/motion.mjs.map +1 -0
- package/dist/orders.js +22 -0
- package/dist/orders.js.map +1 -0
- package/dist/orders.mjs +5 -0
- package/dist/orders.mjs.map +1 -0
- package/dist/products.js +27 -0
- package/dist/products.js.map +1 -0
- package/dist/products.mjs +6 -0
- package/dist/products.mjs.map +1 -0
- package/dist/registry.js +44 -0
- package/dist/registry.js.map +1 -0
- package/dist/registry.mjs +7 -0
- package/dist/registry.mjs.map +1 -0
- package/dist/renderers.js +51 -0
- package/dist/renderers.js.map +1 -0
- package/dist/renderers.mjs +6 -0
- package/dist/renderers.mjs.map +1 -0
- package/dist/server.js +11 -189
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +3 -186
- package/dist/server.mjs.map +1 -1
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +4 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils.js +160 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +7 -0
- package/dist/utils.mjs.map +1 -0
- package/dist/wrappers.js +104 -0
- package/dist/wrappers.js.map +1 -0
- package/dist/wrappers.mjs +96 -0
- package/dist/wrappers.mjs.map +1 -0
- package/package.json +112 -9
- package/dist/api-vuL1Eg5L.d.mts +0 -2961
- package/dist/api-vuL1Eg5L.d.ts +0 -2961
- package/dist/chunk-3SZX6LHT.js.map +0 -1
- package/dist/chunk-7EON6Q4L.mjs.map +0 -1
- package/dist/chunk-WDY773GJ.js +0 -8308
- package/dist/chunk-WDY773GJ.js.map +0 -1
- package/dist/chunk-XE4EOKS4.mjs.map +0 -1
- package/dist/client.d.mts +0 -1461
- package/dist/client.d.ts +0 -1461
- package/dist/index.d.mts +0 -125
- package/dist/index.d.ts +0 -125
- package/dist/server.d.mts +0 -70
- package/dist/server.d.ts +0 -70
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var zustand = require('zustand');
|
|
5
|
+
|
|
6
|
+
// src/features/orders/use-orders.ts
|
|
7
|
+
var ordersService = null;
|
|
8
|
+
var useOrders = zustand.create((set) => ({
|
|
9
|
+
// Initial state
|
|
10
|
+
orders: [],
|
|
11
|
+
currentOrder: null,
|
|
12
|
+
isLoading: false,
|
|
13
|
+
error: null,
|
|
14
|
+
total: 0,
|
|
15
|
+
totalPages: 0,
|
|
16
|
+
currentPage: 1,
|
|
17
|
+
/**
|
|
18
|
+
* Create a new order (public)
|
|
19
|
+
*/
|
|
20
|
+
createOrder: async (data) => {
|
|
21
|
+
if (!ordersService) {
|
|
22
|
+
throw new Error(
|
|
23
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
set({ isLoading: true, error: null });
|
|
27
|
+
try {
|
|
28
|
+
const order = await ordersService.createOrder(data);
|
|
29
|
+
set({ currentOrder: order, isLoading: false });
|
|
30
|
+
return order;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
set({ error: error.message, isLoading: false });
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Create a private order (authenticated)
|
|
38
|
+
*/
|
|
39
|
+
createPrivateOrder: async (data) => {
|
|
40
|
+
if (!ordersService) {
|
|
41
|
+
throw new Error(
|
|
42
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
set({ isLoading: true, error: null });
|
|
46
|
+
try {
|
|
47
|
+
const order = await ordersService.createPrivateOrder(data);
|
|
48
|
+
set({ currentOrder: order, isLoading: false });
|
|
49
|
+
return order;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
set({ error: error.message, isLoading: false });
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
/**
|
|
56
|
+
* Fetch orders list
|
|
57
|
+
*/
|
|
58
|
+
fetchOrders: async (params) => {
|
|
59
|
+
if (!ordersService) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
set({ isLoading: true, error: null });
|
|
65
|
+
try {
|
|
66
|
+
const response = await ordersService.getOrders(params);
|
|
67
|
+
set({
|
|
68
|
+
orders: response.items,
|
|
69
|
+
total: response.total,
|
|
70
|
+
totalPages: response.totalPages,
|
|
71
|
+
currentPage: response.page,
|
|
72
|
+
isLoading: false
|
|
73
|
+
});
|
|
74
|
+
} catch (error) {
|
|
75
|
+
set({ error: error.message, isLoading: false });
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
/**
|
|
79
|
+
* Fetch order history for authenticated user
|
|
80
|
+
*/
|
|
81
|
+
fetchOrderHistory: async (params) => {
|
|
82
|
+
if (!ordersService) {
|
|
83
|
+
throw new Error(
|
|
84
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
set({ isLoading: true, error: null });
|
|
88
|
+
try {
|
|
89
|
+
const response = await ordersService.getOrderHistory(params);
|
|
90
|
+
set({
|
|
91
|
+
orders: response.items,
|
|
92
|
+
total: response.total,
|
|
93
|
+
totalPages: response.totalPages,
|
|
94
|
+
currentPage: response.page,
|
|
95
|
+
isLoading: false
|
|
96
|
+
});
|
|
97
|
+
} catch (error) {
|
|
98
|
+
set({ error: error.message, isLoading: false });
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* Fetch order by ID
|
|
103
|
+
*/
|
|
104
|
+
fetchOrderById: async (orderId) => {
|
|
105
|
+
if (!ordersService) {
|
|
106
|
+
throw new Error(
|
|
107
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
set({ isLoading: true, error: null });
|
|
111
|
+
try {
|
|
112
|
+
const order = await ordersService.getOrderById(orderId);
|
|
113
|
+
set({ currentOrder: order, isLoading: false });
|
|
114
|
+
} catch (error) {
|
|
115
|
+
set({ error: error.message, isLoading: false });
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Fetch order by order number
|
|
120
|
+
*/
|
|
121
|
+
fetchOrderByNumber: async (orderNumber) => {
|
|
122
|
+
if (!ordersService) {
|
|
123
|
+
throw new Error(
|
|
124
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
set({ isLoading: true, error: null });
|
|
128
|
+
try {
|
|
129
|
+
const order = await ordersService.getOrderByNumber(orderNumber);
|
|
130
|
+
set({ currentOrder: order, isLoading: false });
|
|
131
|
+
} catch (error) {
|
|
132
|
+
set({ error: error.message, isLoading: false });
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Update order status
|
|
137
|
+
*/
|
|
138
|
+
updateOrderStatus: async (orderId, status) => {
|
|
139
|
+
if (!ordersService) {
|
|
140
|
+
throw new Error(
|
|
141
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
set({ isLoading: true, error: null });
|
|
145
|
+
try {
|
|
146
|
+
const order = await ordersService.updateOrderStatus(orderId, status);
|
|
147
|
+
set((state) => {
|
|
148
|
+
var _a;
|
|
149
|
+
return {
|
|
150
|
+
currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
|
|
151
|
+
orders: state.orders.map((o) => o.id === orderId ? order : o),
|
|
152
|
+
isLoading: false
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
} catch (error) {
|
|
156
|
+
set({ error: error.message, isLoading: false });
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
/**
|
|
160
|
+
* Cancel order
|
|
161
|
+
*/
|
|
162
|
+
cancelOrder: async (orderId) => {
|
|
163
|
+
if (!ordersService) {
|
|
164
|
+
throw new Error(
|
|
165
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
set({ isLoading: true, error: null });
|
|
169
|
+
try {
|
|
170
|
+
const order = await ordersService.cancelOrder(orderId);
|
|
171
|
+
set((state) => {
|
|
172
|
+
var _a;
|
|
173
|
+
return {
|
|
174
|
+
currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
|
|
175
|
+
orders: state.orders.map((o) => o.id === orderId ? order : o),
|
|
176
|
+
isLoading: false
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
} catch (error) {
|
|
180
|
+
set({ error: error.message, isLoading: false });
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
/**
|
|
184
|
+
* Pay for order
|
|
185
|
+
*/
|
|
186
|
+
payOrder: async (orderId, paymentData) => {
|
|
187
|
+
if (!ordersService) {
|
|
188
|
+
throw new Error(
|
|
189
|
+
"Orders service not initialized. Call initializeOnex() first."
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
set({ isLoading: true, error: null });
|
|
193
|
+
try {
|
|
194
|
+
const order = await ordersService.payOrder(orderId, paymentData);
|
|
195
|
+
set((state) => {
|
|
196
|
+
var _a;
|
|
197
|
+
return {
|
|
198
|
+
currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
|
|
199
|
+
orders: state.orders.map((o) => o.id === orderId ? order : o),
|
|
200
|
+
isLoading: false
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
} catch (error) {
|
|
204
|
+
set({ error: error.message, isLoading: false });
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* Clear error
|
|
209
|
+
*/
|
|
210
|
+
clearError: () => {
|
|
211
|
+
set({ error: null });
|
|
212
|
+
},
|
|
213
|
+
/**
|
|
214
|
+
* Clear current order
|
|
215
|
+
*/
|
|
216
|
+
clearCurrentOrder: () => {
|
|
217
|
+
set({ currentOrder: null });
|
|
218
|
+
}
|
|
219
|
+
}));
|
|
220
|
+
function initializeOrdersService(service) {
|
|
221
|
+
ordersService = service;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// src/features/orders/orders-service.ts
|
|
225
|
+
var OrdersService = class {
|
|
226
|
+
constructor(api) {
|
|
227
|
+
this.api = api;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Create a new order (public - no auth required)
|
|
231
|
+
*/
|
|
232
|
+
async createOrder(data) {
|
|
233
|
+
return await this.api.post("/orders", data);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Create a private order (requires authentication)
|
|
237
|
+
*/
|
|
238
|
+
async createPrivateOrder(data) {
|
|
239
|
+
return await this.api.post("/orders/private", data);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get order by ID
|
|
243
|
+
*/
|
|
244
|
+
async getOrderById(orderId) {
|
|
245
|
+
return await this.api.get(`/orders/${orderId}`);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get order by order number
|
|
249
|
+
*/
|
|
250
|
+
async getOrderByNumber(orderNumber) {
|
|
251
|
+
return await this.api.get(`/orders/number/${orderNumber}`);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Get order history for authenticated user
|
|
255
|
+
*/
|
|
256
|
+
async getOrderHistory(params) {
|
|
257
|
+
return await this.api.get(
|
|
258
|
+
"/orders/history",
|
|
259
|
+
params
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get all orders (with pagination)
|
|
264
|
+
*/
|
|
265
|
+
async getOrders(params) {
|
|
266
|
+
return await this.api.get(
|
|
267
|
+
"/orders",
|
|
268
|
+
params
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Update order status
|
|
273
|
+
*/
|
|
274
|
+
async updateOrderStatus(orderId, status) {
|
|
275
|
+
return await this.api.put(`/orders/${orderId}/status`, { status });
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Cancel order
|
|
279
|
+
*/
|
|
280
|
+
async cancelOrder(orderId) {
|
|
281
|
+
return await this.api.put(`/orders/${orderId}/cancel`, {});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Pay for order
|
|
285
|
+
*/
|
|
286
|
+
async payOrder(orderId, paymentData) {
|
|
287
|
+
return await this.api.post(
|
|
288
|
+
`/orders/${orderId}/pay`,
|
|
289
|
+
paymentData || {}
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
exports.OrdersService = OrdersService;
|
|
295
|
+
exports.initializeOrdersService = initializeOrdersService;
|
|
296
|
+
exports.useOrders = useOrders;
|
|
297
|
+
//# sourceMappingURL=chunk-P7SXNZSV.js.map
|
|
298
|
+
//# sourceMappingURL=chunk-P7SXNZSV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/features/orders/use-orders.ts","../src/features/orders/orders-service.ts"],"names":["create"],"mappings":"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","file":"chunk-P7SXNZSV.js","sourcesContent":["/**\n * Orders Hook\n * Zustand store for orders state and actions\n */\n\nimport { create } from \"zustand\";\nimport { OrdersService } from \"./orders-service\";\nimport type { Order, CreateOrderData, OrdersListParams } from \"./types\";\n\ninterface OrdersState {\n // State\n orders: Order[];\n currentOrder: Order | null;\n isLoading: boolean;\n error: string | null;\n total: number;\n totalPages: number;\n currentPage: number;\n\n // Actions\n createOrder: (data: CreateOrderData) => Promise<Order>;\n createPrivateOrder: (data: CreateOrderData) => Promise<Order>;\n fetchOrders: (params?: OrdersListParams) => Promise<void>;\n fetchOrderHistory: (params?: OrdersListParams) => Promise<void>;\n fetchOrderById: (orderId: string) => Promise<void>;\n fetchOrderByNumber: (orderNumber: string) => Promise<void>;\n updateOrderStatus: (orderId: string, status: string) => Promise<void>;\n cancelOrder: (orderId: string) => Promise<void>;\n payOrder: (\n orderId: string,\n paymentData?: Record<string, unknown>\n ) => Promise<void>;\n clearError: () => void;\n clearCurrentOrder: () => void;\n}\n\nlet ordersService: OrdersService | null = null;\n\nexport const useOrders = create<OrdersState>((set) => ({\n // Initial state\n orders: [],\n currentOrder: null,\n isLoading: false,\n error: null,\n total: 0,\n totalPages: 0,\n currentPage: 1,\n\n /**\n * Create a new order (public)\n */\n createOrder: async (data) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.createOrder(data);\n set({ currentOrder: order, isLoading: false });\n return order;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Create a private order (authenticated)\n */\n createPrivateOrder: async (data) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.createPrivateOrder(data);\n set({ currentOrder: order, isLoading: false });\n return order;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Fetch orders list\n */\n fetchOrders: async (params) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const response = await ordersService.getOrders(params);\n set({\n orders: response.items,\n total: response.total,\n totalPages: response.totalPages,\n currentPage: response.page,\n isLoading: false,\n });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order history for authenticated user\n */\n fetchOrderHistory: async (params) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const response = await ordersService.getOrderHistory(params);\n set({\n orders: response.items,\n total: response.total,\n totalPages: response.totalPages,\n currentPage: response.page,\n isLoading: false,\n });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order by ID\n */\n fetchOrderById: async (orderId) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.getOrderById(orderId);\n set({ currentOrder: order, isLoading: false });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order by order number\n */\n fetchOrderByNumber: async (orderNumber) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.getOrderByNumber(orderNumber);\n set({ currentOrder: order, isLoading: false });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Update order status\n */\n updateOrderStatus: async (orderId, status) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.updateOrderStatus(orderId, status);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Cancel order\n */\n cancelOrder: async (orderId) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.cancelOrder(orderId);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Pay for order\n */\n payOrder: async (orderId, paymentData) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.payOrder(orderId, paymentData);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Clear error\n */\n clearError: () => {\n set({ error: null });\n },\n\n /**\n * Clear current order\n */\n clearCurrentOrder: () => {\n set({ currentOrder: null });\n },\n}));\n\n/**\n * Initialize orders service\n * @internal Called by initializeOnex()\n */\nexport function initializeOrdersService(service: OrdersService): void {\n ordersService = service;\n}\n","/**\n * Orders Service\n * Handles all order-related API calls\n */\n\nimport { ApiClient } from \"../../api/client\";\nimport type {\n Order,\n CreateOrderData,\n OrdersListResponse,\n OrdersListParams,\n} from \"./types\";\n\nexport class OrdersService {\n constructor(private api: ApiClient) {}\n\n /**\n * Create a new order (public - no auth required)\n */\n async createOrder(data: CreateOrderData): Promise<Order> {\n return await this.api.post<Order>(\"/orders\", data);\n }\n\n /**\n * Create a private order (requires authentication)\n */\n async createPrivateOrder(data: CreateOrderData): Promise<Order> {\n return await this.api.post<Order>(\"/orders/private\", data);\n }\n\n /**\n * Get order by ID\n */\n async getOrderById(orderId: string): Promise<Order> {\n return await this.api.get<Order>(`/orders/${orderId}`);\n }\n\n /**\n * Get order by order number\n */\n async getOrderByNumber(orderNumber: string): Promise<Order> {\n return await this.api.get<Order>(`/orders/number/${orderNumber}`);\n }\n\n /**\n * Get order history for authenticated user\n */\n async getOrderHistory(\n params?: OrdersListParams\n ): Promise<OrdersListResponse> {\n return await this.api.get<OrdersListResponse>(\n \"/orders/history\",\n params as Record<string, unknown>\n );\n }\n\n /**\n * Get all orders (with pagination)\n */\n async getOrders(params?: OrdersListParams): Promise<OrdersListResponse> {\n return await this.api.get<OrdersListResponse>(\n \"/orders\",\n params as Record<string, unknown>\n );\n }\n\n /**\n * Update order status\n */\n async updateOrderStatus(orderId: string, status: string): Promise<Order> {\n return await this.api.put<Order>(`/orders/${orderId}/status`, { status });\n }\n\n /**\n * Cancel order\n */\n async cancelOrder(orderId: string): Promise<Order> {\n return await this.api.put<Order>(`/orders/${orderId}/cancel`, {});\n }\n\n /**\n * Pay for order\n */\n async payOrder(\n orderId: string,\n paymentData?: Record<string, unknown>\n ): Promise<Order> {\n return await this.api.post<Order>(\n `/orders/${orderId}/pay`,\n paymentData || {}\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { create } from 'zustand';
|
|
3
|
+
|
|
4
|
+
// src/features/finance/use-finance.ts
|
|
5
|
+
var financeService = null;
|
|
6
|
+
var useFinance = create((set) => ({
|
|
7
|
+
// Initial state
|
|
8
|
+
qrCode: null,
|
|
9
|
+
isLoading: false,
|
|
10
|
+
error: null,
|
|
11
|
+
/**
|
|
12
|
+
* Create QR code for bank transfer
|
|
13
|
+
*/
|
|
14
|
+
createQrCode: async (payload) => {
|
|
15
|
+
if (!financeService) {
|
|
16
|
+
throw new Error(
|
|
17
|
+
"Finance service not initialized. Call initializeOnex() first."
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
set({ isLoading: true, error: null });
|
|
21
|
+
try {
|
|
22
|
+
const qrCode = await financeService.createQrCode(payload);
|
|
23
|
+
set({ qrCode, isLoading: false });
|
|
24
|
+
return qrCode;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
set({ error: error.message, isLoading: false });
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Clear QR code
|
|
32
|
+
*/
|
|
33
|
+
clearQrCode: () => {
|
|
34
|
+
set({ qrCode: null });
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Clear error
|
|
38
|
+
*/
|
|
39
|
+
clearError: () => {
|
|
40
|
+
set({ error: null });
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
function initializeFinanceService(service) {
|
|
44
|
+
financeService = service;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/features/finance/finance-service.ts
|
|
48
|
+
var FinanceService = class {
|
|
49
|
+
constructor(api) {
|
|
50
|
+
this.api = api;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create QR code for bank transfer
|
|
54
|
+
*/
|
|
55
|
+
async createQrCode(payload) {
|
|
56
|
+
return await this.api.post("/finance/public/qr", payload);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/features/finance/constants.ts
|
|
61
|
+
var BANK_TRANSFER_DATA = {
|
|
62
|
+
account_number: "999914287",
|
|
63
|
+
account_name: "CONG TY TNHH TIN AN",
|
|
64
|
+
bank_id: "970422",
|
|
65
|
+
// MB Bank
|
|
66
|
+
bank_name: "Ng\xE2n h\xE0ng Qu\xE2n \u0111\u1ED9i (MB Bank)"
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { BANK_TRANSFER_DATA, FinanceService, initializeFinanceService, useFinance };
|
|
70
|
+
//# sourceMappingURL=chunk-PFJOL3HI.mjs.map
|
|
71
|
+
//# sourceMappingURL=chunk-PFJOL3HI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/features/finance/use-finance.ts","../src/features/finance/finance-service.ts","../src/features/finance/constants.ts"],"names":[],"mappings":";;;AAqBA,IAAI,cAAA,GAAwC,IAAA;AAErC,IAAM,UAAA,GAAa,MAAA,CAAqB,CAAC,GAAA,MAAS;AAAA;AAAA,EAEvD,MAAA,EAAQ,IAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAA,EAAc,OAAO,OAAA,KAAY;AAC/B,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AACpC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,YAAA,CAAa,OAAO,CAAA;AACxD,MAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,CAAA;AAChC,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,GAAA,CAAI,EAAE,KAAA,EAAQ,KAAA,CAAgB,OAAA,EAAS,SAAA,EAAW,OAAO,CAAA;AACzD,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,MAAM;AACjB,IAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA;AAAA,EACtB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,MAAM;AAChB,IAAA,GAAA,CAAI,EAAE,KAAA,EAAO,IAAA,EAAM,CAAA;AAAA,EACrB;AACF,CAAA,CAAE;AAMK,SAAS,yBAAyB,OAAA,EAA+B;AACtE,EAAA,cAAA,GAAiB,OAAA;AACnB;;;AC/DO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,GAAA,EAAgB;AAAhB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAAA,EAAiB;AAAA;AAAA;AAAA;AAAA,EAKrC,MAAM,aAAa,OAAA,EAA+C;AAChE,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAiB,sBAAsB,OAAO,CAAA;AAAA,EACtE;AACF;;;ACZO,IAAM,kBAAA,GAAqB;AAAA,EAChC,cAAA,EAAgB,WAAA;AAAA,EAChB,YAAA,EAAc,qBAAA;AAAA,EACd,OAAA,EAAS,QAAA;AAAA;AAAA,EACT,SAAA,EAAW;AACb","file":"chunk-PFJOL3HI.mjs","sourcesContent":["/**\n * Finance Hook\n * Zustand store for finance operations (QR code generation)\n */\n\nimport { create } from \"zustand\";\nimport { FinanceService } from \"./finance-service\";\nimport type { CreateQrPayload, QrResponse } from \"./types\";\n\ninterface FinanceState {\n // State\n qrCode: QrResponse | null;\n isLoading: boolean;\n error: string | null;\n\n // Actions\n createQrCode: (payload: CreateQrPayload) => Promise<QrResponse>;\n clearQrCode: () => void;\n clearError: () => void;\n}\n\nlet financeService: FinanceService | null = null;\n\nexport const useFinance = create<FinanceState>((set) => ({\n // Initial state\n qrCode: null,\n isLoading: false,\n error: null,\n\n /**\n * Create QR code for bank transfer\n */\n createQrCode: async (payload) => {\n if (!financeService) {\n throw new Error(\n \"Finance service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const qrCode = await financeService.createQrCode(payload);\n set({ qrCode, isLoading: false });\n return qrCode;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Clear QR code\n */\n clearQrCode: () => {\n set({ qrCode: null });\n },\n\n /**\n * Clear error\n */\n clearError: () => {\n set({ error: null });\n },\n}));\n\n/**\n * Initialize finance service\n * @internal Called by initializeOnex()\n */\nexport function initializeFinanceService(service: FinanceService): void {\n financeService = service;\n}\n","/**\n * Finance Service\n * Handles QR code generation for bank transfers\n */\n\nimport { ApiClient } from \"../../api/client\";\nimport type { CreateQrPayload, QrResponse } from \"./types\";\n\nexport class FinanceService {\n constructor(private api: ApiClient) {}\n\n /**\n * Create QR code for bank transfer\n */\n async createQrCode(payload: CreateQrPayload): Promise<QrResponse> {\n return await this.api.post<QrResponse>(\"/finance/public/qr\", payload);\n }\n}\n","/**\n * Finance Constants\n * Bank transfer configuration\n */\n\nexport const BANK_TRANSFER_DATA = {\n account_number: \"999914287\",\n account_name: \"CONG TY TNHH TIN AN\",\n bank_id: \"970422\", // MB Bank\n bank_name: \"Ngân hàng Quân đội (MB Bank)\",\n} as const;\n"]}
|