@stamhoofd/structures 2.5.0 → 2.6.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 (227) hide show
  1. package/dist/index.d.ts +1 -7
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/BalanceItemDetailed.d.ts +11 -3
  6. package/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  7. package/dist/src/BalanceItemDetailed.js +15 -7
  8. package/dist/src/BalanceItemDetailed.js.map +1 -1
  9. package/dist/src/Group.d.ts +5 -0
  10. package/dist/src/Group.d.ts.map +1 -1
  11. package/dist/src/Group.js +8 -1
  12. package/dist/src/Group.js.map +1 -1
  13. package/dist/src/GroupSettings.d.ts +53 -19
  14. package/dist/src/GroupSettings.d.ts.map +1 -1
  15. package/dist/src/GroupSettings.js +180 -34
  16. package/dist/src/GroupSettings.js.map +1 -1
  17. package/dist/src/RegistrationPeriod.d.ts +1 -0
  18. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  19. package/dist/src/RegistrationPeriod.js +3 -0
  20. package/dist/src/RegistrationPeriod.js.map +1 -1
  21. package/dist/src/StockReservation.d.ts +20 -0
  22. package/dist/src/StockReservation.d.ts.map +1 -0
  23. package/dist/src/StockReservation.js +91 -0
  24. package/dist/src/StockReservation.js.map +1 -0
  25. package/dist/src/Version.d.ts +1 -1
  26. package/dist/src/Version.js +1 -1
  27. package/dist/src/addresses/Address.d.ts +4 -0
  28. package/dist/src/addresses/Address.d.ts.map +1 -1
  29. package/dist/src/addresses/Address.js +6 -0
  30. package/dist/src/addresses/Address.js.map +1 -1
  31. package/dist/src/email/EditorSmartVariable.d.ts.map +1 -1
  32. package/dist/src/email/EditorSmartVariable.js +6 -11
  33. package/dist/src/email/EditorSmartVariable.js.map +1 -1
  34. package/dist/src/members/Member.d.ts +7 -0
  35. package/dist/src/members/Member.d.ts.map +1 -1
  36. package/dist/src/members/Member.js +34 -1
  37. package/dist/src/members/Member.js.map +1 -1
  38. package/dist/src/members/MemberDetails.d.ts +5 -8
  39. package/dist/src/members/MemberDetails.d.ts.map +1 -1
  40. package/dist/src/members/MemberDetails.js +73 -42
  41. package/dist/src/members/MemberDetails.js.map +1 -1
  42. package/dist/src/members/MemberPlatformMembership.d.ts +1 -0
  43. package/dist/src/members/MemberPlatformMembership.d.ts.map +1 -1
  44. package/dist/src/members/MemberPlatformMembership.js +3 -0
  45. package/dist/src/members/MemberPlatformMembership.js.map +1 -1
  46. package/dist/src/members/PaymentDetailed.d.ts +3 -0
  47. package/dist/src/members/PaymentDetailed.d.ts.map +1 -1
  48. package/dist/src/members/PaymentDetailed.js +7 -8
  49. package/dist/src/members/PaymentDetailed.js.map +1 -1
  50. package/dist/src/members/PaymentGeneral.d.ts +5 -2
  51. package/dist/src/members/PaymentGeneral.d.ts.map +1 -1
  52. package/dist/src/members/PaymentGeneral.js +3 -5
  53. package/dist/src/members/PaymentGeneral.js.map +1 -1
  54. package/dist/src/members/PlatformMember.d.ts +4 -2
  55. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  56. package/dist/src/members/PlatformMember.js +28 -18
  57. package/dist/src/members/PlatformMember.js.map +1 -1
  58. package/dist/src/members/Registration.d.ts +12 -0
  59. package/dist/src/members/Registration.d.ts.map +1 -1
  60. package/dist/src/members/Registration.js +17 -3
  61. package/dist/src/members/Registration.js.map +1 -1
  62. package/dist/src/members/RegistrationWithMember.d.ts +3 -2
  63. package/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  64. package/dist/src/members/RegistrationWithMember.js +7 -1
  65. package/dist/src/members/RegistrationWithMember.js.map +1 -1
  66. package/dist/src/members/checkout/BalanceItemCartItem.d.ts +3 -1
  67. package/dist/src/members/checkout/BalanceItemCartItem.d.ts.map +1 -1
  68. package/dist/src/members/checkout/BalanceItemCartItem.js +11 -9
  69. package/dist/src/members/checkout/BalanceItemCartItem.js.map +1 -1
  70. package/dist/src/members/checkout/RegisterCart.d.ts +16 -2
  71. package/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  72. package/dist/src/members/checkout/RegisterCart.js +95 -17
  73. package/dist/src/members/checkout/RegisterCart.js.map +1 -1
  74. package/dist/src/members/checkout/RegisterCheckout.d.ts +19 -0
  75. package/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  76. package/dist/src/members/checkout/RegisterCheckout.js +38 -1
  77. package/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  78. package/dist/src/members/checkout/RegisterItem.d.ts +34 -18
  79. package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  80. package/dist/src/members/checkout/RegisterItem.js +249 -118
  81. package/dist/src/members/checkout/RegisterItem.js.map +1 -1
  82. package/esm/dist/index.d.ts +1 -7
  83. package/esm/dist/index.d.ts.map +1 -1
  84. package/esm/dist/index.js +1 -7
  85. package/esm/dist/index.js.map +1 -1
  86. package/esm/dist/src/BalanceItemDetailed.d.ts +11 -3
  87. package/esm/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  88. package/esm/dist/src/BalanceItemDetailed.js +15 -7
  89. package/esm/dist/src/BalanceItemDetailed.js.map +1 -1
  90. package/esm/dist/src/Group.d.ts +5 -0
  91. package/esm/dist/src/Group.d.ts.map +1 -1
  92. package/esm/dist/src/Group.js +9 -2
  93. package/esm/dist/src/Group.js.map +1 -1
  94. package/esm/dist/src/GroupSettings.d.ts +53 -19
  95. package/esm/dist/src/GroupSettings.d.ts.map +1 -1
  96. package/esm/dist/src/GroupSettings.js +180 -34
  97. package/esm/dist/src/GroupSettings.js.map +1 -1
  98. package/esm/dist/src/RegistrationPeriod.d.ts +1 -0
  99. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  100. package/esm/dist/src/RegistrationPeriod.js +3 -0
  101. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  102. package/esm/dist/src/StockReservation.d.ts +20 -0
  103. package/esm/dist/src/StockReservation.d.ts.map +1 -0
  104. package/esm/dist/src/StockReservation.js +87 -0
  105. package/esm/dist/src/StockReservation.js.map +1 -0
  106. package/esm/dist/src/Version.d.ts +1 -1
  107. package/esm/dist/src/Version.js +1 -1
  108. package/esm/dist/src/addresses/Address.d.ts +4 -0
  109. package/esm/dist/src/addresses/Address.d.ts.map +1 -1
  110. package/esm/dist/src/addresses/Address.js +6 -0
  111. package/esm/dist/src/addresses/Address.js.map +1 -1
  112. package/esm/dist/src/email/EditorSmartVariable.d.ts.map +1 -1
  113. package/esm/dist/src/email/EditorSmartVariable.js +7 -12
  114. package/esm/dist/src/email/EditorSmartVariable.js.map +1 -1
  115. package/esm/dist/src/members/Member.d.ts +7 -0
  116. package/esm/dist/src/members/Member.d.ts.map +1 -1
  117. package/esm/dist/src/members/Member.js +32 -0
  118. package/esm/dist/src/members/Member.js.map +1 -1
  119. package/esm/dist/src/members/MemberDetails.d.ts +5 -8
  120. package/esm/dist/src/members/MemberDetails.d.ts.map +1 -1
  121. package/esm/dist/src/members/MemberDetails.js +73 -42
  122. package/esm/dist/src/members/MemberDetails.js.map +1 -1
  123. package/esm/dist/src/members/MemberPlatformMembership.d.ts +1 -0
  124. package/esm/dist/src/members/MemberPlatformMembership.d.ts.map +1 -1
  125. package/esm/dist/src/members/MemberPlatformMembership.js +3 -0
  126. package/esm/dist/src/members/MemberPlatformMembership.js.map +1 -1
  127. package/esm/dist/src/members/PaymentDetailed.d.ts +3 -0
  128. package/esm/dist/src/members/PaymentDetailed.d.ts.map +1 -1
  129. package/esm/dist/src/members/PaymentDetailed.js +7 -8
  130. package/esm/dist/src/members/PaymentDetailed.js.map +1 -1
  131. package/esm/dist/src/members/PaymentGeneral.d.ts +5 -2
  132. package/esm/dist/src/members/PaymentGeneral.d.ts.map +1 -1
  133. package/esm/dist/src/members/PaymentGeneral.js +3 -5
  134. package/esm/dist/src/members/PaymentGeneral.js.map +1 -1
  135. package/esm/dist/src/members/PlatformMember.d.ts +4 -2
  136. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  137. package/esm/dist/src/members/PlatformMember.js +28 -18
  138. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  139. package/esm/dist/src/members/Registration.d.ts +12 -0
  140. package/esm/dist/src/members/Registration.d.ts.map +1 -1
  141. package/esm/dist/src/members/Registration.js +18 -4
  142. package/esm/dist/src/members/Registration.js.map +1 -1
  143. package/esm/dist/src/members/RegistrationWithMember.d.ts +3 -2
  144. package/esm/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  145. package/esm/dist/src/members/RegistrationWithMember.js +8 -2
  146. package/esm/dist/src/members/RegistrationWithMember.js.map +1 -1
  147. package/esm/dist/src/members/checkout/BalanceItemCartItem.d.ts +3 -1
  148. package/esm/dist/src/members/checkout/BalanceItemCartItem.d.ts.map +1 -1
  149. package/esm/dist/src/members/checkout/BalanceItemCartItem.js +11 -9
  150. package/esm/dist/src/members/checkout/BalanceItemCartItem.js.map +1 -1
  151. package/esm/dist/src/members/checkout/RegisterCart.d.ts +16 -2
  152. package/esm/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  153. package/esm/dist/src/members/checkout/RegisterCart.js +96 -18
  154. package/esm/dist/src/members/checkout/RegisterCart.js.map +1 -1
  155. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts +19 -0
  156. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  157. package/esm/dist/src/members/checkout/RegisterCheckout.js +38 -1
  158. package/esm/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  159. package/esm/dist/src/members/checkout/RegisterItem.d.ts +34 -18
  160. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  161. package/esm/dist/src/members/checkout/RegisterItem.js +249 -118
  162. package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
  163. package/package.json +2 -2
  164. package/dist/src/members/MemberWithRegistrations.d.ts +0 -52
  165. package/dist/src/members/MemberWithRegistrations.d.ts.map +0 -1
  166. package/dist/src/members/MemberWithRegistrations.js +0 -156
  167. package/dist/src/members/MemberWithRegistrations.js.map +0 -1
  168. package/dist/src/members/checkout/OldRegisterCart.d.ts +0 -50
  169. package/dist/src/members/checkout/OldRegisterCart.d.ts.map +0 -1
  170. package/dist/src/members/checkout/OldRegisterCart.js +0 -207
  171. package/dist/src/members/checkout/OldRegisterCart.js.map +0 -1
  172. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts +0 -36
  173. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts.map +0 -1
  174. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.js +0 -339
  175. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.js.map +0 -1
  176. package/dist/src/members/checkout/OldRegisterCartValidator.d.ts +0 -35
  177. package/dist/src/members/checkout/OldRegisterCartValidator.d.ts.map +0 -1
  178. package/dist/src/members/checkout/OldRegisterCartValidator.js +0 -309
  179. package/dist/src/members/checkout/OldRegisterCartValidator.js.map +0 -1
  180. package/dist/src/members/checkout/OldRegisterCheckout.d.ts +0 -22
  181. package/dist/src/members/checkout/OldRegisterCheckout.d.ts.map +0 -1
  182. package/dist/src/members/checkout/OldRegisterCheckout.js +0 -46
  183. package/dist/src/members/checkout/OldRegisterCheckout.js.map +0 -1
  184. package/dist/src/members/checkout/OldRegisterItem.d.ts +0 -46
  185. package/dist/src/members/checkout/OldRegisterItem.d.ts.map +0 -1
  186. package/dist/src/members/checkout/OldRegisterItem.js +0 -89
  187. package/dist/src/members/checkout/OldRegisterItem.js.map +0 -1
  188. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts +0 -2
  189. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts.map +0 -1
  190. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +0 -1076
  191. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +0 -1
  192. package/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +0 -23
  193. package/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts.map +0 -1
  194. package/dist/src/members/checkout/UnknownMemberWithRegistrations.js +0 -3
  195. package/dist/src/members/checkout/UnknownMemberWithRegistrations.js.map +0 -1
  196. package/esm/dist/src/members/MemberWithRegistrations.d.ts +0 -52
  197. package/esm/dist/src/members/MemberWithRegistrations.d.ts.map +0 -1
  198. package/esm/dist/src/members/MemberWithRegistrations.js +0 -152
  199. package/esm/dist/src/members/MemberWithRegistrations.js.map +0 -1
  200. package/esm/dist/src/members/checkout/OldRegisterCart.d.ts +0 -50
  201. package/esm/dist/src/members/checkout/OldRegisterCart.d.ts.map +0 -1
  202. package/esm/dist/src/members/checkout/OldRegisterCart.js +0 -202
  203. package/esm/dist/src/members/checkout/OldRegisterCart.js.map +0 -1
  204. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts +0 -36
  205. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts.map +0 -1
  206. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.js +0 -334
  207. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.js.map +0 -1
  208. package/esm/dist/src/members/checkout/OldRegisterCartValidator.d.ts +0 -35
  209. package/esm/dist/src/members/checkout/OldRegisterCartValidator.d.ts.map +0 -1
  210. package/esm/dist/src/members/checkout/OldRegisterCartValidator.js +0 -305
  211. package/esm/dist/src/members/checkout/OldRegisterCartValidator.js.map +0 -1
  212. package/esm/dist/src/members/checkout/OldRegisterCheckout.d.ts +0 -22
  213. package/esm/dist/src/members/checkout/OldRegisterCheckout.d.ts.map +0 -1
  214. package/esm/dist/src/members/checkout/OldRegisterCheckout.js +0 -41
  215. package/esm/dist/src/members/checkout/OldRegisterCheckout.js.map +0 -1
  216. package/esm/dist/src/members/checkout/OldRegisterItem.d.ts +0 -46
  217. package/esm/dist/src/members/checkout/OldRegisterItem.d.ts.map +0 -1
  218. package/esm/dist/src/members/checkout/OldRegisterItem.js +0 -84
  219. package/esm/dist/src/members/checkout/OldRegisterItem.js.map +0 -1
  220. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts +0 -2
  221. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts.map +0 -1
  222. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +0 -1074
  223. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +0 -1
  224. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +0 -23
  225. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts.map +0 -1
  226. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.js +0 -2
  227. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.js.map +0 -1
