@unchainedshop/core-orders 4.0.0-rc.9 → 4.0.0

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 (132) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +2 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesSchema.d.ts +3 -0
  4. package/lib/db/OrderDeliveriesSchema.d.ts.map +1 -0
  5. package/lib/db/OrderDeliveriesSchema.js +20 -0
  6. package/lib/db/OrderDeliveriesSchema.js.map +1 -0
  7. package/lib/db/OrderDiscountTrigger.d.ts +5 -0
  8. package/lib/db/OrderDiscountTrigger.d.ts.map +1 -0
  9. package/lib/db/OrderDiscountTrigger.js +6 -0
  10. package/lib/db/OrderDiscountTrigger.js.map +1 -0
  11. package/lib/db/OrderDiscountsCollection.d.ts +2 -2
  12. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  13. package/lib/db/OrderDiscountsSchema.d.ts +3 -0
  14. package/lib/db/OrderDiscountsSchema.d.ts.map +1 -0
  15. package/lib/db/OrderDiscountsSchema.js +12 -0
  16. package/lib/db/OrderDiscountsSchema.js.map +1 -0
  17. package/lib/db/OrderPaymentsCollection.d.ts +3 -3
  18. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  19. package/lib/db/OrderPaymentsSchema.d.ts +3 -0
  20. package/lib/db/OrderPaymentsSchema.d.ts.map +1 -0
  21. package/lib/db/OrderPaymentsSchema.js +20 -0
  22. package/lib/db/OrderPaymentsSchema.js.map +1 -0
  23. package/lib/db/OrderPositionsCollection.d.ts +1 -2
  24. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  25. package/lib/db/OrderPositionsCollection.js.map +1 -1
  26. package/lib/db/OrderPositionsSchema.d.ts +3 -0
  27. package/lib/db/OrderPositionsSchema.d.ts.map +1 -0
  28. package/lib/db/OrderPositionsSchema.js +37 -0
  29. package/lib/db/OrderPositionsSchema.js.map +1 -0
  30. package/lib/db/OrdersCollection.d.ts +5 -1
  31. package/lib/db/OrdersCollection.d.ts.map +1 -1
  32. package/lib/db/OrdersCollection.js +25 -21
  33. package/lib/db/OrdersCollection.js.map +1 -1
  34. package/lib/db/OrdersSchema.d.ts +3 -0
  35. package/lib/db/OrdersSchema.d.ts.map +1 -0
  36. package/lib/db/OrdersSchema.js +30 -0
  37. package/lib/db/OrdersSchema.js.map +1 -0
  38. package/lib/director/OrderDiscountAdapter.d.ts +4 -0
  39. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -0
  40. package/lib/director/OrderDiscountAdapter.js +3 -0
  41. package/lib/director/OrderDiscountAdapter.js.map +1 -0
  42. package/lib/director/OrderDiscountConfiguration.d.ts +6 -0
  43. package/lib/director/OrderDiscountConfiguration.d.ts.map +1 -0
  44. package/lib/director/OrderDiscountConfiguration.js +2 -0
  45. package/lib/director/OrderDiscountConfiguration.js.map +1 -0
  46. package/lib/director/OrderDiscountDirector.d.ts +3 -0
  47. package/lib/director/OrderDiscountDirector.d.ts.map +1 -0
  48. package/lib/director/OrderDiscountDirector.js +3 -0
  49. package/lib/director/OrderDiscountDirector.js.map +1 -0
  50. package/lib/director/OrderPricingAdapter.d.ts +4 -0
  51. package/lib/director/OrderPricingAdapter.d.ts.map +1 -0
  52. package/lib/director/OrderPricingAdapter.js +25 -0
  53. package/lib/director/OrderPricingAdapter.js.map +1 -0
  54. package/lib/director/OrderPricingDirector.d.ts +3 -0
  55. package/lib/director/OrderPricingDirector.d.ts.map +1 -0
  56. package/lib/director/OrderPricingDirector.js +39 -0
  57. package/lib/director/OrderPricingDirector.js.map +1 -0
  58. package/lib/director/OrderPricingSheet.d.ts +4 -0
  59. package/lib/director/OrderPricingSheet.d.ts.map +1 -0
  60. package/lib/director/OrderPricingSheet.js +101 -0
  61. package/lib/director/OrderPricingSheet.js.map +1 -0
  62. package/lib/module/buildFindSelector.d.ts +1 -1
  63. package/lib/module/buildFindSelector.d.ts.map +1 -1
  64. package/lib/module/buildFindSelector.js +17 -1
  65. package/lib/module/buildFindSelector.js.map +1 -1
  66. package/lib/module/configureOrderDeliveriesModule.d.ts +9 -6
  67. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  68. package/lib/module/configureOrderDeliveriesModule.js +14 -10
  69. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  70. package/lib/module/configureOrderDiscountsModule.d.ts +5 -5
  71. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  72. package/lib/module/configureOrderDiscountsModule.js +3 -3
  73. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  74. package/lib/module/configureOrderPaymentsModule.d.ts +10 -7
  75. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  76. package/lib/module/configureOrderPaymentsModule.js +18 -10
  77. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  78. package/lib/module/configureOrderPositionsModule.d.ts +16 -5
  79. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  80. package/lib/module/configureOrderPositionsModule.js +25 -5
  81. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  82. package/lib/module/configureOrdersModule-mutations.d.ts +14 -13
  83. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  84. package/lib/module/configureOrdersModule-mutations.js +19 -11
  85. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  86. package/lib/module/configureOrdersModule-processing.d.ts +14 -0
  87. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -0
  88. package/lib/module/configureOrdersModule-processing.js +348 -0
  89. package/lib/module/configureOrdersModule-processing.js.map +1 -0
  90. package/lib/module/configureOrdersModule-queries.d.ts +21 -6
  91. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  92. package/lib/module/configureOrdersModule-queries.js +19 -84
  93. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  94. package/lib/module/configureOrdersModule-transformations.d.ts +6 -0
  95. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -0
  96. package/lib/module/configureOrdersModule-transformations.js +112 -0
  97. package/lib/module/configureOrdersModule-transformations.js.map +1 -0
  98. package/lib/module/configureOrdersModule.d.ts +154 -21
  99. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  100. package/lib/module/configureOrdersModule.js +9 -3
  101. package/lib/module/configureOrdersModule.js.map +1 -1
  102. package/lib/orders-settings.d.ts +8 -12
  103. package/lib/orders-settings.d.ts.map +1 -1
  104. package/lib/orders-settings.js +8 -8
  105. package/lib/orders-settings.js.map +1 -1
  106. package/lib/service/migrateOrderCartService.d.ts +3 -0
  107. package/lib/service/migrateOrderCartService.d.ts.map +1 -0
  108. package/lib/service/migrateOrderCartService.js +32 -0
  109. package/lib/service/migrateOrderCartService.js.map +1 -0
  110. package/lib/service/nextUserCartService.d.ts +3 -0
  111. package/lib/service/nextUserCartService.d.ts.map +1 -0
  112. package/lib/service/nextUserCartService.js +34 -0
  113. package/lib/service/nextUserCartService.js.map +1 -0
  114. package/lib/service/orderServices.d.ts +3 -0
  115. package/lib/service/orderServices.d.ts.map +1 -0
  116. package/lib/service/orderServices.js +7 -0
  117. package/lib/service/orderServices.js.map +1 -0
  118. package/package.json +4 -4
  119. package/src/db/OrderDeliveriesCollection.ts +2 -2
  120. package/src/db/OrderDiscountsCollection.ts +2 -2
  121. package/src/db/OrderPaymentsCollection.ts +3 -3
  122. package/src/db/OrderPositionsCollection.ts +1 -2
  123. package/src/db/OrdersCollection.ts +31 -22
  124. package/src/module/buildFindSelector.ts +19 -1
  125. package/src/module/configureOrderDeliveriesModule.ts +28 -16
  126. package/src/module/configureOrderDiscountsModule.ts +11 -11
  127. package/src/module/configureOrderPaymentsModule.ts +31 -20
  128. package/src/module/configureOrderPositionsModule.ts +47 -16
  129. package/src/module/configureOrdersModule-mutations.ts +46 -44
  130. package/src/module/configureOrdersModule-queries.ts +42 -91
  131. package/src/module/configureOrdersModule.ts +21 -33
  132. package/src/orders-settings.ts +20 -19
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrderPositionsModule.js","sourceRoot":"","sources":["../../src/module/configureOrderPositionsModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrderPositionsModule.js","sourceRoot":"","sources":["../../src/module/configureOrderPositionsModule.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { Address, Contact, mongodb } from '@unchainedshop/mongodb';
2
2
  import { Order } from '../db/OrdersCollection.js';
