@unchainedshop/core-orders 3.0.0-alpha7 → 3.0.0-rc2

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 (204) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +21 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesCollection.js +6 -0
  4. package/lib/db/OrderDeliveriesCollection.js.map +1 -1
  5. package/lib/db/OrderDiscountsCollection.d.ts +16 -2
  6. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderDiscountsCollection.js +5 -0
  8. package/lib/db/OrderDiscountsCollection.js.map +1 -1
  9. package/lib/db/OrderPaymentsCollection.d.ts +22 -2
  10. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  11. package/lib/db/OrderPaymentsCollection.js +6 -0
  12. package/lib/db/OrderPaymentsCollection.js.map +1 -1
  13. package/lib/db/OrderPositionsCollection.d.ts +22 -2
  14. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  15. package/lib/db/OrderPositionsCollection.js.map +1 -1
  16. package/lib/db/OrdersCollection.d.ts +33 -2
  17. package/lib/db/OrdersCollection.d.ts.map +1 -1
  18. package/lib/db/OrdersCollection.js +8 -1
  19. package/lib/db/OrdersCollection.js.map +1 -1
  20. package/lib/director/OrderDiscountAdapter.d.ts +2 -2
  21. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -1
  22. package/lib/director/OrderDiscountAdapter.js.map +1 -1
  23. package/lib/director/OrderDiscountDirector.d.ts +1 -1
  24. package/lib/director/OrderDiscountDirector.d.ts.map +1 -1
  25. package/lib/director/OrderDiscountDirector.js.map +1 -1
  26. package/lib/director/OrderPricingAdapter.d.ts +3 -3
  27. package/lib/director/OrderPricingAdapter.d.ts.map +1 -1
  28. package/lib/director/OrderPricingAdapter.js.map +1 -1
  29. package/lib/director/OrderPricingDirector.d.ts +1 -1
  30. package/lib/director/OrderPricingDirector.d.ts.map +1 -1
  31. package/lib/module/buildFindSelector.d.ts +5 -0
  32. package/lib/module/buildFindSelector.d.ts.map +1 -0
  33. package/lib/module/buildFindSelector.js +18 -0
  34. package/lib/module/buildFindSelector.js.map +1 -0
  35. package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
  36. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  37. package/lib/module/configureOrderDeliveriesModule.js +8 -69
  38. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  39. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +24 -0
  40. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +1 -0
  41. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +101 -0
  42. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +1 -0
  43. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +36 -0
  44. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +1 -0
  45. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +162 -0
  46. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +1 -0
  47. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +23 -0
  48. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +1 -0
  49. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +97 -0
  50. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +1 -0
  51. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +37 -0
  52. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +1 -0
  53. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +166 -0
  54. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +1 -0
  55. package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
  56. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  57. package/lib/module/configureOrderDiscountsModule.js +34 -143
  58. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  59. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +26 -0
  60. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +1 -0
  61. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +69 -0
  62. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +1 -0
  63. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +26 -0
  64. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +1 -0
  65. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +178 -0
  66. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +1 -0
  67. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +25 -0
  68. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +1 -0
  69. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +65 -0
  70. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +1 -0
  71. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +27 -0
  72. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +1 -0
  73. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +182 -0
  74. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +1 -0
  75. package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
  76. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  77. package/lib/module/configureOrderPaymentsModule.js +16 -124
  78. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  79. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +32 -0
  80. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +1 -0
  81. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +135 -0
  82. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +1 -0
  83. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +32 -0
  84. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +1 -0
  85. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +135 -0
  86. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +1 -0
  87. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +51 -0
  88. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +1 -0
  89. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +243 -0
  90. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +1 -0
  91. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +51 -0
  92. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +1 -0
  93. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +243 -0
  94. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +1 -0
  95. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +31 -0
  96. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +1 -0
  97. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +131 -0
  98. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +1 -0
  99. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +31 -0
  100. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +1 -0
  101. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +131 -0
  102. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +1 -0
  103. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +52 -0
  104. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +1 -0
  105. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +247 -0
  106. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +1 -0
  107. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +52 -0
  108. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +1 -0
  109. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +247 -0
  110. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +1 -0
  111. package/lib/module/configureOrderPositionsModule.d.ts +22 -41
  112. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  113. package/lib/module/configureOrderPositionsModule.js +22 -85
  114. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  115. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +44 -0
  116. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +1 -0
  117. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +138 -0
  118. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +1 -0
  119. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +60 -0
  120. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +1 -0
  121. package/lib/module/configureOrderPositionsModule_BASE_56197.js +201 -0
  122. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +1 -0
  123. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +43 -0
  124. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +1 -0
  125. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +134 -0
  126. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +1 -0
  127. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +61 -0
  128. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +1 -0
  129. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +205 -0
  130. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +1 -0
  131. package/lib/module/configureOrdersModule-mutations.d.ts +5 -11
  132. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  133. package/lib/module/configureOrdersModule-mutations.js +11 -50
  134. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  135. package/lib/module/configureOrdersModule-processing.d.ts +4 -8
  136. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -1
  137. package/lib/module/configureOrdersModule-processing.js +3 -1
  138. package/lib/module/configureOrdersModule-processing.js.map +1 -1
  139. package/lib/module/configureOrdersModule-queries.d.ts +18 -6
  140. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  141. package/lib/module/configureOrdersModule-queries.js +35 -22
  142. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  143. package/lib/module/configureOrdersModule-transformations.d.ts +2 -3
  144. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -1
  145. package/lib/module/configureOrdersModule-transformations.js +3 -3
  146. package/lib/module/configureOrdersModule-transformations.js.map +1 -1
  147. package/lib/module/configureOrdersModule.d.ts +11 -8
  148. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  149. package/lib/module/configureOrdersModule.js +133 -154
  150. package/lib/module/configureOrdersModule.js.map +1 -1
  151. package/lib/orders-index.d.ts +11 -8
  152. package/lib/orders-index.d.ts.map +1 -1
  153. package/lib/orders-index.js +11 -8
  154. package/lib/orders-index.js.map +1 -1
  155. package/lib/orders-settings.d.ts +4 -8
  156. package/lib/orders-settings.d.ts.map +1 -1
  157. package/lib/orders-settings.js.map +1 -1
  158. package/lib/types.d.ts +7 -22
  159. package/lib/types.d.ts.map +1 -1
  160. package/lib/types.js +0 -5
  161. package/lib/types.js.map +1 -1
  162. package/package.json +9 -12
  163. package/src/db/OrderDeliveriesCollection.ts +25 -2
  164. package/src/db/OrderDiscountsCollection.ts +18 -2
  165. package/src/db/OrderPaymentsCollection.ts +26 -2
  166. package/src/db/OrderPositionsCollection.ts +21 -2
  167. package/src/db/OrdersCollection.ts +44 -2
  168. package/src/module/buildFindSelector.test.ts +8 -8
  169. package/src/module/buildFindSelector.ts +24 -0
  170. package/src/module/configureOrderDeliveriesModule.ts +29 -172
  171. package/src/module/configureOrderDiscountsModule.ts +46 -213
  172. package/src/module/configureOrderPaymentsModule.ts +58 -266
  173. package/src/module/configureOrderPositionsModule.ts +57 -208
  174. package/src/module/configureOrdersModule-mutations.ts +13 -85
  175. package/src/module/configureOrdersModule-queries.ts +61 -29
  176. package/src/module/configureOrdersModule.ts +180 -264
  177. package/src/orders-index.ts +11 -10
  178. package/src/orders-settings.ts +5 -7
  179. package/tsconfig.json +5 -7
  180. package/lib/service/migrateOrderCartService.d.ts +0 -10
  181. package/lib/service/migrateOrderCartService.d.ts.map +0 -1
  182. package/lib/service/migrateOrderCartService.js +0 -32
  183. package/lib/service/migrateOrderCartService.js.map +0 -1
  184. package/lib/service/nextUserCartService.d.ts +0 -11
  185. package/lib/service/nextUserCartService.d.ts.map +0 -1
  186. package/lib/service/nextUserCartService.js +0 -34
  187. package/lib/service/nextUserCartService.js.map +0 -1
  188. package/lib/service/orderServices.d.ts +0 -8
  189. package/lib/service/orderServices.d.ts.map +0 -1
  190. package/lib/service/orderServices.js +0 -7
  191. package/lib/service/orderServices.js.map +0 -1
  192. package/src/db/OrderDiscountTrigger.ts +0 -4
  193. package/src/director/OrderDiscountAdapter.ts +0 -8
  194. package/src/director/OrderDiscountConfiguration.ts +0 -5
  195. package/src/director/OrderDiscountDirector.ts +0 -5
  196. package/src/director/OrderPricingAdapter.ts +0 -61
  197. package/src/director/OrderPricingDirector.ts +0 -72
  198. package/src/director/OrderPricingSheet.ts +0 -146
  199. package/src/module/configureOrdersModule-processing.ts +0 -508
  200. package/src/module/configureOrdersModule-transformations.ts +0 -171
  201. package/src/service/migrateOrderCartService.ts +0 -53
  202. package/src/service/nextUserCartService.ts +0 -54
  203. package/src/service/orderServices.ts +0 -12
  204. package/src/types.ts +0 -129