@@ -1,339 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPossibleCombinations = exports.OldRegisterCartPriceCalculator = void 0;
4
- const OldGroupPrices_1 = require("../../OldGroupPrices");
5
- class OldRegisterCartPriceCalculator {
6
- /**
7
- * Return an unique ID that is the same for all groups that should have equal family pricing (2nd, 3rd discount)
8
- */
9
- static getParentCategory(group, all) {
10
- var _a;
11
- const parents = group.getParentCategories(all, false);
12
- return (_a = parents[0]) !== null && _a !== void 0 ? _a : null;
13
- }
14
- static calculateSinglePrice(member, registration, members, groups, categories) {
15
- var _a, _b;
16
- const item = {
17
- memberId: member.id,
18
- groupId: registration.groupId,
19
- reduced: (_b = (_a = member.details.requiresFinancialSupport) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : false,
20
- waitingList: registration.waitingList,
21
- calculatedPrice: 0
22
- };
23
- this.calculatePrices([item], [...members, member], groups, categories);
24
- return item.calculatedPrice;
25
- }
26
- static calculateSinglePriceForNewMember(details, registration, members, groups, categories) {
27
- var _a, _b;
28
- const member = {
29
- id: 'calculating-member',
30
- details,
31
- registrations: [registration],
32
- };
33
- const item = {
34
- memberId: member.id,
35
- groupId: registration.groupId,
36
- reduced: (_b = (_a = details.requiresFinancialSupport) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : false,
37
- waitingList: registration.waitingList,
38
- calculatedPrice: 0
39
- };
40
- this.calculatePrices([item], [...members, member], groups, categories);
41
- return item.calculatedPrice;
42
- }
43
- /**
44
- * @param items Items you want to calculate the prices for (should be all the items)
45
- * @param members All current members, including members that are not present in the items (because we need to know this for family discounts)
46
- * @param groups All the groups of this organization
47
- * @param categories All the categories of this organization
48
- */
49
- static calculatePrices(items, members, groups, categories, forceDate) {
50
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
51
- // Step 1 + 2:
52
- // 1. add the group prices
53
- // 2. group items by items that have a grouped family discount
54
- // - First: no discounts or only discount for same group (ordering doesn't matter)
55
- // - Second: Discounts for same member in category
56
- // - Last: Diuscounts for family members in category
57
- // Excluding waiting lists
58
- const groupedItems = [[], new Map(), new Map()];
59
- const now = forceDate !== null && forceDate !== void 0 ? forceDate : new Date();
60
- for (const item of items) {
61
- item.calculatedPrice = 0;
62
- const group = groups.find(g => g.id === item.groupId);
63
- const member = members.find(m => m.id === item.memberId);
64
- if (!group || !member) {
65
- throw new Error("Invalid item: member or group doesn't exist anymore");
66
- }
67
- if (!item.waitingList) {
68
- const groupPrices = (_a = group.settings.getGroupPrices(now)) !== null && _a !== void 0 ? _a : OldGroupPrices_1.OldGroupPrices.create({});
69
- const category = this.getParentCategory(group, categories);
70
- if (!category) {
71
- throw new Error("Invalid item: category doesn't exist anymore");
72
- }
73
- const _item = Object.assign(item, { _groupPrices: groupPrices, _group: group, _category: category });
74
- // In which priority queue?
75
- if (groupPrices.onlySameGroup || groupPrices.prices.length <= 1) {
76
- // First queue: ordering will never matter
77
- groupedItems[0].push(_item);
78
- }
79
- else {
80
- const prior = groupPrices.sameMemberOnlyDiscount ? 1 : 2;
81
- const key = groupPrices.sameMemberOnlyDiscount ? (category.id + "-" + member.id) : category.id;
82
- const arr = (_b = groupedItems[prior].get(key)) !== null && _b !== void 0 ? _b : [];
83
- arr.push(_item);
84
- groupedItems[prior].set(key, arr);
85
- }
86
- }
87
- }
88
- // Keep a mapping of amount of members that is registered in each category + each group
89
- /// Group ID => amount of members that are registered
90
- const groupAmounts = new Map();
91
- // Amount of registrations in a given group for a given member (member id is first)
92
- const groupPerMemberAmounts = new Map();
93
- /// Category ID => amount of members that are registered
94
- const categoryAmounts = new Map();
95
- // Amount of registrations in a given category for a given member (member id is first)
96
- const categoryPerMemberAmounts = new Map();
97
- // Fill in the existing registrations
98
- for (const member of members) {
99
- // Create map items
100
- const groupAmountsMember = new Map();
101
- const categoryAmountsMember = new Map();
102
- groupPerMemberAmounts.set(member.id, groupAmountsMember);
103
- categoryPerMemberAmounts.set(member.id, categoryAmountsMember);
104
- for (const registration of member.registrations) {
105
- // Skip this if we have an item in the cart with the same properties
106
- const inCart = !!items.find(i => i.memberId === member.id && i.groupId === registration.groupId);
107
- if (inCart) {
108
- continue;
109
- }
110
- const group = groups.find(g => g.id === registration.groupId);
111
- if (group && !registration.waitingList && registration.cycle === group.cycle && registration.registeredAt !== null && registration.deactivatedAt === null) {
112
- // Active registration
113
- groupAmounts.set(group.id, ((_c = groupAmounts.get(group.id)) !== null && _c !== void 0 ? _c : 0) + 1);
114
- groupAmountsMember.set(group.id, ((_d = groupAmountsMember.get(group.id)) !== null && _d !== void 0 ? _d : 0) + 1);
115
- const category = this.getParentCategory(group, categories);
116
- if (category) {
117
- categoryAmounts.set(category.id, ((_e = categoryAmounts.get(category.id)) !== null && _e !== void 0 ? _e : 0) + 1);
118
- categoryAmountsMember.set(category.id, ((_f = categoryAmountsMember.get(category.id)) !== null && _f !== void 0 ? _f : 0) + 1);
119
- }
120
- }
121
- }
122
- }
123
- // All items that are not affected by ordering calculate first
124
- for (const item of groupedItems[0]) {
125
- // TODO: cache this information
126
- const group = item._group;
127
- const category = item._category;
128
- let alreadyRegisteredCount = 0;
129
- if (item._groupPrices.prices.length > 1) {
130
- if (item._groupPrices.onlySameGroup) {
131
- if (item._groupPrices.sameMemberOnlyDiscount) {
132
- alreadyRegisteredCount = (_h = (_g = groupPerMemberAmounts.get(item.memberId)) === null || _g === void 0 ? void 0 : _g.get(item.groupId)) !== null && _h !== void 0 ? _h : 0;
133
- }
134
- else {
135
- alreadyRegisteredCount = (_j = groupAmounts.get(item.groupId)) !== null && _j !== void 0 ? _j : 0;
136
- }
137
- }
138
- else {
139
- throw new Error("Category based discount shouldn't be in priority 0 queue");
140
- if (item._groupPrices.sameMemberOnlyDiscount) {
141
- alreadyRegisteredCount = (_l = (_k = categoryPerMemberAmounts.get(item.memberId)) === null || _k === void 0 ? void 0 : _k.get(category.id)) !== null && _l !== void 0 ? _l : 0;
142
- }
143
- else {
144
- alreadyRegisteredCount = (_m = categoryAmounts.get(category.id)) !== null && _m !== void 0 ? _m : 0;
145
- }
146
- }
147
- }
148
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
149
- item.calculatedPrice = price;
150
- // Increase counters
151
- const groupAmountsMember = groupPerMemberAmounts.get(item.memberId);
152
- const categoryAmountsMember = categoryPerMemberAmounts.get(item.memberId);
153
- groupAmounts.set(group.id, ((_o = groupAmounts.get(group.id)) !== null && _o !== void 0 ? _o : 0) + 1);
154
- groupAmountsMember.set(group.id, ((_p = groupAmountsMember.get(group.id)) !== null && _p !== void 0 ? _p : 0) + 1);
155
- categoryAmounts.set(category.id, ((_q = categoryAmounts.get(category.id)) !== null && _q !== void 0 ? _q : 0) + 1);
156
- categoryAmountsMember.set(category.id, ((_r = categoryAmountsMember.get(category.id)) !== null && _r !== void 0 ? _r : 0) + 1);
157
- }
158
- // Discount for category, for same member
159
- for (const [_, items] of groupedItems[1]) {
160
- const memberId = items[0].memberId;
161
- const group = items[0]._group;
162
- const category = items[0]._category;
163
- const maxFamilyMembersDiscount = Math.max(...items.map(i => i._groupPrices.prices.length));
164
- // Get current amounts
165
- const existingCount = (_t = (_s = categoryPerMemberAmounts.get(memberId)) === null || _s === void 0 ? void 0 : _s.get(category.id)) !== null && _t !== void 0 ? _t : 0;
166
- // Find most optimal order
167
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount);
168
- let minimumPrice = null;
169
- let minimumCombination = [];
170
- // Calculate the smallest price
171
- for (const combination of combinations) {
172
- let total = 0;
173
- let alreadyRegisteredCount = existingCount;
174
- for (const item of combination) {
175
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
176
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
177
- alreadyRegisteredCount++;
178
- total += price;
179
- }
180
- if (minimumPrice === null || total < minimumPrice) {
181
- minimumPrice = total;
182
- minimumCombination = combination;
183
- }
184
- }
185
- // Calculate once again to set the fixed price for every item
186
- let alreadyRegisteredCount = existingCount;
187
- for (const item of minimumCombination) {
188
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
189
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
190
- item.calculatedPrice = price;
191
- alreadyRegisteredCount++;
192
- // Increase counters for next cycle (groups don't matter anymore, so skipped, and same member also doesn't matter anymore)
193
- //const groupAmountsMember = groupPerMemberAmounts.get(item.memberId)!
194
- //const categoryAmountsMember = categoryPerMemberAmounts.get(item.memberId)!
195
- //groupAmounts.set(group.id, (groupAmounts.get(group.id) ?? 0) + 1)
196
- //groupAmountsMember.set(group.id, (groupAmountsMember.get(group.id) ?? 0) + 1)
197
- categoryAmounts.set(category.id, ((_u = categoryAmounts.get(category.id)) !== null && _u !== void 0 ? _u : 0) + 1);
198
- //categoryAmountsMember.set(category.id, (categoryAmountsMember.get(category.id) ?? 0) + 1)
199
- }
200
- }
201
- // Discount for category, for same member
202
- for (const [_, items] of groupedItems[2]) {
203
- const memberId = items[0].memberId;
204
- const group = items[0]._group;
205
- const category = items[0]._category;
206
- const maxFamilyMembersDiscount = Math.max(...items.map(i => i._groupPrices.prices.length));
207
- // Get current amounts
208
- const existingCount = (_v = categoryAmounts.get(category.id)) !== null && _v !== void 0 ? _v : 0;
209
- // Find most optimal order
210
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount);
211
- let minimumPrice = null;
212
- let minimumCombination = [];
213
- // Calculate the smallest price
214
- for (const combination of combinations) {
215
- let total = 0;
216
- let alreadyRegisteredCount = existingCount;
217
- for (const item of combination) {
218
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
219
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
220
- alreadyRegisteredCount++;
221
- total += price;
222
- }
223
- if (minimumPrice === null || total < minimumPrice) {
224
- minimumPrice = total;
225
- minimumCombination = combination;
226
- }
227
- }
228
- // Calculate once again to set the fixed price for every item
229
- let alreadyRegisteredCount = existingCount;
230
- for (const item of minimumCombination) {
231
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
232
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
233
- item.calculatedPrice = price;
234
- alreadyRegisteredCount++;
235
- // No need to increase counters: it's done
236
- }
237
- }
238
- // Step 3: calculate all possible prices
239
- /*for (const [familyID, items] of groupedItems) {
240
- // Count all members that are already registered in this family discount group
241
- // (to know the number of members, and to know the discount)
242
- let existingCount = 0
243
- for (const member of members) {
244
- for (const registration of member.registrations) {
245
-
246
- // Skip this if we have an item in the cart with the same properties
247
- const inCart = !!items.find(i => i.memberId === member.id && i.groupId === registration.groupId)
248
- if (inCart) {
249
- continue
250
- }
251
- const group = groups.find(g => g.id === registration.groupId)
252
- if (group && !registration.waitingList && registration.cycle === group.cycle && registration.registeredAt !== null && registration.deactivatedAt === null) {
253
- // Active registration
254
- if (this.getFamilyDiscountIdFor(group, categories) == familyID) {
255
- existingCount++
256
- }
257
- }
258
- }
259
- }
260
-
261
- // TODO: move those without discounts to the start and remove them from the combinations that need to get calculated. They always need to be added first because they don't give discount
262
-
263
- const maxFamilyMembersDiscount = 3 // discount for third + more members
264
-
265
- // Order in all possible ways (where only the first X places matter)
266
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount)
267
-
268
- let minimumPrice: number | null = null
269
- let minimumCombination: RegisterItemWithPriceAndGroupPrices[] = []
270
-
271
- // Calculate the smallest price
272
- for (const combination of combinations) {
273
- let total = 0
274
- let alreadyRegisteredCount = existingCount
275
- for (const item of combination) {
276
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
277
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount)
278
- alreadyRegisteredCount++
279
- total += price
280
- }
281
-
282
- if (minimumPrice === null || total < minimumPrice) {
283
- minimumPrice = total
284
- minimumCombination = combination
285
- }
286
- }
287
-
288
- // Calculate once again to set the fixed price for every item
289
- let alreadyRegisteredCount = existingCount
290
- for (const item of minimumCombination) {
291
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
292
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount)
293
- item.calculatedPrice = price
294
- alreadyRegisteredCount++
295
- }
296
- }*/
297
- // Clean up
298
- for (const item of items) {
299
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
300
- const i = item;
301
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
302
- delete i._groupPrices;
303
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
304
- delete i._group;
305
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
306
- delete i._category;
307
- }
308
- }
309
- }
310
- exports.OldRegisterCartPriceCalculator = OldRegisterCartPriceCalculator;
311
- /**
312
- * Return all the possible ordering of the first x items (= amount) of a given array.
313
- * E.g. [1, 2, 3, 4, 5] for 2 items: [1, 2, (3, 4, 5)], [1, 3, (2, 4, 5)], [1, 4, (2, 3, 5)], [1, 5, (3, 4, 2)], [2, 1, (3, 4, 5)], ...
314
- */
315
- function getPossibleCombinations(array, amount) {
316
- if (amount <= 0) {
317
- // Only one possibility
318
- return [array];
319
- }
320
- if (array.length <= 1) {
321
- // Only one possible combination
322
- return [array];
323
- }
324
- // On array.length possibilities
325
- return array.flatMap((first, index) => {
326
- // Remove first from the array, get possible combinations, append first back to each combination and return these combinations
327
- const arr = array.slice();
328
- arr.splice(index, 1);
329
- // Get all possibilities
330
- const combo = getPossibleCombinations(arr, amount - 1);
331
- // Append first back to all possible combinations
332
- for (const c of combo) {
333
- c.unshift(first);
334
- }
335
- return combo;
336
- });
337
- }
338
- exports.getPossibleCombinations = getPossibleCombinations;
339
- //# sourceMappingURL=OldRegisterCartPriceCalculator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OldRegisterCartPriceCalculator.js","sourceRoot":"","sources":["../../../../src/members/checkout/OldRegisterCartPriceCalculator.ts"],"names":[],"mappings":";;;AAEA,yDAAqD;AA0BrD,MAAa,8BAA8B;IACvC;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,KAAY,EAAE,GAAoB;;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrD,OAAO,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAsC,EAAE,YAA0B,EAAE,OAAyC,EAAE,MAAe,EAAE,UAA2B;;QACnL,MAAM,IAAI,GAAG;YACT,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,MAAA,MAAA,MAAM,CAAC,OAAO,CAAC,wBAAwB,0CAAE,KAAK,mCAAI,KAAK;YAChE,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,eAAe,EAAE,CAAC;SACrB,CAAA;QAED,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,gCAAgC,CAAC,OAAsB,EAAE,YAA0B,EAAE,OAAyC,EAAE,MAAe,EAAE,UAA2B;;QAC/K,MAAM,MAAM,GAAmC;YAC3C,EAAE,EAAE,oBAAoB;YACxB,OAAO;YACP,aAAa,EAAE,CAAC,YAAY,CAAC;SAChC,CAAC;QAEF,MAAM,IAAI,GAAG;YACT,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,MAAA,MAAA,OAAO,CAAC,wBAAwB,0CAAE,KAAK,mCAAI,KAAK;YACzD,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,eAAe,EAAE,CAAC;SACrB,CAAA;QAED,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,KAA8B,EAAE,OAAyC,EAAE,MAAe,EAAE,UAA2B,EAAE,SAAgB;;QAC5J,eAAe;QACf,0BAA0B;QAC1B,8DAA8D;QAC9D,uFAAuF;QACvF,uDAAuD;QACvD,yDAAyD;QACzD,0BAA0B;QAC1B,MAAM,YAAY,GACX,CAAC,EAAE,EAAE,IAAI,GAAG,EAAiD,EAAE,IAAI,GAAG,EAAiD,CAAC,CAAA;QAE/H,MAAM,GAAG,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,IAAI,EAAE,CAAA;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;YAExB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAA;YAExD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;YAC1E,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,mCAAI,+BAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;gBAE1D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;gBACnE,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEpG,2BAA2B;gBAC3B,IAAI,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC9D,0CAA0C;oBAC1C,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAU,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC/D,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAC,GAAG,GAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAA;oBAC1F,MAAM,GAAG,GAAG,MAAA,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAA;oBAC9C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACf,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACrC,CAAC;YACL,CAAC;QACL,CAAC;QAED,wFAAwF;QAExF,qDAAqD;QACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;QAC9C,mFAAmF;QACnF,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA+B,CAAA;QAEpE,wDAAwD;QACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;QACjD,sFAAsF;QACtF,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA+B,CAAA;QAEvE,qCAAqC;QACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,mBAAmB;YACnB,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;YACpD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAA;YACvD,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAA;YACxD,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAA;YAE9D,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC9C,oEAAoE;gBACpE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;gBAChG,IAAI,MAAM,EAAE,CAAC;oBACT,SAAQ;gBACZ,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC7D,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBACxJ,sBAAsB;oBACtB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBACjE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAA,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAE7E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;oBAC1D,IAAI,QAAQ,EAAE,CAAC;wBACX,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;wBAC7E,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC7F,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,+BAA+B;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;YAE/B,IAAI,sBAAsB,GAAG,CAAC,CAAA;YAE9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;oBAClC,IAAI,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;wBAC3C,sBAAsB,GAAG,MAAA,MAAA,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,0CAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,CAAC,CAAA;oBAC7F,CAAC;yBAAM,CAAC;wBACJ,sBAAsB,GAAG,MAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAI,CAAC,CAAA;oBAChE,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;oBAC3E,IAAI,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;wBAC3C,sBAAsB,GAAG,MAAA,MAAA,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,0CAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAA;oBAC/F,CAAC;yBAAM,CAAC;wBACJ,sBAAsB,GAAG,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAA;oBAClE,CAAC;gBACL,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;YACjF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;YAE5B,oBAAoB;YACpB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YACpE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAE1E,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACjE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAA,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7E,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7F,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnC,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAE1F,sBAAsB;YACtB,MAAM,aAAa,GAAG,MAAA,MAAA,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAA;YAEnF,0BAA0B;YAC1B,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;YAEjG,IAAI,YAAY,GAAkB,IAAI,CAAA;YACtC,IAAI,kBAAkB,GAA0C,EAAE,CAAA;YAElE,+BAA+B;YAC/B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,sBAAsB,GAAG,aAAa,CAAA;gBAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC7B,oEAAoE;oBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;oBACjF,sBAAsB,EAAE,CAAA;oBACxB,KAAK,IAAI,KAAK,CAAA;gBAClB,CAAC;gBAED,IAAI,YAAY,KAAK,IAAI,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;oBAChD,YAAY,GAAG,KAAK,CAAA;oBACpB,kBAAkB,GAAG,WAAW,CAAA;gBACpC,CAAC;YACL,CAAC;YAED,6DAA6D;YAC7D,IAAI,sBAAsB,GAAG,aAAa,CAAA;YAC1C,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;gBACpC,oEAAoE;gBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;gBACjF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;gBAC5B,sBAAsB,EAAE,CAAA;gBAExB,0HAA0H;gBAC1H,sEAAsE;gBACtE,4EAA4E;gBAE5E,mEAAmE;gBACnE,+EAA+E;gBAC/E,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC7E,2FAA2F;YAC/F,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACnC,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAE1F,sBAAsB;YACtB,MAAM,aAAa,GAAG,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAA;YAE3D,0BAA0B;YAC1B,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;YAEjG,IAAI,YAAY,GAAkB,IAAI,CAAA;YACtC,IAAI,kBAAkB,GAA0C,EAAE,CAAA;YAElE,+BAA+B;YAC/B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,sBAAsB,GAAG,aAAa,CAAA;gBAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC7B,oEAAoE;oBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;oBACjF,sBAAsB,EAAE,CAAA;oBACxB,KAAK,IAAI,KAAK,CAAA;gBAClB,CAAC;gBAED,IAAI,YAAY,KAAK,IAAI,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;oBAChD,YAAY,GAAG,KAAK,CAAA;oBACpB,kBAAkB,GAAG,WAAW,CAAA;gBACpC,CAAC;YACL,CAAC;YAED,6DAA6D;YAC7D,IAAI,sBAAsB,GAAG,aAAa,CAAA;YAC1C,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;gBACpC,oEAAoE;gBACpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;gBACjF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;gBAC5B,sBAAsB,EAAE,CAAA;gBAExB,0CAA0C;YAC9C,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAyDG;QAEH,WAAW;QACX,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,mEAAmE;YACnE,MAAM,CAAC,GAAI,IAAY,CAAA;YACvB,sEAAsE;YACtE,OAAO,CAAC,CAAC,YAAY,CAAC;YACtB,sEAAsE;YACtE,OAAO,CAAC,CAAC,MAAM,CAAC;YAChB,sEAAsE;YACtE,OAAO,CAAC,CAAC,SAAS,CAAC;QACvB,CAAC;IACL,CAAC;CACJ;AAzVD,wEAyVC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAI,KAAU,EAAE,MAAc;IACjE,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACd,uBAAuB;QACvB,OAAO,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,gCAAgC;QAChC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;IAED,gCAAgC;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClC,8HAA8H;QAC9H,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QACzB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAEpB,wBAAwB;QACxB,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAEtD,iDAAiD;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,OAAO,KAAK,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC;AA3BD,0DA2BC"}
@@ -1,35 +0,0 @@
1
- import { Group } from "../../Group";
2
- import { GroupCategory } from "../../GroupCategory";
3
- import { OldIDRegisterItem, OldRegisterItem } from "./OldRegisterItem";
4
- import { UnknownMemberWithRegistrations } from "./UnknownMemberWithRegistrations";
5
- export type CanRegisterResponse = {
6
- closed: boolean;
7
- waitingList: boolean;
8
- message?: string;
9
- description?: string;
10
- invited: boolean;
11
- };
12
- /**
13
- * Class that can validate a Cart and registrations.
14
- * This is usefull to share the validation between backend and frontend (for both the encrypted and non-encrypted versions)
15
- */
16
- export declare class OldRegisterCartValidator {
17
- static isAlreadyRegistered(member: UnknownMemberWithRegistrations, group: Group, waitingList: boolean): boolean;
18
- static canRegister(member: UnknownMemberWithRegistrations, group: Group, family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], cart: (OldIDRegisterItem | OldRegisterItem)[]): CanRegisterResponse;
19
- static getAlreadyInCartDescription({ member, group, waitingList, cart }: {
20
- member: UnknownMemberWithRegistrations;
21
- group: Group;
22
- waitingList: boolean;
23
- cart: (OldIDRegisterItem | OldRegisterItem)[];
24
- }): "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats op de wachtlijst te bevestigen. " | "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats om jouw inschrijving te bevestigen. " | undefined;
25
- /**
26
- * Return true if this member was registered in the previous year (current doesn't count)
27
- */
28
- static isExistingMember(member: UnknownMemberWithRegistrations, groups: Group[]): boolean;
29
- /**
30
- * True if you cannot register because you reached the maximum of a group category
31
- */
32
- static hasReachedCategoryMaximum(member: UnknownMemberWithRegistrations, group: Group, groups: Group[], categories: GroupCategory[], cart?: (OldIDRegisterItem | OldRegisterItem)[]): boolean;
33
- static validateItem(item: OldIDRegisterItem | OldRegisterItem, family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], previousItems: (OldIDRegisterItem | OldRegisterItem)[]): void;
34
- }
35
- //# sourceMappingURL=OldRegisterCartValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OldRegisterCartValidator.d.ts","sourceRoot":"","sources":["../../../../src/members/checkout/OldRegisterCartValidator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AAEjF,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC;AAErI;;;GAGG;AACH,qBAAa,wBAAwB;IACjC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;IAGrG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE,GAAG,mBAAmB;IA2MpO,MAAM,CAAC,2BAA2B,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAC,EAAE;QAAC,MAAM,EAAE,8BAA8B,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE,CAAA;KAAC;IAiBlM;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,8BAA8B,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAwBzF;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,IAAI,GAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAO,GAAG,OAAO;IA0BjM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE;CA8ChN"}