3
3
  import { OrderPosition } from '../db/OrderPositionsCollection.js';
4
- export interface OrderMutations {
5
- create: (doc: {
4
+ export declare const configureOrderModuleMutations: ({ Orders, OrderPositions, }: {
5
+ Orders: mongodb.Collection<Order>;
6
+ OrderPositions: mongodb.Collection<OrderPosition>;
7
+ }) => {
8
+ create: ({ userId, orderNumber, currencyCode, countryCode, billingAddress, contact, context, }: {
6
9
  userId: string;
7
10
  billingAddress?: Address;
8
11
  contact?: Contact;
@@ -10,23 +13,21 @@ export interface OrderMutations {
10
13
  currencyCode: string;
11
14
  orderNumber?: string;
12
15
  originEnrollmentId?: string;
16
+ context?: Record<string, any>;
13
17
  }) => Promise<Order>;
14
18
  delete: (orderId: string) => Promise<number>;
15
- setCartOwner: (params: {
19
+ setCartOwner: ({ orderId, userId }: {
16
20
  orderId: string;
17
21
  userId: string;
18
22
  }) => Promise<void>;
19
- moveCartPositions: (params: {
23
+ moveCartPositions: ({ fromOrderId, toOrderId, }: {
20
24
  fromOrderId: string;
21
25
  toOrderId: string;
22
26
  }) => Promise<void>;
23
- updateBillingAddress: (orderId: string, billingAddress: Address) => Promise<Order>;
24
- updateContact: (orderId: string, contact: Contact) => Promise<Order>;
25
- updateContext: (orderId: string, context: any) => Promise<Order>;
26
- updateCalculationSheet: (orderId: string, calculation: any) => Promise<Order>;
27
- }
28
- export declare const configureOrderModuleMutations: ({ Orders, OrderPositions, }: {
29
- Orders: mongodb.Collection<Order>;
30
- OrderPositions: mongodb.Collection<OrderPosition>;
31
- }) => OrderMutations;
27
+ updateBillingAddress: (orderId: string, billingAddress: Address) => Promise<mongodb.WithId<Order> | null>;
28
+ updateContact: (orderId: string, contact: Contact) => Promise<mongodb.WithId<Order> | null>;
29
+ updateCalculationSheet: (orderId: string, calculation: any) => Promise<mongodb.WithId<Order> | null>;
30
+ updateContext: (orderId: string, context: any) => Promise<mongodb.WithId<Order> | null>;
31
+ };
32
+ export type OrderMutations = ReturnType<typeof configureOrderModuleMutations>;
32
33
  //# sourceMappingURL=configureOrdersModule-mutations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrdersModule-mutations.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,OAAO,EAGP,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAe,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,YAAY,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,iBAAiB,EAAE,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzF,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACnF,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACrE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjE,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,KAAA,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CAC1E;AAUD,eAAO,MAAM,6BAA6B,GAAI,6BAG3C;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD,KAAG,cAgIH,CAAC"}
1
+ {"version":3,"file":"configureOrdersModule-mutations.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,OAAO,EAGP,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAe,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAUlE,eAAO,MAAM,6BAA6B,GAAI,6BAG3C;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD;oGAYM;QACD,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B;sBAsBuB,MAAM;wCAOY;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;qDAW1E;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB;oCAWqC,MAAM,kBAAkB,OAAO;6BAiBtC,MAAM,WAAW,OAAO;sCAiBf,MAAM,eAAe,GAAG;6BAiBjC,MAAM,WAAW,GAAG;CAwBtD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -11,7 +11,7 @@ const ORDER_EVENTS = [
11
11
  export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
12
12
  registerEvents(ORDER_EVENTS);
13
13
  return {
14
- create: async ({ userId, orderNumber, currencyCode, countryCode, billingAddress, contact }) => {
14
+ create: async ({ userId, orderNumber, currencyCode, countryCode, billingAddress, contact, context, }) => {
15
15
  const { insertedId: orderId } = await Orders.insertOne({
16
16
  _id: generateDbObjectId(),
17
17
  created: new Date(),
@@ -24,13 +24,16 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
24
24
  calculation: [],
25
25
  log: [],
26
26
  orderNumber,
27
+ context: context || {},
27
28
  });
28
- const order = await Orders.findOne(generateDbFilterById(orderId), {});
29
+ const order = (await Orders.findOne(generateDbFilterById(orderId), {}));
29
30
  await emit('ORDER_CREATE', { order });
30
31
  return order;
31
32
  },
32
33
  delete: async (orderId) => {
33
34
  const { deletedCount } = await Orders.deleteOne({ _id: orderId });
35
+ if (!deletedCount)
36
+ return 0;
34
37
  await emit('ORDER_REMOVE', { orderId });
35
38
  return deletedCount;
36
39
  },
@@ -41,7 +44,7 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
41
44
  },
42
45
  });
43
46
  },
44
- moveCartPositions: async ({ fromOrderId, toOrderId }) => {
47
+ moveCartPositions: async ({ fromOrderId, toOrderId, }) => {
45
48
  await OrderPositions.updateMany({ orderId: fromOrderId }, {
46
49
  $set: {
47
50
  orderId: toOrderId,
@@ -56,7 +59,9 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
56
59
  updated: new Date(),
57
60
  },
58
61
  }, { returnDocument: 'after' });
59
- await emit('ORDER_UPDATE', { order, field: 'billing' });
62
+ if (!order)
63
+ return null;
64
+ await emit('ORDER_UPDATE', { order, field: 'billingAddress' });
60
65
  return order;
61
66
  },
62
67
  updateContact: async (orderId, contact) => {
@@ -67,6 +72,8 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
67
72
  updated: new Date(),
68
73
  },
69
74
  }, { returnDocument: 'after' });
75
+ if (!order)
76
+ return null;
70
77
  await emit('ORDER_UPDATE', { order, field: 'contact' });
71
78
  return order;
72
79
  },
@@ -78,6 +85,8 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
78
85
  updated: new Date(),
79
86
  },
80
87
  }, { returnDocument: 'after' });
88
+ if (!order)
89
+ return null;
81
90
  await emit('ORDER_UPDATE', { order, field: 'calculation' });
82
91
  return order;
83
92
  },