@@ -0,0 +1,24 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { OrderDelivery, OrderDeliveryStatus } from '../types.js';
3
+ import { PricingCalculation } from '@unchainedshop/utils';
4
+ export declare const buildFindByIdSelector: (orderDeliveryId: string) => mongodb.Filter<OrderDelivery>;
5
+ export declare const configureOrderDeliveriesModule: ({ OrderDeliveries, }: {
6
+ OrderDeliveries: mongodb.Collection<OrderDelivery>;
7
+ }) => {
8
+ findDelivery: ({ orderDeliveryId }: {
9
+ orderDeliveryId: string;
10
+ }, options?: mongodb.FindOptions) => Promise<OrderDelivery>;
11
+ normalizedStatus: (orderDelivery: OrderDelivery) => OrderDeliveryStatus;
12
+ create: (doc: OrderDelivery) => Promise<OrderDelivery>;
13
+ delete: (orderDeliveryId: string) => Promise<number>;
14
+ markAsDelivered: (orderDelivery: OrderDelivery) => Promise<OrderDelivery>;
15
+ updateContext: (orderDeliveryId: string, context: any) => Promise<OrderDelivery>;
16
+ updateStatus: (orderDeliveryId: string, { status, info }: {
17
+ status: OrderDeliveryStatus;
18
+ info?: string;
19
+ }) => Promise<OrderDelivery>;
20
+ updateCalculation: <T extends PricingCalculation>(orderDeliveryId: string, calculation: Array<T>) => Promise<OrderDelivery>;
21
+ deleteOrderDeliveries: (orderId: string) => Promise<number>;
22
+ };
23
+ export type OrderDeliveriesModule = ReturnType<typeof configureOrderDeliveriesModule>;
24
+ //# sourceMappingURL=configureOrderDeliveriesModule_BACKUP_54554.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_BACKUP_54554.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_BACKUP_54554.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4C,MAAM,wBAAwB,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqD1D,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,yBAExC;IACD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACpD;wCAqC0B;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,YACtC,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,aAAa,CAAC;sCApCc,aAAa;kBA4ChC,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;8BAa1B,MAAM;qCAKC,aAAa;qCAUb,MAAM,WAAW,GAAG,KAAG,OAAO,CAAC,aAAa,CAAC;oCAjEnE,MAAM,oBACL;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/D,OAAO,CAAC,aAAa,CAAC;wBA6FG,CAAC,SAAS,kBAAkB,mBACnC,MAAM,eACV,KAAK,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,aAAa,CAAC;qCAcc,MAAM;CAKhD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
2
+ import { emit, registerEvents } from '@unchainedshop/events';
3
+ import { OrderDeliveryStatus } from '../types.js';
4
+ const ORDER_DELIVERY_EVENTS = ['ORDER_DELIVER', 'ORDER_UPDATE_DELIVERY'];
5
+ export const buildFindByIdSelector = (orderDeliveryId) => generateDbFilterById(orderDeliveryId);
6
+ export const configureOrderDeliveriesModule = ({ OrderDeliveries, }) => {
7
+ registerEvents(ORDER_DELIVERY_EVENTS);
8
+ const normalizedStatus = (orderDelivery) => {
9
+ return orderDelivery.status === null
10
+ ? OrderDeliveryStatus.OPEN
11
+ : orderDelivery.status;
12
+ };
13
+ const updateStatus = async (orderDeliveryId, { status, info }) => {
14
+ const date = new Date();
15
+ const modifier = {
16
+ $set: { status, updated: new Date() },
17
+ $push: {
18
+ log: {
19
+ date,
20
+ status,
21
+ info,
22
+ },
23
+ },
24
+ };
25
+ if (status === OrderDeliveryStatus.DELIVERED) {
26
+ // eslint-disable-next-line
27
+ // @ts-ignore
28
+ modifier.$set.delivered = date;
29
+ }
30
+ const selector = buildFindByIdSelector(orderDeliveryId);
31
+ return OrderDeliveries.findOneAndUpdate(selector, modifier, { returnDocument: 'after' });
32
+ };
33
+ return {
34
+ // Queries
35
+ findDelivery: async ({ orderDeliveryId }, options) => {
36
+ return OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId), options);
37
+ },
38
+ normalizedStatus,
39
+ // Mutations
40
+ create: async (doc) => {
41
+ const { insertedId: orderDeliveryId } = await OrderDeliveries.insertOne({
42
+ _id: generateDbObjectId(),
43
+ created: new Date(),
44
+ ...doc,
45
+ context: doc.context || {},
46
+ status: null,
47
+ });
48
+ const orderDelivery = await OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId));
49
+ return orderDelivery;
50
+ },
51
+ delete: async (orderDeliveryId) => {
52
+ const { deletedCount } = await OrderDeliveries.deleteOne({ _id: orderDeliveryId });
53
+ return deletedCount;
54
+ },
55
+ markAsDelivered: async (orderDelivery) => {
56
+ if (normalizedStatus(orderDelivery) !== OrderDeliveryStatus.OPEN)
57
+ return;
58
+ const updatedOrderDelivery = await updateStatus(orderDelivery._id, {
59
+ status: OrderDeliveryStatus.DELIVERED,
60
+ info: 'mark delivered manually',
61
+ });
62
+ await emit('ORDER_DELIVER', { orderDelivery: updatedOrderDelivery });
63
+ return updatedOrderDelivery;
64
+ },
65
+ updateContext: async (orderDeliveryId, context) => {
66
+ const selector = buildFindByIdSelector(orderDeliveryId);
67
+ if (!context || Object.keys(context).length === 0)
68
+ return OrderDeliveries.findOne(selector, {});
69
+ const contextSetters = Object.fromEntries(Object.entries(context).map(([key, value]) => [`context.${key}`, value]));
70
+ const result = await OrderDeliveries.findOneAndUpdate(selector, {
71
+ $set: {
72
+ ...contextSetters,
73
+ updated: new Date(),
74
+ },
75
+ }, { includeResultMetadata: true, returnDocument: 'after' });
76
+ if (result.ok) {
77
+ await emit('ORDER_UPDATE_DELIVERY', {
78
+ orderDelivery: result.value,
79
+ });
80
+ return result.value;
81
+ }
82
+ return null;
83
+ },
84
+ updateStatus,
85
+ updateCalculation: async (orderDeliveryId, calculation) => {
86
+ return OrderDeliveries.findOneAndUpdate({ _id: orderDeliveryId }, {
87
+ $set: {
88
+ calculation,
89
+ updated: new Date(),
90
+ },
91
+ }, {
92
+ returnDocument: 'after',
93
+ });
94
+ },
95
+ deleteOrderDeliveries: async (orderId) => {
96
+ const { deletedCount } = await OrderDeliveries.deleteMany({ orderId });
97
+ return deletedCount;
98
+ },
99
+ };
100
+ };
101
+ //# sourceMappingURL=configureOrderDeliveriesModule_BACKUP_54554.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_BACKUP_54554.js","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_BACKUP_54554.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { Order, OrderDelivery, OrderDeliveryStatus, OrderDiscount } from '../types.js';
3
+ import { type DeliveryLocation, type IDeliveryPricingSheet } from '@unchainedshop/core-delivery';
4
+ import { OrderPricingDiscount } from '../director/OrderPricingDirector.js';
5
+ export type OrderDeliveriesModule = {
6
+ findDelivery: (params: {
7
+ orderDeliveryId: string;
8
+ }, options?: mongodb.FindOptions) => Promise<OrderDelivery>;
9
+ discounts: (orderDelivery: OrderDelivery, params: {
10
+ order: Order;
11
+ orderDiscount: OrderDiscount;
12
+ }, unchainedAPI: any) => Array<OrderPricingDiscount>;
13
+ isBlockingOrderConfirmation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<boolean>;
14
+ isBlockingOrderFullfillment: (orderDelivery: OrderDelivery) => boolean;
15
+ normalizedStatus: (orderDelivery: OrderDelivery) => string;
16
+ pricingSheet: (orderDelivery: OrderDelivery, currency: string, unchainedAPI: any) => IDeliveryPricingSheet;
17
+ create: (doc: OrderDelivery) => Promise<OrderDelivery>;
18
+ delete: (orderDeliveryId: string) => Promise<number>;
19
+ markAsDelivered: (orderDelivery: OrderDelivery) => Promise<void>;
20
+ activePickUpLocation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<DeliveryLocation | null>;
21
+ send: (orderDelivery: OrderDelivery, params: {
22
+ order: Order;
23
+ deliveryContext?: any;
24
+ }, unchainedAPI: any) => Promise<OrderDelivery>;
25
+ updateContext: (orderDeliveryId: string, context: any) => Promise<OrderDelivery | null>;
26
+ updateStatus: (orderDeliveryId: string, params: {
27
+ status: OrderDeliveryStatus;
28
+ info?: string;
29
+ }) => Promise<OrderDelivery>;
30
+ updateCalculation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<OrderDelivery>;
31
+ };
32
+ export declare const buildFindByIdSelector: (orderDeliveryId: string) => mongodb.Filter<OrderDelivery>;
33
+ export declare const configureOrderDeliveriesModule: ({ OrderDeliveries, }: {
34
+ OrderDeliveries: mongodb.Collection<OrderDelivery>;
35
+ }) => OrderDeliveriesModule;
36
+ //# sourceMappingURL=configureOrderDeliveriesModule_BASE_54554.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_BASE_54554.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_BASE_54554.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4C,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAEjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAElC,YAAY,EAAE,CACZ,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;IAG5B,SAAS,EAAE,CACT,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,EACtD,YAAY,KAAA,KACT,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjC,2BAA2B,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,2BAA2B,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC;IACvE,gBAAgB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,MAAM,CAAC;IAC3D,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,KAAA,KAAK,qBAAqB,CAAC;IAGtG,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD,eAAe,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,oBAAoB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEvG,IAAI,EAAE,CACJ,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,eAAe,CAAC,EAAE,GAAG,CAAA;KAAE,EAC/C,YAAY,KAAA,KACT,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,aAAa,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAExF,YAAY,EAAE,CACZ,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACnD,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,iBAAiB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3F,CAAC;AAIF,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,yBAExC;IACD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACpD,KAAG,qBAuNH,CAAC"}
@@ -0,0 +1,162 @@
1
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
2
+ import { emit, registerEvents } from '@unchainedshop/events';
3
+ import { OrderDeliveryStatus } from '../types.js';
4
+ import { DeliveryDirector } from '@unchainedshop/core-delivery'; // TODO: Important
5
+ const ORDER_DELIVERY_EVENTS = ['ORDER_DELIVER', 'ORDER_UPDATE_DELIVERY'];
6
+ export const buildFindByIdSelector = (orderDeliveryId) => generateDbFilterById(orderDeliveryId);
7
+ export const configureOrderDeliveriesModule = ({ OrderDeliveries, }) => {
8
+ registerEvents(ORDER_DELIVERY_EVENTS);
9
+ const normalizedStatus = (orderDelivery) => {
10
+ return orderDelivery.status === null
11
+ ? OrderDeliveryStatus.OPEN
12
+ : orderDelivery.status;
13
+ };
14
+ const updateStatus = async (orderDeliveryId, { status, info }) => {
15
+ const date = new Date();
16
+ const modifier = {
17
+ $set: { status, updated: new Date() },
18
+ $push: {
19
+ log: {
20
+ date,
21
+ status,
22
+ info,
23
+ },
24
+ },
25
+ };
26
+ if (status === OrderDeliveryStatus.DELIVERED) {
27
+ // eslint-disable-next-line
28
+ // @ts-ignore
29
+ modifier.$set.delivered = date;
30
+ }
31
+ const selector = buildFindByIdSelector(orderDeliveryId);
32
+ return OrderDeliveries.findOneAndUpdate(selector, modifier, { returnDocument: 'after' });
33
+ };
34
+ return {
35
+ // Queries
36
+ findDelivery: async ({ orderDeliveryId }, options) => {
37
+ return OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId), options);
38
+ },
39
+ // Transformations
40
+ discounts: (orderDelivery, { order, orderDiscount }, context) => {
41
+ const { modules } = context;
42
+ if (!orderDelivery)
43
+ return [];
44
+ const pricingSheet = modules.orders.deliveries.pricingSheet(orderDelivery, order.currency, context);
45
+ return pricingSheet.discountPrices(orderDiscount._id).map((discount) => ({
46
+ delivery: orderDelivery,
47
+ ...discount,
48
+ }));
49
+ },
50
+ isBlockingOrderConfirmation: async (orderDelivery, unchainedAPI) => {
51
+ const provider = await unchainedAPI.modules.delivery.findProvider({
52
+ deliveryProviderId: orderDelivery.deliveryProviderId,
53
+ });
54
+ const isAutoReleaseAllowed = await unchainedAPI.modules.delivery.isAutoReleaseAllowed(provider, unchainedAPI);
55
+ return !isAutoReleaseAllowed;
56
+ },
57
+ activePickUpLocation: async (orderDelivery, unchainedAPI) => {
58
+ const { orderPickUpLocationId } = orderDelivery.context || {};
59
+ const provider = await unchainedAPI.modules.delivery.findProvider({
60
+ deliveryProviderId: orderDelivery.deliveryProviderId,
61
+ });
62
+ const director = await DeliveryDirector.actions(provider, { orderDelivery: orderDelivery }, unchainedAPI);
63
+ return director.pickUpLocationById(orderPickUpLocationId);
64
+ },
65
+ isBlockingOrderFullfillment: (orderDelivery) => {
66
+ if (orderDelivery.status === OrderDeliveryStatus.DELIVERED)
67
+ return false;
68
+ return true;
69
+ },
70
+ normalizedStatus,
71
+ pricingSheet: (orderDelivery, currency, { modules }) => {
72
+ return modules.delivery.pricingSheet({
73
+ calculation: orderDelivery.calculation,
74
+ currency,
75
+ });
76
+ },
77
+ // Mutations
78
+ create: async (doc) => {
79
+ const { insertedId: orderDeliveryId } = await OrderDeliveries.insertOne({
80
+ _id: generateDbObjectId(),
81
+ created: new Date(),
82
+ ...doc,
83
+ context: doc.context || {},
84
+ status: null,
85
+ });
86
+ const orderDelivery = await OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId));
87
+ return orderDelivery;
88
+ },
89
+ delete: async (orderDeliveryId) => {
90
+ const { deletedCount } = await OrderDeliveries.deleteOne({ _id: orderDeliveryId });
91
+ return deletedCount;
92
+ },
93
+ markAsDelivered: async (orderDelivery) => {
94
+ if (normalizedStatus(orderDelivery) !== OrderDeliveryStatus.OPEN)
95
+ return;
96
+ const updatedOrderDelivery = await updateStatus(orderDelivery._id, {
97
+ status: OrderDeliveryStatus.DELIVERED,
98
+ info: 'mark delivered manually',
99
+ });
100
+ await emit('ORDER_DELIVER', { orderDelivery: updatedOrderDelivery });
101
+ },
102
+ send: async (orderDelivery, { order, deliveryContext }, unchainedAPI) => {
103
+ if (normalizedStatus(orderDelivery) !== OrderDeliveryStatus.OPEN)
104
+ return orderDelivery;
105
+ const deliveryProvider = await unchainedAPI.modules.delivery.findProvider({
106
+ deliveryProviderId: orderDelivery.deliveryProviderId,
107
+ });
108
+ const deliveryProviderId = deliveryProvider._id;
109
+ const address = orderDelivery.context?.address || order || order.billingAddress;
110
+ const arbitraryResponseData = await unchainedAPI.modules.delivery.send(deliveryProviderId, {
111
+ order,
112
+ orderDelivery,
113
+ transactionContext: {
114
+ ...(deliveryContext || {}),
115
+ ...(orderDelivery.context || {}),
116
+ ...(address || {}),
117
+ },
118
+ }, unchainedAPI);
119
+ if (arbitraryResponseData) {
120
+ return updateStatus(orderDelivery._id, {
121
+ status: OrderDeliveryStatus.DELIVERED,
122
+ info: JSON.stringify(arbitraryResponseData),
123
+ });
124
+ }
125
+ return orderDelivery;
126
+ },
127
+ updateContext: async (orderDeliveryId, context) => {
128
+ const selector = buildFindByIdSelector(orderDeliveryId);
129
+ if (!context || Object.keys(context).length === 0)
130
+ return OrderDeliveries.findOne(selector, {});
131
+ const contextSetters = Object.fromEntries(Object.entries(context).map(([key, value]) => [`context.${key}`, value]));
132
+ const result = await OrderDeliveries.findOneAndUpdate(selector, {
133
+ $set: {
134
+ ...contextSetters,
135
+ updated: new Date(),
136
+ },
137
+ }, { includeResultMetadata: true, returnDocument: 'after' });
138
+ if (result.ok) {
139
+ await emit('ORDER_UPDATE_DELIVERY', {
140
+ orderDelivery: result.value,
141
+ });
142
+ return result.value;
143
+ }
144
+ return null;
145
+ },
146
+ updateStatus,
147
+ updateCalculation: async (orderDelivery, unchainedAPI) => {
148
+ const calculation = await unchainedAPI.modules.delivery.calculate({
149
+ item: orderDelivery,
150
+ }, unchainedAPI);
151
+ return OrderDeliveries.findOneAndUpdate(buildFindByIdSelector(orderDelivery._id), {
152
+ $set: {
153
+ calculation,
154
+ updated: new Date(),
155
+ },
156
+ }, {
157
+ returnDocument: 'after',
158
+ });
159
+ },
160
+ };
161
+ };
162
+ //# sourceMappingURL=configureOrderDeliveriesModule_BASE_54554.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_BASE_54554.js","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_BASE_54554.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { OrderDelivery, OrderDeliveryStatus } from '../types.js';
3
+ import { PricingCalculation } from '@unchainedshop/utils';
4
+ export declare const buildFindByIdSelector: (orderDeliveryId: string) => mongodb.Filter<OrderDelivery>;
5
+ export declare const configureOrderDeliveriesModule: ({ OrderDeliveries, }: {
6
+ OrderDeliveries: mongodb.Collection<OrderDelivery>;
7
+ }) => {
8
+ findDelivery: ({ orderDeliveryId }: {
9
+ orderDeliveryId: string;
10
+ }, options?: mongodb.FindOptions) => Promise<OrderDelivery>;
11
+ normalizedStatus: (orderDelivery: OrderDelivery) => OrderDeliveryStatus;
12
+ create: (doc: OrderDelivery) => Promise<OrderDelivery>;
13
+ delete: (orderDeliveryId: string) => Promise<number>;
14
+ markAsDelivered: (orderDelivery: OrderDelivery) => Promise<OrderDelivery>;
15
+ updateContext: (orderDeliveryId: string, context: any) => Promise<OrderDelivery>;
16
+ updateStatus: (orderDeliveryId: string, { status, info }: {
17
+ status: OrderDeliveryStatus;
18
+ info?: string;
19
+ }) => Promise<OrderDelivery>;
20
+ updateCalculation: <T extends PricingCalculation>(orderDeliveryId: string, calculation: Array<T>) => Promise<OrderDelivery>;
21
+ };
22
+ export type OrderDeliveriesModule = ReturnType<typeof configureOrderDeliveriesModule>;
23
+ //# sourceMappingURL=configureOrderDeliveriesModule_LOCAL_54554.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_LOCAL_54554.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_LOCAL_54554.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4C,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,yBAExC;IACD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACpD;wCAqC0B;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,YACtC,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,aAAa,CAAC;sCApCc,aAAa;kBA4ChC,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;8BAa1B,MAAM;qCAKC,aAAa;qCAUb,MAAM,WAAW,GAAG,KAAG,OAAO,CAAC,aAAa,CAAC;oCAjEnE,MAAM,oBACL;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/D,OAAO,CAAC,aAAa,CAAC;wBA6FG,CAAC,SAAS,kBAAkB,mBACnC,MAAM,eACV,KAAK,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,aAAa,CAAC;CAe5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
2
+ import { emit, registerEvents } from '@unchainedshop/events';
3
+ import { OrderDeliveryStatus } from '../types.js';
4
+ const ORDER_DELIVERY_EVENTS = ['ORDER_DELIVER', 'ORDER_UPDATE_DELIVERY'];
5
+ export const buildFindByIdSelector = (orderDeliveryId) => generateDbFilterById(orderDeliveryId);
6
+ export const configureOrderDeliveriesModule = ({ OrderDeliveries, }) => {
7
+ registerEvents(ORDER_DELIVERY_EVENTS);
8
+ const normalizedStatus = (orderDelivery) => {
9
+ return orderDelivery.status === null
10
+ ? OrderDeliveryStatus.OPEN
11
+ : orderDelivery.status;
12
+ };
13
+ const updateStatus = async (orderDeliveryId, { status, info }) => {
14
+ const date = new Date();
15
+ const modifier = {
16
+ $set: { status, updated: new Date() },
17
+ $push: {
18
+ log: {
19
+ date,
20
+ status,
21
+ info,
22
+ },
23
+ },
24
+ };
25
+ if (status === OrderDeliveryStatus.DELIVERED) {
26
+ // eslint-disable-next-line
27
+ // @ts-ignore
28
+ modifier.$set.delivered = date;
29
+ }
30
+ const selector = buildFindByIdSelector(orderDeliveryId);
31
+ return OrderDeliveries.findOneAndUpdate(selector, modifier, { returnDocument: 'after' });
32
+ };
33
+ return {
34
+ // Queries
35
+ findDelivery: async ({ orderDeliveryId }, options) => {
36
+ return OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId), options);
37
+ },
38
+ normalizedStatus,
39
+ // Mutations
40
+ create: async (doc) => {
41
+ const { insertedId: orderDeliveryId } = await OrderDeliveries.insertOne({
42
+ _id: generateDbObjectId(),
43
+ created: new Date(),
44
+ ...doc,
45
+ context: doc.context || {},
46
+ status: null,
47
+ });
48
+ const orderDelivery = await OrderDeliveries.findOne(buildFindByIdSelector(orderDeliveryId));
49
+ return orderDelivery;
50
+ },
51
+ delete: async (orderDeliveryId) => {
52
+ const { deletedCount } = await OrderDeliveries.deleteOne({ _id: orderDeliveryId });
53
+ return deletedCount;
54
+ },
55
+ markAsDelivered: async (orderDelivery) => {
56
+ if (normalizedStatus(orderDelivery) !== OrderDeliveryStatus.OPEN)
57
+ return;
58
+ const updatedOrderDelivery = await updateStatus(orderDelivery._id, {
59
+ status: OrderDeliveryStatus.DELIVERED,
60
+ info: 'mark delivered manually',
61
+ });
62
+ await emit('ORDER_DELIVER', { orderDelivery: updatedOrderDelivery });
63
+ return updatedOrderDelivery;
64
+ },
65
+ updateContext: async (orderDeliveryId, context) => {
66
+ const selector = buildFindByIdSelector(orderDeliveryId);
67
+ if (!context || Object.keys(context).length === 0)
68
+ return OrderDeliveries.findOne(selector, {});
69
+ const contextSetters = Object.fromEntries(Object.entries(context).map(([key, value]) => [`context.${key}`, value]));
70
+ const result = await OrderDeliveries.findOneAndUpdate(selector, {
71
+ $set: {
72
+ ...contextSetters,
73
+ updated: new Date(),
74
+ },
75
+ }, { includeResultMetadata: true, returnDocument: 'after' });
76
+ if (result.ok) {
77
+ await emit('ORDER_UPDATE_DELIVERY', {
78
+ orderDelivery: result.value,
79
+ });
80
+ return result.value;
81
+ }
82
+ return null;
83
+ },
84
+ updateStatus,
85
+ updateCalculation: async (orderDeliveryId, calculation) => {
86
+ return OrderDeliveries.findOneAndUpdate({ _id: orderDeliveryId }, {
87
+ $set: {
88
+ calculation,
89
+ updated: new Date(),
90
+ },
91
+ }, {
92
+ returnDocument: 'after',
93
+ });
94
+ },
95
+ };
96
+ };
97
+ //# sourceMappingURL=configureOrderDeliveriesModule_LOCAL_54554.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_LOCAL_54554.js","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_LOCAL_54554.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { Order, OrderDelivery, OrderDeliveryStatus, OrderDiscount } from '../types.js';
3
+ import { type DeliveryLocation, type IDeliveryPricingSheet } from '@unchainedshop/core-delivery';
4
+ import { OrderPricingDiscount } from '../director/OrderPricingDirector.js';
5
+ export type OrderDeliveriesModule = {
6
+ findDelivery: (params: {
7
+ orderDeliveryId: string;
8
+ }, options?: mongodb.FindOptions) => Promise<OrderDelivery>;
9
+ discounts: (orderDelivery: OrderDelivery, params: {
10
+ order: Order;
11
+ orderDiscount: OrderDiscount;
12
+ }, unchainedAPI: any) => Array<OrderPricingDiscount>;
13
+ isBlockingOrderConfirmation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<boolean>;
14
+ isBlockingOrderFullfillment: (orderDelivery: OrderDelivery) => boolean;
15
+ normalizedStatus: (orderDelivery: OrderDelivery) => string;
16
+ pricingSheet: (orderDelivery: OrderDelivery, currency: string, unchainedAPI: any) => IDeliveryPricingSheet;
17
+ create: (doc: OrderDelivery) => Promise<OrderDelivery>;
18
+ delete: (orderDeliveryId: string) => Promise<number>;
19
+ markAsDelivered: (orderDelivery: OrderDelivery) => Promise<void>;
20
+ activePickUpLocation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<DeliveryLocation | null>;
21
+ send: (orderDelivery: OrderDelivery, params: {
22
+ order: Order;
23
+ deliveryContext?: any;
24
+ }, unchainedAPI: any) => Promise<OrderDelivery>;
25
+ updateContext: (orderDeliveryId: string, context: any) => Promise<OrderDelivery | null>;
26
+ updateStatus: (orderDeliveryId: string, params: {
27
+ status: OrderDeliveryStatus;
28
+ info?: string;
29
+ }) => Promise<OrderDelivery>;
30
+ updateCalculation: (orderDelivery: OrderDelivery, unchainedAPI: any) => Promise<OrderDelivery>;
31
+ deleteOrderDeliveries: (orderId: string) => Promise<number>;
32
+ };
33
+ export declare const buildFindByIdSelector: (orderDeliveryId: string) => mongodb.Filter<OrderDelivery>;
34
+ export declare const configureOrderDeliveriesModule: ({ OrderDeliveries, }: {
35
+ OrderDeliveries: mongodb.Collection<OrderDelivery>;
36
+ }) => OrderDeliveriesModule;
37
+ //# sourceMappingURL=configureOrderDeliveriesModule_REMOTE_54554.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDeliveriesModule_REMOTE_54554.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDeliveriesModule_REMOTE_54554.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4C,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAEjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAElC,YAAY,EAAE,CACZ,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,EACnC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;IAG5B,SAAS,EAAE,CACT,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,EACtD,YAAY,KAAA,KACT,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjC,2BAA2B,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,2BAA2B,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC;IACvE,gBAAgB,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,MAAM,CAAC;IAC3D,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,KAAA,KAAK,qBAAqB,CAAC;IAGtG,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAErD,eAAe,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,oBAAoB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEvG,IAAI,EAAE,CACJ,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,eAAe,CAAC,EAAE,GAAG,CAAA;KAAE,EAC/C,YAAY,KAAA,KACT,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,aAAa,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAExF,YAAY,EAAE,CACZ,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACnD,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,iBAAiB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1F,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D,CAAC;AAIF,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,yBAExC;IACD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACpD,KAAG,qBA2NH,CAAC"}