@unchainedshop/core-orders 3.0.0-alpha7 → 3.0.0-rc10
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/lib/db/OrderDeliveriesCollection.d.ts +21 -2
- package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
- package/lib/db/OrderDeliveriesCollection.js +6 -0
- package/lib/db/OrderDeliveriesCollection.js.map +1 -1
- package/lib/db/OrderDiscountsCollection.d.ts +16 -2
- package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
- package/lib/db/OrderDiscountsCollection.js +5 -0
- package/lib/db/OrderDiscountsCollection.js.map +1 -1
- package/lib/db/OrderPaymentsCollection.d.ts +22 -2
- package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
- package/lib/db/OrderPaymentsCollection.js +6 -0
- package/lib/db/OrderPaymentsCollection.js.map +1 -1
- package/lib/db/OrderPositionsCollection.d.ts +22 -2
- package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
- package/lib/db/OrderPositionsCollection.js.map +1 -1
- package/lib/db/OrdersCollection.d.ts +33 -2
- package/lib/db/OrdersCollection.d.ts.map +1 -1
- package/lib/db/OrdersCollection.js +8 -1
- package/lib/db/OrdersCollection.js.map +1 -1
- package/lib/module/buildFindSelector.d.ts +5 -0
- package/lib/module/buildFindSelector.d.ts.map +1 -0
- package/lib/module/buildFindSelector.js +18 -0
- package/lib/module/buildFindSelector.js.map +1 -0
- package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
- package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
- package/lib/module/configureOrderDeliveriesModule.js +8 -69
- package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
- package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
- package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
- package/lib/module/configureOrderDiscountsModule.js +34 -143
- package/lib/module/configureOrderDiscountsModule.js.map +1 -1
- package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
- package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
- package/lib/module/configureOrderPaymentsModule.js +16 -124
- package/lib/module/configureOrderPaymentsModule.js.map +1 -1
- package/lib/module/configureOrderPositionsModule.d.ts +22 -41
- package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
- package/lib/module/configureOrderPositionsModule.js +22 -85
- package/lib/module/configureOrderPositionsModule.js.map +1 -1
- package/lib/module/configureOrdersModule-mutations.d.ts +5 -11
- package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
- package/lib/module/configureOrdersModule-mutations.js +11 -50
- package/lib/module/configureOrdersModule-mutations.js.map +1 -1
- package/lib/module/configureOrdersModule-queries.d.ts +18 -6
- package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
- package/lib/module/configureOrdersModule-queries.js +35 -22
- package/lib/module/configureOrdersModule-queries.js.map +1 -1
- package/lib/module/configureOrdersModule.d.ts +11 -8
- package/lib/module/configureOrdersModule.d.ts.map +1 -1
- package/lib/module/configureOrdersModule.js +134 -154
- package/lib/module/configureOrdersModule.js.map +1 -1
- package/lib/orders-index.d.ts +11 -8
- package/lib/orders-index.d.ts.map +1 -1
- package/lib/orders-index.js +11 -8
- package/lib/orders-index.js.map +1 -1
- package/lib/orders-settings.d.ts +4 -8
- package/lib/orders-settings.d.ts.map +1 -1
- package/lib/orders-settings.js.map +1 -1
- package/package.json +13 -13
- package/src/db/OrderDeliveriesCollection.ts +25 -2
- package/src/db/OrderDiscountsCollection.ts +18 -2
- package/src/db/OrderPaymentsCollection.ts +26 -2
- package/src/db/OrderPositionsCollection.ts +21 -2
- package/src/db/OrdersCollection.ts +44 -2
- package/src/module/buildFindSelector.test.ts +8 -8
- package/src/module/buildFindSelector.ts +24 -0
- package/src/module/configureOrderDeliveriesModule.ts +29 -172
- package/src/module/configureOrderDiscountsModule.ts +46 -213
- package/src/module/configureOrderPaymentsModule.ts +58 -266
- package/src/module/configureOrderPositionsModule.ts +57 -208
- package/src/module/configureOrdersModule-mutations.ts +13 -85
- package/src/module/configureOrdersModule-queries.ts +61 -29
- package/src/module/configureOrdersModule.ts +181 -264
- package/src/orders-index.ts +11 -10
- package/src/orders-settings.ts +5 -7
- package/tsconfig.json +5 -7
- package/lib/db/OrderDiscountTrigger.d.ts +0 -5
- package/lib/db/OrderDiscountTrigger.d.ts.map +0 -1
- package/lib/db/OrderDiscountTrigger.js +0 -6
- package/lib/db/OrderDiscountTrigger.js.map +0 -1
- package/lib/director/OrderDiscountAdapter.d.ts +0 -4
- package/lib/director/OrderDiscountAdapter.d.ts.map +0 -1
- package/lib/director/OrderDiscountAdapter.js +0 -3
- package/lib/director/OrderDiscountAdapter.js.map +0 -1
- package/lib/director/OrderDiscountConfiguration.d.ts +0 -6
- package/lib/director/OrderDiscountConfiguration.d.ts.map +0 -1
- package/lib/director/OrderDiscountConfiguration.js +0 -2
- package/lib/director/OrderDiscountConfiguration.js.map +0 -1
- package/lib/director/OrderDiscountDirector.d.ts +0 -3
- package/lib/director/OrderDiscountDirector.d.ts.map +0 -1
- package/lib/director/OrderDiscountDirector.js +0 -3
- package/lib/director/OrderDiscountDirector.js.map +0 -1
- package/lib/director/OrderPricingAdapter.d.ts +0 -22
- package/lib/director/OrderPricingAdapter.d.ts.map +0 -1
- package/lib/director/OrderPricingAdapter.js +0 -25
- package/lib/director/OrderPricingAdapter.js.map +0 -1
- package/lib/director/OrderPricingDirector.d.ts +0 -18
- package/lib/director/OrderPricingDirector.d.ts.map +0 -1
- package/lib/director/OrderPricingDirector.js +0 -39
- package/lib/director/OrderPricingDirector.js.map +0 -1
- package/lib/director/OrderPricingSheet.d.ts +0 -36
- package/lib/director/OrderPricingSheet.d.ts.map +0 -1
- package/lib/director/OrderPricingSheet.js +0 -108
- package/lib/director/OrderPricingSheet.js.map +0 -1
- package/lib/module/configureOrdersModule-processing.d.ts +0 -32
- package/lib/module/configureOrdersModule-processing.d.ts.map +0 -1
- package/lib/module/configureOrdersModule-processing.js +0 -339
- package/lib/module/configureOrdersModule-processing.js.map +0 -1
- package/lib/module/configureOrdersModule-transformations.d.ts +0 -20
- package/lib/module/configureOrdersModule-transformations.d.ts.map +0 -1
- package/lib/module/configureOrdersModule-transformations.js +0 -111
- package/lib/module/configureOrdersModule-transformations.js.map +0 -1
- package/lib/service/migrateOrderCartService.d.ts +0 -10
- package/lib/service/migrateOrderCartService.d.ts.map +0 -1
- package/lib/service/migrateOrderCartService.js +0 -32
- package/lib/service/migrateOrderCartService.js.map +0 -1
- package/lib/service/nextUserCartService.d.ts +0 -11
- package/lib/service/nextUserCartService.d.ts.map +0 -1
- package/lib/service/nextUserCartService.js +0 -34
- package/lib/service/nextUserCartService.js.map +0 -1
- package/lib/service/orderServices.d.ts +0 -8
- package/lib/service/orderServices.d.ts.map +0 -1
- package/lib/service/orderServices.js +0 -7
- package/lib/service/orderServices.js.map +0 -1
- package/lib/types.d.ts +0 -116
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -25
- package/lib/types.js.map +0 -1
- package/src/db/OrderDiscountTrigger.ts +0 -4
- package/src/director/OrderDiscountAdapter.ts +0 -8
- package/src/director/OrderDiscountConfiguration.ts +0 -5
- package/src/director/OrderDiscountDirector.ts +0 -5
- package/src/director/OrderPricingAdapter.ts +0 -61
- package/src/director/OrderPricingDirector.ts +0 -72
- package/src/director/OrderPricingSheet.ts +0 -146
- package/src/module/configureOrdersModule-processing.ts +0 -508
- package/src/module/configureOrdersModule-transformations.ts +0 -171
- package/src/service/migrateOrderCartService.ts +0 -53
- package/src/service/nextUserCartService.ts +0 -54
- package/src/service/orderServices.ts +0 -12
- package/src/types.ts +0 -129
|
@@ -1,251 +1,78 @@
|
|
|
1
|
-
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
1
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
3
2
|
import { generateDbFilterById, generateDbObjectId, mongodb } from '@unchainedshop/mongodb';
|
|
4
|
-
import { OrderDiscountTrigger } from '../db/
|
|
5
|
-
import { OrderDiscountDirector } from '../director/OrderDiscountDirector.js';
|
|
6
|
-
import { Order, OrderDiscount } from '../types.js';
|
|
7
|
-
import {
|
|
8
|
-
IPricingSheet,
|
|
9
|
-
PricingCalculation,
|
|
10
|
-
DiscountAdapterActions,
|
|
11
|
-
DiscountContext,
|
|
12
|
-
} from '@unchainedshop/utils';
|
|
13
|
-
|
|
14
|
-
export type OrderDiscountsModule = {
|
|
15
|
-
// Queries
|
|
16
|
-
findOrderDiscount: (
|
|
17
|
-
params: { discountId: string },
|
|
18
|
-
options?: mongodb.FindOptions,
|
|
19
|
-
) => Promise<OrderDiscount>;
|
|
20
|
-
findOrderDiscounts: (params: { orderId: string }) => Promise<Array<OrderDiscount>>;
|
|
21
|
-
|
|
22
|
-
// Transformations
|
|
23
|
-
interface: (
|
|
24
|
-
orderDiscount: OrderDiscount,
|
|
25
|
-
unchainedAPI: UnchainedCore,
|
|
26
|
-
) => Promise<DiscountAdapterActions<any>>;
|
|
27
|
-
|
|
28
|
-
isValid: (orderDiscount: OrderDiscount, unchainedAPI: UnchainedCore) => Promise<boolean>;
|
|
29
|
-
|
|
30
|
-
// Adapter
|
|
31
|
-
configurationForPricingAdapterKey: (
|
|
32
|
-
orderDiscount: OrderDiscount,
|
|
33
|
-
adapterKey: string,
|
|
34
|
-
calculationSheet: IPricingSheet<PricingCalculation>,
|
|
35
|
-
pricingContext: DiscountContext & UnchainedCore,
|
|
36
|
-
) => Promise<any>;
|
|
37
|
-
|
|
38
|
-
// Mutations
|
|
39
|
-
createManualOrderDiscount: (
|
|
40
|
-
params: { code: string; order: Order },
|
|
41
|
-
unchainedAPI: UnchainedCore,
|
|
42
|
-
) => Promise<OrderDiscount>;
|
|
43
|
-
|
|
44
|
-
create: (doc: OrderDiscount) => Promise<OrderDiscount>;
|
|
45
|
-
update: (orderDiscountId: string, doc: OrderDiscount) => Promise<OrderDiscount>;
|
|
46
|
-
delete: (orderDiscountId: string, unchainedAPI: UnchainedCore) => Promise<OrderDiscount>;
|
|
47
|
-
};
|
|
3
|
+
import { OrderDiscount, OrderDiscountTrigger } from '../db/OrderDiscountsCollection.js';
|
|
48
4
|
|
|
49
5
|
const ORDER_DISCOUNT_EVENTS: string[] = [
|
|
50
6
|
'ORDER_CREATE_DISCOUNT',
|
|
51
7
|
'ORDER_UPDATE_DISCOUNT',
|
|
52
8
|
'ORDER_REMOVE_DISCOUNT',
|
|
53
|
-
'ORDER_ADD_DISCOUNT',
|
|
54
9
|
];
|
|
55
10
|
|
|
56
|
-
const
|
|
57
|
-
CODE_ALREADY_PRESENT: 'CODE_ALREADY_PRESENT',
|
|
58
|
-
CODE_NOT_VALID: 'CODE_NOT_VALID',
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export const buildFindByIdSelector = (orderDiscountId: string) =>
|
|
11
|
+
export const buildFindOrderDiscountByIdSelector = (orderDiscountId: string) =>
|
|
62
12
|
generateDbFilterById(orderDiscountId) as mongodb.Filter<OrderDiscount>;
|
|
63
13
|
|
|
64
14
|
export const configureOrderDiscountsModule = ({
|
|
65
15
|
OrderDiscounts,
|
|
66
16
|
}: {
|
|
67
17
|
OrderDiscounts: mongodb.Collection<OrderDiscount>;
|
|
68
|
-
})
|
|
18
|
+
}) => {
|
|
69
19
|
registerEvents(ORDER_DISCOUNT_EVENTS);
|
|
70
20
|
|
|
71
|
-
const getAdapter = async (orderDiscount: OrderDiscount, unchainedAPI: UnchainedCore) => {
|
|
72
|
-
const order = await unchainedAPI.modules.orders.findOrder({
|
|
73
|
-
orderId: orderDiscount.orderId,
|
|
74
|
-
});
|
|
75
|
-
const Adapter = OrderDiscountDirector.getAdapter(orderDiscount.discountKey);
|
|
76
|
-
if (!Adapter) return null;
|
|
77
|
-
const adapter = await Adapter.actions({
|
|
78
|
-
context: { order, orderDiscount, code: orderDiscount.code, ...unchainedAPI },
|
|
79
|
-
});
|
|
80
|
-
return adapter;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const createDiscount: OrderDiscountsModule['create'] = async (doc) => {
|
|
84
|
-
const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
|
|
85
|
-
const { insertedId: discountId } = await OrderDiscounts.insertOne({
|
|
86
|
-
_id: generateDbObjectId(),
|
|
87
|
-
created: new Date(),
|
|
88
|
-
...doc,
|
|
89
|
-
trigger: normalizedTrigger,
|
|
90
|
-
});
|
|
91
|
-
const discount = await OrderDiscounts.findOne(buildFindByIdSelector(discountId));
|
|
92
|
-
return discount;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
const deleteDiscount: OrderDiscountsModule['delete'] = async (orderDiscountId, unchainedAPI) => {
|
|
96
|
-
const selector = buildFindByIdSelector(orderDiscountId);
|
|
97
|
-
const discount = await OrderDiscounts.findOne(selector, {});
|
|
98
|
-
if (discount.trigger === OrderDiscountTrigger.USER) {
|
|
99
|
-
// Release
|
|
100
|
-
const adapter = await getAdapter(discount, unchainedAPI);
|
|
101
|
-
if (!adapter) return null;
|
|
102
|
-
await adapter.release();
|
|
103
|
-
}
|
|
104
|
-
await OrderDiscounts.deleteOne(selector);
|
|
105
|
-
await emit('ORDER_REMOVE_DISCOUNT', { discount });
|
|
106
|
-
return discount;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const updateDiscount: OrderDiscountsModule['update'] = async (orderDiscountId, doc) => {
|
|
110
|
-
const discount = await OrderDiscounts.findOneAndUpdate(
|
|
111
|
-
generateDbFilterById(orderDiscountId),
|
|
112
|
-
{
|
|
113
|
-
$set: {
|
|
114
|
-
updated: new Date(),
|
|
115
|
-
...doc,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
{ returnDocument: 'after' },
|
|
119
|
-
);
|
|
120
|
-
await emit('ORDER_UPDATE_DISCOUNT', { discount });
|
|
121
|
-
return discount;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
const reserveDiscount = async (orderDiscount: OrderDiscount, unchainedAPI: UnchainedCore) => {
|
|
125
|
-
const adapter = await getAdapter(orderDiscount, unchainedAPI);
|
|
126
|
-
if (!adapter) return null;
|
|
127
|
-
|
|
128
|
-
const reservation = await adapter.reserve({
|
|
129
|
-
code: orderDiscount.code,
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
return updateDiscount(orderDiscount._id, { orderId: orderDiscount.orderId, reservation });
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
const grabDiscount = async (
|
|
136
|
-
{ code, orderId }: { code: string; orderId: string },
|
|
137
|
-
unchainedAPI: UnchainedCore,
|
|
138
|
-
) => {
|
|
139
|
-
const existingDiscount = await OrderDiscounts.findOne({ code, orderId });
|
|
140
|
-
if (existingDiscount) throw new Error(OrderDiscountErrorCode.CODE_ALREADY_PRESENT);
|
|
141
|
-
const discount = await OrderDiscounts.findOne({ code, orderId: null });
|
|
142
|
-
if (!discount) return null;
|
|
143
|
-
const discountId = discount._id;
|
|
144
|
-
try {
|
|
145
|
-
const updatedDiscount = await updateDiscount(discountId, { orderId });
|
|
146
|
-
const reservedDiscount = await reserveDiscount(updatedDiscount, unchainedAPI);
|
|
147
|
-
return reservedDiscount;
|
|
148
|
-
} catch (error) {
|
|
149
|
-
// Rollback
|
|
150
|
-
await updateDiscount(discountId, { orderId: discount.orderId });
|
|
151
|
-
|
|
152
|
-
throw error;
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
|
|
156
21
|
return {
|
|
157
22
|
// Queries
|
|
158
|
-
findOrderDiscount: async (
|
|
159
|
-
|
|
23
|
+
findOrderDiscount: async (
|
|
24
|
+
{ discountId }: { discountId: string },
|
|
25
|
+
options?: mongodb.FindOptions,
|
|
26
|
+
): Promise<OrderDiscount> => {
|
|
27
|
+
return OrderDiscounts.findOne(buildFindOrderDiscountByIdSelector(discountId), options);
|
|
160
28
|
},
|
|
161
|
-
|
|
29
|
+
|
|
30
|
+
findOrderDiscounts: async ({ orderId }: { orderId: string }): Promise<Array<OrderDiscount>> => {
|
|
162
31
|
const discounts = OrderDiscounts.find({ orderId });
|
|
163
32
|
return discounts.toArray();
|
|
164
33
|
},
|
|
165
34
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const adapter = await getAdapter(orderDiscount, unchainedAPI);
|
|
174
|
-
if (!adapter) return null;
|
|
175
|
-
|
|
176
|
-
if (orderDiscount.trigger === OrderDiscountTrigger.SYSTEM) {
|
|
177
|
-
return adapter.isValidForSystemTriggering();
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
return adapter.isValidForCodeTriggering({
|
|
181
|
-
code: orderDiscount.code,
|
|
35
|
+
create: async (doc: OrderDiscount): Promise<OrderDiscount> => {
|
|
36
|
+
const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
|
|
37
|
+
const { insertedId: discountId } = await OrderDiscounts.insertOne({
|
|
38
|
+
_id: generateDbObjectId(),
|
|
39
|
+
created: new Date(),
|
|
40
|
+
...doc,
|
|
41
|
+
trigger: normalizedTrigger,
|
|
182
42
|
});
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
// Adapter
|
|
186
|
-
configurationForPricingAdapterKey: async (
|
|
187
|
-
orderDiscount,
|
|
188
|
-
adapterKey,
|
|
189
|
-
calculationSheet,
|
|
190
|
-
unchainedAPI,
|
|
191
|
-
) => {
|
|
192
|
-
const adapter = await getAdapter(orderDiscount, unchainedAPI);
|
|
193
|
-
if (!adapter) return null;
|
|
194
|
-
|
|
195
|
-
return adapter.discountForPricingAdapterKey({
|
|
196
|
-
pricingAdapterKey: adapterKey,
|
|
197
|
-
calculationSheet,
|
|
43
|
+
const discount = await OrderDiscounts.findOne({
|
|
44
|
+
_id: discountId,
|
|
198
45
|
});
|
|
46
|
+
await emit('ORDER_CREATE_DISCOUNT', { discount });
|
|
47
|
+
return discount;
|
|
199
48
|
},
|
|
200
49
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (fetchedDiscount) return fetchedDiscount;
|
|
208
|
-
|
|
209
|
-
const director = await OrderDiscountDirector.actions({ order, code }, unchainedAPI);
|
|
210
|
-
const discountKey = await director.resolveDiscountKeyFromStaticCode({
|
|
211
|
-
code,
|
|
212
|
-
});
|
|
50
|
+
delete: async (orderDiscountId: string): Promise<OrderDiscount> => {
|
|
51
|
+
const selector = buildFindOrderDiscountByIdSelector(orderDiscountId);
|
|
52
|
+
const orderDiscount = await OrderDiscounts.findOneAndDelete(selector);
|
|
53
|
+
await emit('ORDER_REMOVE_DISCOUNT', { discount: orderDiscount });
|
|
54
|
+
return orderDiscount;
|
|
55
|
+
},
|
|
213
56
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
57
|
+
isDiscountCodeUsed: async ({ code, orderId }): Promise<boolean> => {
|
|
58
|
+
return (
|
|
59
|
+
(await OrderDiscounts.countDocuments({
|
|
217
60
|
code,
|
|
218
|
-
|
|
219
|
-
})
|
|
220
|
-
|
|
221
|
-
try {
|
|
222
|
-
const reservedDiscount = await reserveDiscount(newDiscount, unchainedAPI);
|
|
223
|
-
await emit('ORDER_ADD_DISCOUNT', { discount: reserveDiscount });
|
|
224
|
-
return reservedDiscount;
|
|
225
|
-
} catch (error) {
|
|
226
|
-
await deleteDiscount(newDiscount._id, unchainedAPI);
|
|
227
|
-
throw error;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
throw new Error(OrderDiscountErrorCode.CODE_NOT_VALID);
|
|
61
|
+
orderId,
|
|
62
|
+
})) > 0
|
|
63
|
+
);
|
|
232
64
|
},
|
|
233
65
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
return discount;
|
|
66
|
+
findSpareDiscount: async ({ code }): Promise<OrderDiscount> => {
|
|
67
|
+
return OrderDiscounts.findOne({
|
|
68
|
+
code,
|
|
69
|
+
orderId: { $in: [undefined, null] },
|
|
70
|
+
});
|
|
242
71
|
},
|
|
243
72
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
update: async (orderDiscountId, doc) => {
|
|
73
|
+
update: async (orderDiscountId: string, doc: OrderDiscount): Promise<OrderDiscount> => {
|
|
247
74
|
const discount = await OrderDiscounts.findOneAndUpdate(
|
|
248
|
-
|
|
75
|
+
{ _id: orderDiscountId },
|
|
249
76
|
{
|
|
250
77
|
$set: {
|
|
251
78
|
updated: new Date(),
|
|
@@ -258,5 +85,11 @@ export const configureOrderDiscountsModule = ({
|
|
|
258
85
|
await emit('ORDER_UPDATE_DISCOUNT', { discount });
|
|
259
86
|
return discount;
|
|
260
87
|
},
|
|
88
|
+
deleteOrderDiscounts: async (orderId: string) => {
|
|
89
|
+
const { deletedCount } = await OrderDiscounts.deleteMany({ orderId });
|
|
90
|
+
return deletedCount;
|
|
91
|
+
},
|
|
261
92
|
};
|
|
262
93
|
};
|
|
94
|
+
|
|
95
|
+
export type OrderDiscountsModule = ReturnType<typeof configureOrderDiscountsModule>;
|