@@ -87,17 +96,16 @@ export const configureOrderModuleMutations = ({ Orders, OrderPositions, }) => {
87
96
  if (!context || Object.keys(context).length === 0)
88
97
  return Orders.findOne(selector, {});
89
98
  const contextSetters = Object.fromEntries(Object.entries(context).map(([key, value]) => [`context.${key}`, value]));
90
- const result = await Orders.findOneAndUpdate(selector, {
99
+ const order = await Orders.findOneAndUpdate(selector, {
91
100
  $set: {
92
101
  ...contextSetters,
93
102
  updated: new Date(),
94
103
  },
95
- }, { includeResultMetadata: true, returnDocument: 'after' });
96
- if (result.ok) {
97
- await emit('ORDER_UPDATE', { order: result.value, field: 'context' });
98
- return result.value;
99
- }
100
- return null;
104
+ }, { returnDocument: 'after' });
105
+ if (!order)
106
+ return null;
107
+ await emit('ORDER_UPDATE', { order, field: 'context' });
108
+ return order;
101
109
  },
102
110
  };
103
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrdersModule-mutations.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrdersModule-mutations.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-mutations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { Order, OrderProcessing } from '@unchainedshop/types/orders.js';
3
+ import type { Locker } from '@kontsedal/locco';
4
+ import { OrderDelivery } from '@unchainedshop/types/orders.deliveries.js';
5
+ import { OrderPayment } from '@unchainedshop/types/orders.payments.js';
6
+ import { OrderPosition } from '@unchainedshop/types/orders.positions.js';
7
+ export declare const configureOrderModuleProcessing: ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, locker, }: {
8
+ Orders: mongodb.Collection<Order>;
9
+ OrderPositions: mongodb.Collection<OrderPosition>;
10
+ OrderDeliveries: mongodb.Collection<OrderDelivery>;
11
+ OrderPayments: mongodb.Collection<OrderPayment>;
12
+ locker: Locker;
13
+ }) => OrderProcessing;
14
+ //# sourceMappingURL=configureOrdersModule-processing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrdersModule-processing.d.ts","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAe,eAAe,EAAgB,MAAM,gCAAgC,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAczE,eAAO,MAAM,8BAA8B,wEAMxC;IACD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACnD,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,eA6cH,CAAC"}
@@ -0,0 +1,348 @@
1
+ import { generateDbFilterById } from '@unchainedshop/mongodb';
2
+ import { OrderStatus } from '@unchainedshop/types/orders.js';
3
+ import { emit, registerEvents } from '@unchainedshop/events';
4
+ import { log } from '@unchainedshop/logger';
5
+ import { ProductType } from '@unchainedshop/types/products.js';
6
+ import { ordersSettings } from '../orders-settings.js';
7
+ const ORDER_PROCESSING_EVENTS = [
8
+ 'ORDER_CHECKOUT',
9
+ 'ORDER_CONFIRMED',
10
+ 'ORDER_REJECTED',
11
+ 'ORDER_FULLFILLED',
12
+ ];
13
+ export const configureOrderModuleProcessing = ({ Orders, OrderPositions, OrderDeliveries, OrderPayments, locker, }) => {
14
+ registerEvents(ORDER_PROCESSING_EVENTS);
15
+ const findNewOrderNumber = async (order, index = 0) => {
16
+ const newHashID = ordersSettings.orderNumberHashFn(order, index);
17
+ if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
18
+ return newHashID;
19
+ }
20
+ return findNewOrderNumber(order, index + 1);
21
+ };
22
+ const updateStatus = async (orderId, { status, info }) => {
23
+ const selector = generateDbFilterById(orderId);
24
+ const order = await Orders.findOne(selector, {});
25
+ if (order.status === status)
26
+ return order;
27
+ const date = new Date();
28
+ const $set = {
29
+ status,
30
+ updated: new Date(),
31
+ };
32
+ switch (status) {
33
+ // explicitly use fallthrough here!
34
+ case OrderStatus.FULLFILLED:
35
+ $set.fullfilled = order.fullfilled || date;
36
+ case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
37
+ case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
38
+ if (status === OrderStatus.REJECTED) {
39
+ $set.rejected = order.rejected || date;
40
+ }
41
+ else {
42
+ $set.confirmed = order.confirmed || date;
43
+ }
44
+ case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
45
+ $set.ordered = order.ordered || date;
46
+ $set.orderNumber = order.orderNumber || (await findNewOrderNumber(order));
47
+ break;
48
+ default:
49
+ break;
50
+ }
51
+ const modifier = {
52
+ $set,
53
+ $push: {
54
+ log: {
55
+ date,
56
+ status,
57
+ info,
58
+ },
59
+ },
60
+ };
61
+ const modificationResult = await Orders.findOneAndUpdate({
62
+ ...selector,
63
+ status: { $ne: status }, // Only update if status is different
64
+ }, modifier, {
65
+ returnDocument: 'after',
66
+ includeResultMetadata: true,
67
+ });
68
+ if (modificationResult.ok) {
69
+ log(`New Status: ${status}`, { orderId });
70
+ if (order.status === null) {
71
+ // The first time that an order transitions away from cart is a checkout event
72
+ await emit('ORDER_CHECKOUT', { order: modificationResult.value, oldStatus: order.status });
73
+ }
74
+ switch (status) {
75
+ case OrderStatus.FULLFILLED:
76
+ await emit('ORDER_FULLFILLED', { order: modificationResult.value, oldStatus: order.status });
77
+ break;
78
+ case OrderStatus.REJECTED:
79
+ await emit('ORDER_REJECTED', { order: modificationResult.value, oldStatus: order.status });
80
+ break;
81
+ case OrderStatus.CONFIRMED:
82
+ await emit('ORDER_CONFIRMED', { order: modificationResult.value, oldStatus: order.status });
83
+ break;
84
+ default:
85
+ break;
86
+ }
87
+ }
88
+ return modificationResult.value || Orders.findOne(selector, {});
89
+ };
90
+ const findOrderPositions = async (order) => OrderPositions.find({
91
+ orderId: order._id,
92
+ quantity: { $gt: 0 },
93
+ }).toArray();
94
+ const findOrderDelivery = async (order) => OrderDeliveries.findOne(generateDbFilterById(order.deliveryId), {});
95
+ const findOrderPayment = async (order) => OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
96
+ const missingInputDataForCheckout = async (order) => {
97
+ const errors = [];
98
+ if (!order.contact)
99
+ errors.push(new Error('Contact data not provided'));
100
+ if (!order.billingAddress)
101
+ errors.push(new Error('Billing address not provided'));
102
+ if (!(await findOrderDelivery(order)))
103
+ errors.push('No delivery provider selected');
104
+ if (!(await findOrderPayment(order)))
105
+ errors.push('No payment provider selected');
106
+ return errors;
107
+ };
108
+ const itemValidationErrors = async (order, unchainedAPI) => {
109
+ // Check if items are valid
110
+ const orderPositions = await findOrderPositions(order);
111
+ if (orderPositions.length === 0) {
112
+ const NoItemsError = new Error('No items to checkout');
113
+ NoItemsError.name = 'NoItemsError';
114
+ return [NoItemsError];
115
+ }
116
+ const validationErrors = await Promise.all(orderPositions.map(async (orderPosition) => {
117
+ const errors = [];
118
+ log(`OrderPosition ${orderPosition._id} -> Validate ${orderPosition.quantity}`, {
119
+ orderId: orderPosition.orderId,
120
+ });
121
+ const product = await unchainedAPI.modules.products.findProduct({
122
+ productId: orderPosition.productId,
123
+ });
124
+ try {
125
+ await ordersSettings.validateOrderPosition({
126
+ order,
127
+ product,
128
+ configuration: orderPosition.configuration,
129
+ quantityDiff: 0,
130
+ }, unchainedAPI);
131
+ }
132
+ catch (e) {
133
+ errors.push(e);
134
+ }
135
+ const quotation = orderPosition.quotationId &&
136
+ (await unchainedAPI.modules.quotations.findQuotation({
137
+ quotationId: orderPosition.quotationId,
138
+ }));
139
+ if (quotation && !unchainedAPI.modules.quotations.isProposalValid(quotation)) {
140
+ errors.push(new Error('Quotation expired or fullfiled, please request a new offer'));
141
+ }
142
+ return errors;
143
+ }));
144
+ return validationErrors.flatMap((f) => f);
145
+ };
146
+ const isAutoConfirmationEnabled = async (order, unchainedAPI) => {
147
+ const { modules } = unchainedAPI;
148
+ if (order.status === OrderStatus.FULLFILLED || order.status === OrderStatus.CONFIRMED) {
149
+ return false;
150
+ }
151
+ const orderPayment = await findOrderPayment(order);
152
+ let isBlockingOrderConfirmation = orderPayment &&
153
+ (await modules.orders.payments.isBlockingOrderConfirmation(orderPayment, unchainedAPI));
154
+ if (isBlockingOrderConfirmation)
155
+ return false;
156
+ const orderDelivery = await findOrderDelivery(order);
157
+ isBlockingOrderConfirmation =
158
+ orderDelivery &&
159
+ (await modules.orders.deliveries.isBlockingOrderConfirmation(orderDelivery, unchainedAPI));
160
+ if (isBlockingOrderConfirmation)
161
+ return false;
162
+ return true;
163
+ };
164
+ const isAutoFullfillmentEnabled = async (order, unchainedAPI) => {
165
+ const { modules } = unchainedAPI;
166
+ const orderPayment = await findOrderPayment(order);
167
+ let isBlockingOrderFullfillment = orderPayment && modules.orders.payments.isBlockingOrderFullfillment(orderPayment);
168
+ if (isBlockingOrderFullfillment)
169
+ return false;
170
+ const orderDelivery = await findOrderDelivery(order);
171
+ isBlockingOrderFullfillment =
172
+ orderDelivery && modules.orders.deliveries.isBlockingOrderFullfillment(orderDelivery);
173
+ if (isBlockingOrderFullfillment)
174
+ return false;
175
+ if (order.status === OrderStatus.FULLFILLED) {
176
+ return false;
177
+ }
178
+ return true;
179
+ };
180
+ const findNextStatus = async (status, order, unchainedAPI) => {
181
+ if (status === null) {
182
+ return OrderStatus.PENDING;
183
+ }
184
+ if (status === OrderStatus.PENDING) {
185
+ if (await isAutoConfirmationEnabled(order, unchainedAPI)) {
186
+ return OrderStatus.CONFIRMED;
187
+ }
188
+ }
189
+ if (status === OrderStatus.CONFIRMED) {
190
+ if (await isAutoFullfillmentEnabled(order, unchainedAPI)) {
191
+ return OrderStatus.FULLFILLED;
192
+ }
193
+ }
194
+ return status;
195
+ };
196
+ return {
197
+ checkout: async (orderId, transactionContext, unchainedAPI) => {
198
+ const { modules, services } = unchainedAPI;
199
+ const order = await Orders.findOne(generateDbFilterById(orderId), {});
200
+ if (order.status !== null)
201
+ return order;
202
+ const errors = [
203
+ ...(await missingInputDataForCheckout(order)),
204
+ ...(await itemValidationErrors(order, unchainedAPI)),
205
+ ].filter(Boolean);
206
+ if (errors.length > 0) {
207
+ throw new Error(errors[0]);
208
+ }
209
+ const lock = await locker.lock(`order:checkout:${order._id}`, 5000).acquire();
210
+ try {
211
+ const processedOrder = await modules.orders.processOrder(order, transactionContext, unchainedAPI);
212
+ // After checkout, store last checkout information on user
213
+ await modules.users.updateLastBillingAddress(processedOrder.userId, processedOrder.billingAddress);
214
+ await modules.users.updateLastContact(processedOrder.userId, processedOrder.contact);
215
+ // Then eventually build next cart
216
+ const user = await modules.users.findUserById(processedOrder.userId);
217
+ const locale = modules.users.userLocale(user);
218
+ await services.orders.nextUserCart({
219
+ user,
220
+ countryCode: locale.country,
221
+ }, unchainedAPI);
222
+ return processedOrder;
223
+ }
224
+ finally {
225
+ await lock.release();
226
+ }
227
+ },
228
+ confirm: async (order, transactionContext, unchainedAPI) => {
229
+ const { modules } = unchainedAPI;
230
+ if (order.status !== OrderStatus.PENDING)
231
+ return order;
232
+ const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
233
+ try {
234
+ return await modules.orders.processOrder(order, {
235
+ ...transactionContext,
236
+ nextStatus: OrderStatus.CONFIRMED,
237
+ }, unchainedAPI);
238
+ }
239
+ finally {
240
+ await lock.release();
241
+ }
242
+ },
243
+ reject: async (order, transactionContext, unchainedAPI) => {
244
+ const { modules } = unchainedAPI;
245
+ if (order.status !== OrderStatus.PENDING)
246
+ return order;
247
+ const lock = await locker.lock(`order:confirm-reject:${order._id}`, 1500).acquire();
248
+ try {
249
+ return await modules.orders.processOrder(order, {
250
+ ...transactionContext,
251
+ nextStatus: OrderStatus.REJECTED,
252
+ }, unchainedAPI);
253
+ }
254
+ finally {
255
+ await lock.release();
256
+ }
257
+ },
258
+ processOrder: async (initialOrder, orderTransactionContext, unchainedAPI) => {
259
+ const { modules } = unchainedAPI;
260
+ const { paymentContext, deliveryContext, nextStatus: forceNextStatus, comment, } = orderTransactionContext;
261
+ const orderId = initialOrder._id;
262
+ let order = initialOrder;
263
+ let nextStatus = forceNextStatus || (await findNextStatus(initialOrder.status, order, unchainedAPI));
264
+ if (nextStatus === OrderStatus.PENDING) {
265
+ // auto charge during transition to pending
266
+ const orderPayment = await modules.orders.payments.findOrderPayment({
267
+ orderPaymentId: order.paymentId,
268
+ });
269
+ await modules.orders.payments.charge(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
270
+ nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
271
+ }
272
+ if (nextStatus === OrderStatus.REJECTED) {
273
+ // auto cancel during transition to rejected
274
+ const orderPayment = await modules.orders.payments.findOrderPayment({
275
+ orderPaymentId: order.paymentId,
276
+ });
277
+ await modules.orders.payments.cancel(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
278
+ }
279
+ if (nextStatus === OrderStatus.CONFIRMED) {
280
+ // confirm pre-authorized payments
281
+ const orderPayment = await modules.orders.payments.findOrderPayment({
282
+ orderPaymentId: order.paymentId,
283
+ });
284
+ await modules.orders.payments.confirm(orderPayment, { userId: order.userId, transactionContext: paymentContext }, unchainedAPI);
285
+ if (order.status !== OrderStatus.CONFIRMED) {
286
+ // we have to stop here shortly to complete the confirmation
287
+ // before auto delivery is started, else we have no chance to create
288
+ // numbers that are needed for delivery
289
+ order = await updateStatus(orderId, {
290
+ status: OrderStatus.CONFIRMED,
291
+ info: comment,
292
+ });
293
+ const orderDelivery = await modules.orders.deliveries.findDelivery({
294
+ orderDeliveryId: order.deliveryId,
295
+ });
296
+ await modules.orders.deliveries.send(orderDelivery, {
297
+ order,
298
+ deliveryContext,
299
+ }, unchainedAPI);
300
+ const orderPositions = await findOrderPositions(order);
301
+ const mappedProductOrderPositions = await Promise.all(orderPositions.map(async (orderPosition) => {
302
+ const product = await modules.products.findProduct({
303
+ productId: orderPosition.productId,
304
+ });
305
+ return {
306
+ orderPosition,
307
+ product,
308
+ };
309
+ }));
310
+ const tokenizedItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductType.TokenizedProduct);
311
+ if (tokenizedItems.length > 0) {
312
+ // Give virtual warehouse a chance to instantiate new virtual objects
313
+ await modules.warehousing.tokenizeItems(order, {
314
+ items: tokenizedItems,
315
+ }, unchainedAPI);
316
+ }
317
+ // Enrollments: Generate enrollments for plan products
318
+ const planItems = mappedProductOrderPositions.filter((item) => item.product?.type === ProductType.PlanProduct && !order.originEnrollmentId);
319
+ if (planItems.length > 0) {
320
+ await modules.enrollments.createFromCheckout(order, {
321
+ items: planItems,
322
+ context: {
323
+ paymentContext,
324
+ deliveryContext,
325
+ },
326
+ }, unchainedAPI);
327
+ }
328
+ // Quotations: If we came here, the checkout succeeded, so we can fullfill underlying quotations
329
+ const quotationItems = mappedProductOrderPositions.filter((item) => item.orderPosition.quotationId);
330
+ await Promise.all(quotationItems.map(async ({ orderPosition }) => {
331
+ await modules.quotations.fullfillQuotation(orderPosition.quotationId, {
332
+ orderId,
333
+ orderPositionId: orderPosition._id,
334
+ }, unchainedAPI);
335
+ }));
336
+ // TODO: we will use this function to keep a "Ordered in Flight" amount, allowing us to
337
+ // do live stock stuff
338
+ // 2. Reserve quantity at Warehousing Provider until order is CANCELLED/FULLFILLED
339
+ // ???
340
+ }
341
+ nextStatus = await findNextStatus(nextStatus, order, unchainedAPI);
342
+ }
343
+ return updateStatus(order._id, { status: nextStatus, info: comment });
344
+ },
345
+ updateStatus,
346
+ };
347
+ };
348
+ //# sourceMappingURL=configureOrdersModule-processing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrdersModule-processing.js","sourceRoot":"","sources":["../../src/module/configureOrdersModule-processing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAS,WAAW,EAAiC,MAAM,gCAAgC,CAAC;AAKnG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,uBAAuB,GAAa;IACxC,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,MAAM,EACN,cAAc,EACd,eAAe,EACf,aAAa,EACb,MAAM,GAOP,EAAmB,EAAE;IACpB,cAAc,CAAC,uBAAuB,CAAC,CAAC;IAExC,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAY,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;QAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAClF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,YAAY,GAAiC,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACrF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAmB;YAC3B,MAAM;YACN,OAAO,EAAE,IAAI,IAAI,EAAE;SACpB,CAAC;QACF,QAAQ,MAAM,EAAE,CAAC;YACf,mCAAmC;YACnC,KAAK,WAAW,CAAC,UAAU;gBACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YAC7C,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,qCAAqC;YAChE,KAAK,WAAW,CAAC,SAAS,EAAE,qCAAqC;gBAC/D,IAAI,MAAM,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;gBAC3C,CAAC;YACH,KAAK,WAAW,CAAC,OAAO,EAAE,qCAAqC;gBAC7D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;gBACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1E,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAgC;YAC5C,IAAI;YACJ,KAAK,EAAE;gBACL,GAAG,EAAE;oBACH,IAAI;oBACJ,MAAM;oBACN,IAAI;iBACL;aACF;SACF,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CACtD;YACE,GAAG,QAAQ;YACX,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,qCAAqC;SAC/D,EACD,QAAQ,EACR;YACE,cAAc,EAAE,OAAO;YACvB,qBAAqB,EAAE,IAAI;SAC5B,CACF,CAAC;QAEF,IAAI,kBAAkB,CAAC,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,eAAe,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC1B,8EAA8E;gBAC9E,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,WAAW,CAAC,UAAU;oBACzB,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC7F,MAAM;gBACR,KAAK,WAAW,CAAC,QAAQ;oBACvB,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC3F,MAAM;gBACR,KAAK,WAAW,CAAC,SAAS;oBACxB,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC5F,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,kBAAkB,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,CAChD,cAAc,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC,GAAG;QAClB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;KACrB,CAAC,CAAC,OAAO,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,CAC/C,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtE,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,CAC9C,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnE,MAAM,2BAA2B,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,cAAc;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACpF,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,KAAY,EAAE,YAA2B,EAAE,EAAE;QAC/E,2BAA2B;QAC3B,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACvD,YAAY,CAAC,IAAI,GAAG,cAAc,CAAC;YACnC,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,EAAE,CAAC;YAElB,GAAG,CAAC,iBAAiB,aAAa,CAAC,GAAG,gBAAgB,aAAa,CAAC,QAAQ,EAAE,EAAE;gBAC9E,OAAO,EAAE,aAAa,CAAC,OAAO;aAC/B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9D,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,cAAc,CAAC,qBAAqB,CACxC;oBACE,KAAK;oBACL,OAAO;oBACP,aAAa,EAAE,aAAa,CAAC,aAAa;oBAC1C,YAAY,EAAE,CAAC;iBAChB,EACD,YAAY,CACb,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YAED,MAAM,SAAS,GACb,aAAa,CAAC,WAAW;gBACzB,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;oBACnD,WAAW,EAAE,aAAa,CAAC,WAAW;iBACvC,CAAC,CAAC,CAAC;YACN,IAAI,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7E,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,EAAE,KAAY,EAAE,YAA2B,EAAE,EAAE;QACpF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YACtF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,2BAA2B,GAC7B,YAAY;YACZ,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1F,IAAI,2BAA2B;YAAE,OAAO,KAAK,CAAC;QAE9C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,2BAA2B;YACzB,aAAa;gBACb,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;QAC7F,IAAI,2BAA2B;YAAE,OAAO,KAAK,CAAC;QAE9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,EAAE,KAAY,EAAE,YAA2B,EAAE,EAAE;QACpF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAEjC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,2BAA2B,GAC7B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAEpF,IAAI,2BAA2B;YAAE,OAAO,KAAK,CAAC;QAE9C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,2BAA2B;YACzB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;QAExF,IAAI,2BAA2B;YAAE,OAAO,KAAK,CAAC;QAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,MAA0B,EAC1B,KAAY,EACZ,YAA2B,EACE,EAAE;QAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QAED,IAAI,MAAM,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBACzD,OAAO,WAAW,CAAC,SAAS,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,MAAM,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBACzD,OAAO,WAAW,CAAC,UAAU,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE;YAC5D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YAE3C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAExC,MAAM,MAAM,GAAG;gBACb,GAAG,CAAC,MAAM,2BAA2B,CAAC,KAAK,CAAC,CAAC;gBAC7C,GAAG,CAAC,MAAM,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;aACrD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CACtD,KAAK,EACL,kBAAkB,EAClB,YAAY,CACb,CAAC;gBAEF,0DAA0D;gBAC1D,MAAM,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAC1C,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,cAAc,CAC9B,CAAC;gBACF,MAAM,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBAErF,kCAAkC;gBAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,CAChC;oBACE,IAAI;oBACJ,WAAW,EAAE,MAAM,CAAC,OAAO;iBAC5B,EACD,YAAY,CACb,CAAC;gBAEF,OAAO,cAAc,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE;YACzD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAEvD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACpF,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CACtC,KAAK,EACL;oBACE,GAAG,kBAAkB;oBACrB,UAAU,EAAE,WAAW,CAAC,SAAS;iBAClC,EACD,YAAY,CACb,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAEvD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACpF,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CACtC,KAAK,EACL;oBACE,GAAG,kBAAkB;oBACrB,UAAU,EAAE,WAAW,CAAC,QAAQ;iBACjC,EACD,YAAY,CACb,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,EAAE;YAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;YACjC,MAAM,EACJ,cAAc,EACd,eAAe,EACf,UAAU,EAAE,eAAe,EAC3B,OAAO,GACR,GAAG,uBAAuB,CAAC;YAE5B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC;YACjC,IAAI,KAAK,GAAG,YAAY,CAAC;YACzB,IAAI,UAAU,GACZ,eAAe,IAAI,CAAC,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;YAEtF,IAAI,UAAU,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;gBACvC,2CAA2C;gBAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAClE,cAAc,EAAE,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBAEH,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAClC,YAAY,EACZ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAC5D,YAAY,CACb,CAAC;gBAEF,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,UAAU,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACxC,4CAA4C;gBAC5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAClE,cAAc,EAAE,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAClC,YAAY,EACZ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAC5D,YAAY,CACb,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;gBACzC,kCAAkC;gBAClC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAClE,cAAc,EAAE,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACnC,YAAY,EACZ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAC5D,YAAY,CACb,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;oBAC3C,4DAA4D;oBAC5D,oEAAoE;oBACpE,uCAAuC;oBACvC,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;wBAClC,MAAM,EAAE,WAAW,CAAC,SAAS;wBAC7B,IAAI,EAAE,OAAO;qBACd,CAAC,CAAC;oBAEH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;wBACjE,eAAe,EAAE,KAAK,CAAC,UAAU;qBAClC,CAAC,CAAC;oBACH,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAClC,aAAa,EACb;wBACE,KAAK;wBACL,eAAe;qBAChB,EACD,YAAY,CACb,CAAC;oBAEF,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBACvD,MAAM,2BAA2B,GAAG,MAAM,OAAO,CAAC,GAAG,CACnD,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;wBACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;4BACjD,SAAS,EAAE,aAAa,CAAC,SAAS;yBACnC,CAAC,CAAC;wBACH,OAAO;4BACL,aAAa;4BACb,OAAO;yBACR,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;oBACF,MAAM,cAAc,GAAG,2BAA2B,CAAC,MAAM,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC,gBAAgB,CAC9D,CAAC;oBACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,qEAAqE;wBACrE,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CACrC,KAAK,EACL;4BACE,KAAK,EAAE,cAAc;yBACtB,EACD,YAAY,CACb,CAAC;oBACJ,CAAC;oBAED,sDAAsD;oBACtD,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAClD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,kBAAkB,CACtF,CAAC;oBACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAC1C,KAAK,EACL;4BACE,KAAK,EAAE,SAAS;4BAChB,OAAO,EAAE;gCACP,cAAc;gCACd,eAAe;6BAChB;yBACF,EACD,YAAY,CACb,CAAC;oBACJ,CAAC;oBAED,gGAAgG;oBAChG,MAAM,cAAc,GAAG,2BAA2B,CAAC,MAAM,CACvD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CACzC,CAAC;oBACF,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;wBAC7C,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CACxC,aAAa,CAAC,WAAW,EACzB;4BACE,OAAO;4BACP,eAAe,EAAE,aAAa,CAAC,GAAG;yBACnC,EACD,YAAY,CACb,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;oBAEF,uFAAuF;oBACvF,sBAAsB;oBACtB,kFAAkF;oBAClF,MAAM;gBACR,CAAC;gBAED,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { SortOption, DateFilterInput } from '@unchainedshop/utils';
1
+ import { SortOption } from '@unchainedshop/utils';
2
2
  import { mongodb } from '@unchainedshop/mongodb';
3
3
  import { Order, OrderQuery } from '../db/OrdersCollection.js';
4
4
  export interface OrderReport {
@@ -8,6 +8,23 @@ export interface OrderReport {
8
8
  confirmCount: number;
9
9
  fulfillCount: number;
10
10
  }
11
+ export interface OrderStatisticsRecord {
12
+ date: string;
13
+ total: {
14
+ amount: number;
15
+ currency: string;
16
+ };
17
+ }
18
+ export interface OrderAggregateParams {
19
+ match?: Record<string, any>;
20
+ matchAfterGroup?: Record<string, any>;
21
+ project?: Record<string, any>;
22
+ group?: Record<string, any>;
23
+ sort?: Record<string, number>;
24
+ limit?: number;
25
+ addFields?: Record<string, any>;
26
+ pipeline?: any[];
27
+ }
11
28
  export declare const configureOrdersModuleQueries: ({ Orders }: {
12
29
  Orders: mongodb.Collection<Order>;
13
30
  }) => {
@@ -16,24 +33,22 @@ export declare const configureOrdersModuleQueries: ({ Orders }: {
16
33
  countryCode?: string;
17
34
  orderNumber?: string;
18
35
  userId: string;
19
- }) => Promise<Order>;
36
+ }) => Promise<mongodb.WithId<Order> | null>;
20
37
  count: (query: OrderQuery) => Promise<number>;
21
38
  findOrder: ({ orderId, orderNumber, }: {
22
39
  orderId?: string;
23
40
  orderNumber?: string;
24
- }, options?: mongodb.FindOptions) => Promise<Order>;
41
+ }, options?: mongodb.FindOptions) => Promise<Order | null>;
25
42
  findCartsToInvalidate: (maxAgeDays?: number) => Promise<mongodb.WithId<Order>[]>;
26
43
  findOrders: ({ limit, offset, queryString, sort, ...query }: OrderQuery & {
27
44
  limit?: number;
28
45
  offset?: number;
29
46
  sort?: SortOption[];
30
47
  }, options?: mongodb.FindOptions) => Promise<Order[]>;
31
- getReport: (params: {
32
- dateRange?: DateFilterInput;
33
- }) => Promise<OrderReport>;
34
48
  orderExists: ({ orderId }: {
35
49
  orderId: string;
36
50
  }) => Promise<boolean>;
51
+ aggregateOrders: ({ match, project, group, sort, limit, addFields, pipeline, }: OrderAggregateParams) => Promise<mongodb.Document[]>;
37
52
  };
38
53
  export type OrderQueries = ReturnType<typeof configureOrdersModuleQueries>;
39
54
  //# sourceMappingURL=configureOrdersModule-queries.d.ts.map