@stamhoofd/models 2.39.0 → 2.40.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 (352) hide show
  1. package/dist/src/factories/AddressFactory.d.ts +3 -4
  2. package/dist/src/factories/AddressFactory.d.ts.map +1 -1
  3. package/dist/src/factories/AddressFactory.js +13 -13
  4. package/dist/src/factories/EmergencyContactFactory.d.ts +3 -4
  5. package/dist/src/factories/EmergencyContactFactory.d.ts.map +1 -1
  6. package/dist/src/factories/EmergencyContactFactory.js +27 -27
  7. package/dist/src/factories/EmergencyContactFactory.js.map +1 -1
  8. package/dist/src/factories/GroupFactory.d.ts +4 -4
  9. package/dist/src/factories/GroupFactory.d.ts.map +1 -1
  10. package/dist/src/factories/GroupFactory.js +8 -8
  11. package/dist/src/factories/GroupFactory.js.map +1 -1
  12. package/dist/src/factories/MemberFactory.d.ts +4 -4
  13. package/dist/src/factories/MemberFactory.d.ts.map +1 -1
  14. package/dist/src/factories/MemberFactory.js +17 -17
  15. package/dist/src/factories/MemberFactory.js.map +1 -1
  16. package/dist/src/factories/OrganizationFactory.d.ts +4 -4
  17. package/dist/src/factories/OrganizationFactory.js +8 -8
  18. package/dist/src/factories/OrganizationFactory.js.map +1 -1
  19. package/dist/src/factories/ParentFactory.d.ts +1 -1
  20. package/dist/src/factories/ParentFactory.js +19 -19
  21. package/dist/src/factories/ParentFactory.js.map +1 -1
  22. package/dist/src/factories/RecordFactory.d.ts +2 -3
  23. package/dist/src/factories/RecordFactory.d.ts.map +1 -1
  24. package/dist/src/factories/RecordFactory.js +1 -1
  25. package/dist/src/factories/RecordFactory.js.map +1 -1
  26. package/dist/src/factories/RegisterCodeFactory.d.ts +2 -2
  27. package/dist/src/factories/RegisterCodeFactory.d.ts.map +1 -1
  28. package/dist/src/factories/RegisterCodeFactory.js +2 -2
  29. package/dist/src/factories/RegistrationFactory.d.ts +3 -3
  30. package/dist/src/factories/RegistrationFactory.d.ts.map +1 -1
  31. package/dist/src/factories/RegistrationFactory.js.map +1 -1
  32. package/dist/src/factories/RegistrationPeriodFactory.d.ts +2 -2
  33. package/dist/src/factories/RegistrationPeriodFactory.js.map +1 -1
  34. package/dist/src/factories/UserFactory.d.ts +3 -3
  35. package/dist/src/factories/UserFactory.d.ts.map +1 -1
  36. package/dist/src/factories/UserFactory.js +3 -3
  37. package/dist/src/factories/UserFactory.js.map +1 -1
  38. package/dist/src/factories/WebshopFactory.d.ts +4 -4
  39. package/dist/src/factories/WebshopFactory.d.ts.map +1 -1
  40. package/dist/src/factories/WebshopFactory.js +1 -1
  41. package/dist/src/factories/WebshopFactory.js.map +1 -1
  42. package/dist/src/helpers/DNSValidator.d.ts +1 -1
  43. package/dist/src/helpers/DNSValidator.d.ts.map +1 -1
  44. package/dist/src/helpers/DNSValidator.js +33 -33
  45. package/dist/src/helpers/DNSValidator.js.map +1 -1
  46. package/dist/src/helpers/EmailBuilder.d.ts +10 -10
  47. package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
  48. package/dist/src/helpers/EmailBuilder.js +34 -34
  49. package/dist/src/helpers/EmailBuilder.js.map +1 -1
  50. package/dist/src/helpers/GroupBuilder.d.ts.map +1 -1
  51. package/dist/src/helpers/GroupBuilder.js +57 -57
  52. package/dist/src/helpers/GroupBuilder.js.map +1 -1
  53. package/dist/src/helpers/Handlebars.d.ts.map +1 -1
  54. package/dist/src/helpers/Handlebars.js +29 -29
  55. package/dist/src/helpers/Handlebars.js.map +1 -1
  56. package/dist/src/helpers/MemberMerger.d.ts +1 -1
  57. package/dist/src/helpers/MemberMerger.d.ts.map +1 -1
  58. package/dist/src/helpers/MemberMerger.js +33 -33
  59. package/dist/src/helpers/MemberMerger.js.map +1 -1
  60. package/dist/src/helpers/MemberMerger.test.js +194 -194
  61. package/dist/src/helpers/MemberMerger.test.js.map +1 -1
  62. package/dist/src/helpers/RateLimiter.d.ts.map +1 -1
  63. package/dist/src/helpers/RateLimiter.js +2 -2
  64. package/dist/src/helpers/RateLimiter.js.map +1 -1
  65. package/dist/src/helpers/SetupStepsUpdater.d.ts +22 -0
  66. package/dist/src/helpers/SetupStepsUpdater.d.ts.map +1 -0
  67. package/dist/src/helpers/SetupStepsUpdater.js +255 -0
  68. package/dist/src/helpers/SetupStepsUpdater.js.map +1 -0
  69. package/dist/src/helpers/WebshopCounter.d.ts +1 -1
  70. package/dist/src/helpers/WebshopCounter.d.ts.map +1 -1
  71. package/dist/src/helpers/WebshopCounter.js +1 -1
  72. package/dist/src/helpers/WebshopCounter.js.map +1 -1
  73. package/dist/src/helpers/WebshopCounter.test.js +6 -6
  74. package/dist/src/helpers/WebshopCounter.test.js.map +1 -1
  75. package/dist/src/index.d.ts +20 -19
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +1 -0
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/migrations/1605262045-import-postcodes.js +12 -12
  80. package/dist/src/migrations/1605262046-import-postcodes-nl.js +10 -10
  81. package/dist/src/models/BalanceItem.d.ts.map +1 -1
  82. package/dist/src/models/BalanceItem.js +37 -37
  83. package/dist/src/models/BalanceItem.js.map +1 -1
  84. package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
  85. package/dist/src/models/BalanceItemPayment.js +13 -13
  86. package/dist/src/models/BalanceItemPayment.js.map +1 -1
  87. package/dist/src/models/BuckarooPayment.d.ts +1 -1
  88. package/dist/src/models/BuckarooPayment.d.ts.map +1 -1
  89. package/dist/src/models/BuckarooPayment.js +5 -5
  90. package/dist/src/models/BuckarooPayment.js.map +1 -1
  91. package/dist/src/models/CachedOutstandingBalance.d.ts.map +1 -1
  92. package/dist/src/models/CachedOutstandingBalance.js +37 -37
  93. package/dist/src/models/CachedOutstandingBalance.js.map +1 -1
  94. package/dist/src/models/Document.d.ts +4 -4
  95. package/dist/src/models/Document.d.ts.map +1 -1
  96. package/dist/src/models/Document.js +27 -27
  97. package/dist/src/models/Document.js.map +1 -1
  98. package/dist/src/models/DocumentTemplate.d.ts +4 -4
  99. package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
  100. package/dist/src/models/DocumentTemplate.js +72 -72
  101. package/dist/src/models/DocumentTemplate.js.map +1 -1
  102. package/dist/src/models/Email.d.ts.map +1 -1
  103. package/dist/src/models/Email.js +63 -64
  104. package/dist/src/models/Email.js.map +1 -1
  105. package/dist/src/models/EmailRecipient.d.ts.map +1 -1
  106. package/dist/src/models/EmailRecipient.js +20 -20
  107. package/dist/src/models/EmailRecipient.js.map +1 -1
  108. package/dist/src/models/EmailTemplate.d.ts +3 -3
  109. package/dist/src/models/EmailTemplate.d.ts.map +1 -1
  110. package/dist/src/models/EmailTemplate.js +16 -16
  111. package/dist/src/models/EmailTemplate.js.map +1 -1
  112. package/dist/src/models/EmailVerificationCode.d.ts +2 -2
  113. package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
  114. package/dist/src/models/EmailVerificationCode.js +57 -55
  115. package/dist/src/models/EmailVerificationCode.js.map +1 -1
  116. package/dist/src/models/Event.d.ts +2 -2
  117. package/dist/src/models/Event.d.ts.map +1 -1
  118. package/dist/src/models/Event.js +15 -15
  119. package/dist/src/models/Event.js.map +1 -1
  120. package/dist/src/models/Group.d.ts +3 -1
  121. package/dist/src/models/Group.d.ts.map +1 -1
  122. package/dist/src/models/Group.js +46 -35
  123. package/dist/src/models/Group.js.map +1 -1
  124. package/dist/src/models/Image.d.ts +1 -1
  125. package/dist/src/models/Image.d.ts.map +1 -1
  126. package/dist/src/models/Image.js +26 -26
  127. package/dist/src/models/Image.js.map +1 -1
  128. package/dist/src/models/Member.d.ts +8 -8
  129. package/dist/src/models/Member.d.ts.map +1 -1
  130. package/dist/src/models/Member.js +60 -60
  131. package/dist/src/models/Member.js.map +1 -1
  132. package/dist/src/models/MemberPlatformMembership.d.ts +3 -3
  133. package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
  134. package/dist/src/models/MemberPlatformMembership.js +26 -26
  135. package/dist/src/models/MemberPlatformMembership.js.map +1 -1
  136. package/dist/src/models/MemberResponsibilityRecord.d.ts.map +1 -1
  137. package/dist/src/models/MemberResponsibilityRecord.js +13 -13
  138. package/dist/src/models/MemberResponsibilityRecord.js.map +1 -1
  139. package/dist/src/models/MergedMember.d.ts +3 -3
  140. package/dist/src/models/MergedMember.d.ts.map +1 -1
  141. package/dist/src/models/MergedMember.js +19 -19
  142. package/dist/src/models/MergedMember.js.map +1 -1
  143. package/dist/src/models/MolliePayment.d.ts +1 -1
  144. package/dist/src/models/MolliePayment.d.ts.map +1 -1
  145. package/dist/src/models/MolliePayment.js +5 -5
  146. package/dist/src/models/MolliePayment.js.map +1 -1
  147. package/dist/src/models/MollieToken.d.ts.map +1 -1
  148. package/dist/src/models/MollieToken.js +60 -60
  149. package/dist/src/models/MollieToken.js.map +1 -1
  150. package/dist/src/models/OneTimeToken.d.ts +2 -2
  151. package/dist/src/models/OneTimeToken.d.ts.map +1 -1
  152. package/dist/src/models/OneTimeToken.js +13 -13
  153. package/dist/src/models/OneTimeToken.js.map +1 -1
  154. package/dist/src/models/Order.d.ts +1 -1
  155. package/dist/src/models/Order.d.ts.map +1 -1
  156. package/dist/src/models/Order.js +70 -70
  157. package/dist/src/models/Order.js.map +1 -1
  158. package/dist/src/models/Organization.d.ts +5 -5
  159. package/dist/src/models/Organization.d.ts.map +1 -1
  160. package/dist/src/models/Organization.js +127 -127
  161. package/dist/src/models/Organization.js.map +1 -1
  162. package/dist/src/models/OrganizationRegistrationPeriod.d.ts.map +1 -1
  163. package/dist/src/models/OrganizationRegistrationPeriod.js +15 -15
  164. package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
  165. package/dist/src/models/PasswordToken.d.ts +3 -3
  166. package/dist/src/models/PasswordToken.d.ts.map +1 -1
  167. package/dist/src/models/PasswordToken.js +17 -17
  168. package/dist/src/models/PasswordToken.js.map +1 -1
  169. package/dist/src/models/PayconiqPayment.d.ts +1 -1
  170. package/dist/src/models/PayconiqPayment.d.ts.map +1 -1
  171. package/dist/src/models/PayconiqPayment.js +49 -49
  172. package/dist/src/models/PayconiqPayment.js.map +1 -1
  173. package/dist/src/models/Payment.d.ts +3 -3
  174. package/dist/src/models/Payment.d.ts.map +1 -1
  175. package/dist/src/models/Payment.js +36 -36
  176. package/dist/src/models/Payment.js.map +1 -1
  177. package/dist/src/models/Platform.d.ts +2 -2
  178. package/dist/src/models/Platform.d.ts.map +1 -1
  179. package/dist/src/models/Platform.js +8 -8
  180. package/dist/src/models/Platform.js.map +1 -1
  181. package/dist/src/models/RegisterCode.d.ts +1 -1
  182. package/dist/src/models/RegisterCode.d.ts.map +1 -1
  183. package/dist/src/models/RegisterCode.js +11 -11
  184. package/dist/src/models/RegisterCode.js.map +1 -1
  185. package/dist/src/models/Registration.d.ts +1 -1
  186. package/dist/src/models/Registration.d.ts.map +1 -1
  187. package/dist/src/models/Registration.js +88 -88
  188. package/dist/src/models/Registration.js.map +1 -1
  189. package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
  190. package/dist/src/models/RegistrationPeriod.js +12 -12
  191. package/dist/src/models/RegistrationPeriod.js.map +1 -1
  192. package/dist/src/models/STCredit.d.ts +1 -1
  193. package/dist/src/models/STCredit.d.ts.map +1 -1
  194. package/dist/src/models/STCredit.js +12 -12
  195. package/dist/src/models/STCredit.js.map +1 -1
  196. package/dist/src/models/STInvoice.d.ts +1 -1
  197. package/dist/src/models/STInvoice.d.ts.map +1 -1
  198. package/dist/src/models/STInvoice.js +16 -16
  199. package/dist/src/models/STInvoice.js.map +1 -1
  200. package/dist/src/models/STPackage.d.ts +1 -1
  201. package/dist/src/models/STPackage.d.ts.map +1 -1
  202. package/dist/src/models/STPackage.js +39 -39
  203. package/dist/src/models/STPackage.js.map +1 -1
  204. package/dist/src/models/STPendingInvoice.d.ts +1 -1
  205. package/dist/src/models/STPendingInvoice.d.ts.map +1 -1
  206. package/dist/src/models/STPendingInvoice.js +11 -11
  207. package/dist/src/models/STPendingInvoice.js.map +1 -1
  208. package/dist/src/models/StripeAccount.d.ts.map +1 -1
  209. package/dist/src/models/StripeAccount.js +13 -13
  210. package/dist/src/models/StripeAccount.js.map +1 -1
  211. package/dist/src/models/StripeCheckoutSession.d.ts +1 -1
  212. package/dist/src/models/StripeCheckoutSession.d.ts.map +1 -1
  213. package/dist/src/models/StripeCheckoutSession.js +7 -7
  214. package/dist/src/models/StripeCheckoutSession.js.map +1 -1
  215. package/dist/src/models/StripePaymentIntent.d.ts +1 -1
  216. package/dist/src/models/StripePaymentIntent.d.ts.map +1 -1
  217. package/dist/src/models/StripePaymentIntent.js +7 -7
  218. package/dist/src/models/StripePaymentIntent.js.map +1 -1
  219. package/dist/src/models/Ticket.d.ts +2 -2
  220. package/dist/src/models/Ticket.d.ts.map +1 -1
  221. package/dist/src/models/Ticket.js +23 -23
  222. package/dist/src/models/Ticket.js.map +1 -1
  223. package/dist/src/models/Token.d.ts +3 -3
  224. package/dist/src/models/Token.d.ts.map +1 -1
  225. package/dist/src/models/Token.js +27 -27
  226. package/dist/src/models/Token.js.map +1 -1
  227. package/dist/src/models/Token.test.js +11 -11
  228. package/dist/src/models/UsedRegisterCode.d.ts +1 -1
  229. package/dist/src/models/UsedRegisterCode.d.ts.map +1 -1
  230. package/dist/src/models/UsedRegisterCode.js +10 -10
  231. package/dist/src/models/UsedRegisterCode.js.map +1 -1
  232. package/dist/src/models/User.d.ts +4 -4
  233. package/dist/src/models/User.d.ts.map +1 -1
  234. package/dist/src/models/User.js +53 -51
  235. package/dist/src/models/User.js.map +1 -1
  236. package/dist/src/models/UserPermissions.d.ts +3 -3
  237. package/dist/src/models/UserPermissions.d.ts.map +1 -1
  238. package/dist/src/models/UserPermissions.js +12 -12
  239. package/dist/src/models/UserPermissions.js.map +1 -1
  240. package/dist/src/models/Webshop.d.ts +1 -1
  241. package/dist/src/models/Webshop.d.ts.map +1 -1
  242. package/dist/src/models/Webshop.js +23 -23
  243. package/dist/src/models/Webshop.js.map +1 -1
  244. package/dist/src/models/WebshopDiscountCode.d.ts +1 -1
  245. package/dist/src/models/WebshopDiscountCode.d.ts.map +1 -1
  246. package/dist/src/models/WebshopDiscountCode.js +16 -16
  247. package/dist/src/models/WebshopDiscountCode.js.map +1 -1
  248. package/dist/src/models/addresses/City.d.ts.map +1 -1
  249. package/dist/src/models/addresses/City.js +9 -9
  250. package/dist/src/models/addresses/City.js.map +1 -1
  251. package/dist/src/models/addresses/PostalCode.d.ts.map +1 -1
  252. package/dist/src/models/addresses/PostalCode.js +11 -11
  253. package/dist/src/models/addresses/PostalCode.js.map +1 -1
  254. package/dist/src/models/addresses/PostalCode.test.js +22 -22
  255. package/dist/src/models/addresses/PostalCode.test.js.map +1 -1
  256. package/dist/src/models/addresses/Province.d.ts.map +1 -1
  257. package/dist/src/models/addresses/Province.js +5 -5
  258. package/dist/src/models/addresses/Province.js.map +1 -1
  259. package/dist/src/models/addresses/Street.d.ts.map +1 -1
  260. package/dist/src/models/addresses/Street.js +6 -6
  261. package/dist/src/models/addresses/Street.js.map +1 -1
  262. package/dist/src/models/index.d.ts +46 -46
  263. package/dist/src/models/index.d.ts.map +1 -1
  264. package/dist/src/models/index.js +0 -1
  265. package/dist/src/models/index.js.map +1 -1
  266. package/dist/src/structures/OrganizationServerMetaData.d.ts.map +1 -1
  267. package/dist/src/structures/OrganizationServerMetaData.js +4 -4
  268. package/dist/src/structures/OrganizationServerMetaData.js.map +1 -1
  269. package/dist/tests/jest.global.setup.d.ts.map +1 -1
  270. package/dist/tests/jest.global.setup.js +15 -13
  271. package/dist/tests/jest.global.setup.js.map +1 -1
  272. package/dist/tests/jest.setup.js +3 -1
  273. package/dist/tests/jest.setup.js.map +1 -1
  274. package/dist/tsconfig.tsbuildinfo +1 -0
  275. package/package.json +3 -3
  276. package/src/factories/AddressFactory.ts +17 -17
  277. package/src/factories/EmergencyContactFactory.ts +30 -31
  278. package/src/factories/GroupFactory.ts +30 -30
  279. package/src/factories/MemberFactory.ts +41 -38
  280. package/src/factories/OrganizationFactory.ts +15 -15
  281. package/src/factories/ParentFactory.ts +24 -24
  282. package/src/factories/RecordFactory.ts +5 -4
  283. package/src/factories/RegisterCodeFactory.ts +7 -7
  284. package/src/factories/RegistrationFactory.ts +16 -16
  285. package/src/factories/RegistrationPeriodFactory.ts +5 -5
  286. package/src/factories/UserFactory.ts +20 -19
  287. package/src/factories/WebshopFactory.ts +14 -14
  288. package/src/helpers/DNSValidator.ts +89 -84
  289. package/src/helpers/EmailBuilder.ts +141 -135
  290. package/src/helpers/GroupBuilder.ts +181 -181
  291. package/src/helpers/Handlebars.ts +57 -54
  292. package/src/helpers/MemberMerger.test.ts +702 -702
  293. package/src/helpers/MemberMerger.ts +83 -77
  294. package/src/helpers/RateLimiter.ts +25 -27
  295. package/src/helpers/SetupStepsUpdater.ts +402 -0
  296. package/src/helpers/WebshopCounter.test.ts +12 -12
  297. package/src/helpers/WebshopCounter.ts +20 -19
  298. package/src/index.ts +20 -19
  299. package/src/migrations/1605262045-import-postcodes.ts +59 -63
  300. package/src/migrations/1605262046-import-postcodes-nl.ts +41 -43
  301. package/src/models/BalanceItem.ts +173 -172
  302. package/src/models/BalanceItemPayment.ts +32 -33
  303. package/src/models/BuckarooPayment.ts +7 -7
  304. package/src/models/CachedOutstandingBalance.ts +98 -99
  305. package/src/models/Document.ts +90 -87
  306. package/src/models/DocumentTemplate.ts +207 -198
  307. package/src/models/Email.ts +198 -200
  308. package/src/models/EmailRecipient.ts +38 -39
  309. package/src/models/EmailTemplate.ts +36 -37
  310. package/src/models/EmailVerificationCode.ts +146 -142
  311. package/src/models/Event.ts +53 -53
  312. package/src/models/Group.ts +136 -123
  313. package/src/models/Image.ts +48 -48
  314. package/src/models/Member.ts +277 -275
  315. package/src/models/MemberPlatformMembership.ts +71 -71
  316. package/src/models/MemberResponsibilityRecord.ts +32 -32
  317. package/src/models/MergedMember.ts +77 -77
  318. package/src/models/MolliePayment.ts +7 -7
  319. package/src/models/MollieToken.ts +131 -126
  320. package/src/models/OneTimeToken.ts +40 -39
  321. package/src/models/Order.ts +379 -372
  322. package/src/models/Organization.ts +332 -325
  323. package/src/models/OrganizationRegistrationPeriod.ts +50 -50
  324. package/src/models/PasswordToken.ts +42 -42
  325. package/src/models/PayconiqPayment.ts +80 -76
  326. package/src/models/Payment.ts +86 -86
  327. package/src/models/Platform.ts +21 -22
  328. package/src/models/RegisterCode.ts +26 -26
  329. package/src/models/Registration.ts +167 -168
  330. package/src/models/RegistrationPeriod.ts +29 -29
  331. package/src/models/STCredit.ts +24 -25
  332. package/src/models/STInvoice.ts +34 -34
  333. package/src/models/STPackage.ts +143 -136
  334. package/src/models/STPendingInvoice.ts +26 -26
  335. package/src/models/StripeAccount.ts +27 -27
  336. package/src/models/StripeCheckoutSession.ts +10 -10
  337. package/src/models/StripePaymentIntent.ts +10 -10
  338. package/src/models/Ticket.ts +51 -52
  339. package/src/models/Token.test.ts +13 -13
  340. package/src/models/Token.ts +64 -63
  341. package/src/models/UsedRegisterCode.ts +20 -21
  342. package/src/models/User.ts +148 -144
  343. package/src/models/UserPermissions.ts +25 -28
  344. package/src/models/Webshop.ts +53 -53
  345. package/src/models/WebshopDiscountCode.ts +33 -33
  346. package/src/models/addresses/City.ts +12 -12
  347. package/src/models/addresses/PostalCode.test.ts +68 -69
  348. package/src/models/addresses/PostalCode.ts +57 -57
  349. package/src/models/addresses/Province.ts +8 -8
  350. package/src/models/addresses/Street.ts +10 -12
  351. package/src/models/index.ts +54 -55
  352. package/src/structures/OrganizationServerMetaData.ts +36 -36
@@ -1,98 +1,97 @@
1
-
2
- import { column, Model, SQLResultNamespacedRow } from "@simonbackx/simple-database";
3
- import { SimpleError } from "@simonbackx/simple-errors";
4
- import { SQL, SQLSelect, SQLWhereSign } from "@stamhoofd/sql";
5
- import { PlatformMembershipTypeBehaviour } from "@stamhoofd/structures";
6
- import { Formatter } from "@stamhoofd/utility";
7
- import { v4 as uuidv4 } from "uuid";
8
- import { Member } from "./Member";
9
- import { Organization } from "./Organization";
10
- import { Platform } from "./Platform";
11
- import { BalanceItem } from "./BalanceItem";
1
+ import { column, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
2
+ import { SimpleError } from '@simonbackx/simple-errors';
3
+ import { SQL, SQLSelect, SQLWhereSign } from '@stamhoofd/sql';
4
+ import { PlatformMembershipTypeBehaviour } from '@stamhoofd/structures';
5
+ import { Formatter } from '@stamhoofd/utility';
6
+ import { v4 as uuidv4 } from 'uuid';
7
+ import { Member } from './Member';
8
+ import { Organization } from './Organization';
9
+ import { Platform } from './Platform';
10
+ import { BalanceItem } from './BalanceItem';
12
11
 
13
12
  export class MemberPlatformMembership extends Model {
14
- static table = "member_platform_memberships";
13
+ static table = 'member_platform_memberships';
15
14
 
16
15
  // Columns
17
16
  @column({
18
- primary: true, type: "string", beforeSave(value) {
17
+ primary: true, type: 'string', beforeSave(value) {
19
18
  return value ?? uuidv4();
20
- }
19
+ },
21
20
  })
22
21
  id!: string;
23
22
 
24
- @column({ type: "string" })
23
+ @column({ type: 'string' })
25
24
  memberId: string;
26
25
 
27
- @column({ type: "string" })
26
+ @column({ type: 'string' })
28
27
  membershipTypeId: string;
29
28
 
30
- @column({ type: "string" })
29
+ @column({ type: 'string' })
31
30
  organizationId: string;
32
31
 
33
- @column({ type: "string" })
32
+ @column({ type: 'string' })
34
33
  periodId: string;
35
34
 
36
- @column({ type: "date" })
35
+ @column({ type: 'date' })
37
36
  startDate: Date;
38
37
 
39
- @column({ type: "date" })
38
+ @column({ type: 'date' })
40
39
  endDate: Date;
41
40
 
42
- @column({ type: "date", nullable: true})
41
+ @column({ type: 'date', nullable: true })
43
42
  expireDate: Date | null = null;
44
43
 
45
- @column({ type: "string", nullable: true })
44
+ @column({ type: 'string', nullable: true })
46
45
  balanceItemId: string | null = null;
47
46
 
48
- @column({ type: "integer" })
47
+ @column({ type: 'integer' })
49
48
  price = 0;
50
49
 
51
- @column({ type: "integer" })
50
+ @column({ type: 'integer' })
52
51
  priceWithoutDiscount = 0;
53
52
 
54
53
  /**
55
54
  * Contains the amount of days, or either 1/0 to count the amount of 'free' days maximum could be awarded.
56
55
  * Set to 0 when already a different 'free' membership was created, so it shouldn't count for a free day
57
56
  */
58
- @column({ type: "integer" })
57
+ @column({ type: 'integer' })
59
58
  maximumFreeAmount = 0;
60
59
 
61
- @column({ type: "integer" })
60
+ @column({ type: 'integer' })
62
61
  freeAmount = 0;
63
62
 
64
63
  /**
65
64
  * Whether this was added automatically by the system
66
65
  */
67
- @column({ type: "boolean" })
68
- generated = false
66
+ @column({ type: 'boolean' })
67
+ generated = false;
69
68
 
70
69
  @column({
71
- type: "datetime", nullable: true
70
+ type: 'datetime', nullable: true,
72
71
  })
73
- deletedAt: Date|null = null
72
+ deletedAt: Date | null = null;
74
73
 
75
74
  @column({
76
- type: "datetime", beforeSave(old?: any) {
75
+ type: 'datetime', beforeSave(old?: any) {
77
76
  if (old !== undefined) {
78
77
  return old;
79
78
  }
80
- const date = new Date()
81
- date.setMilliseconds(0)
82
- return date
83
- }
79
+ const date = new Date();
80
+ date.setMilliseconds(0);
81
+ return date;
82
+ },
84
83
  })
85
- createdAt: Date
84
+ createdAt: Date;
86
85
 
87
86
  @column({
88
- type: "datetime", beforeSave() {
89
- const date = new Date()
90
- date.setMilliseconds(0)
91
- return date
87
+ type: 'datetime', beforeSave() {
88
+ const date = new Date();
89
+ date.setMilliseconds(0);
90
+ return date;
92
91
  },
93
- skipUpdate: true
92
+ skipUpdate: true,
94
93
  })
95
- updatedAt: Date
94
+ updatedAt: Date;
96
95
 
97
96
  canDelete() {
98
97
  if (this.balanceItemId) {
@@ -113,39 +112,39 @@ export class MemberPlatformMembership extends Model {
113
112
  throw new SimpleError({
114
113
  code: 'invalid_membership_type',
115
114
  message: 'Uknown membership type',
116
- human: 'Deze aansluiting is niet (meer) beschikbaar'
117
- })
115
+ human: 'Deze aansluiting is niet (meer) beschikbaar',
116
+ });
118
117
  }
119
118
 
120
- const periodConfig = membershipType.periods.get(this.periodId)
119
+ const periodConfig = membershipType.periods.get(this.periodId);
121
120
 
122
121
  if (!periodConfig) {
123
122
  throw new SimpleError({
124
123
  code: 'period_unavailable',
125
124
  message: 'Membership not available for this period',
126
- human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar'
127
- })
125
+ human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar',
126
+ });
128
127
  }
129
128
 
130
129
  const organization = await Organization.getByID(this.organizationId);
131
130
  if (!organization) {
132
131
  throw new SimpleError({
133
- //todo
132
+ // todo
134
133
  code: 'not_found',
135
134
  message: 'Organization not found',
136
- human: 'De organisatie is niet gevonden'
137
- })
135
+ human: 'De organisatie is niet gevonden',
136
+ });
138
137
  }
139
138
 
140
139
  const tagIds = organization.meta.tags;
141
140
  const shouldApplyReducedPrice = member.details.shouldApplyReducedPrice;
142
-
141
+
143
142
  const priceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
144
143
  const earliestPriceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? new Date(1950, 0, 1) : (new Date(1950, 0, 1)));
145
144
 
146
145
  let freeDays = 0;
147
146
 
148
- const d = this.createdAt ??new Date();
147
+ const d = this.createdAt ?? new Date();
149
148
 
150
149
  if (periodConfig.amountFree) {
151
150
  // Check if this organization has rights to free memberships
@@ -157,39 +156,40 @@ export class MemberPlatformMembership extends Model {
157
156
  .whereNot('id', this.id)
158
157
  .where(
159
158
  SQL.where('createdAt', SQLWhereSign.Less, d)
160
- .or(
161
- SQL.where('createdAt', SQLWhereSign.Equal, d)
162
- .and('id', SQLWhereSign.Less, this.id)
163
- )
159
+ .or(
160
+ SQL.where('createdAt', SQLWhereSign.Equal, d)
161
+ .and('id', SQLWhereSign.Less, this.id),
162
+ ),
164
163
  )
165
164
  .sum(SQL.column('maximumFreeAmount'));
166
165
 
167
166
  if (alreadyUsed < periodConfig.amountFree) {
168
167
  freeDays = periodConfig.amountFree - alreadyUsed;
169
168
  console.log('Free membership created for ', this.id, periodConfig.amountFree, alreadyUsed);
170
- } else {
169
+ }
170
+ else {
171
171
  console.log('No free membership created for', this.id, periodConfig.amountFree, alreadyUsed);
172
172
  }
173
173
  }
174
174
 
175
-
176
175
  if (membershipType.behaviour === PlatformMembershipTypeBehaviour.Days) {
177
176
  // Make sure time is equal between start and end date
178
177
  let startBrussels = Formatter.luxon(this.startDate);
179
178
  let endBrussels = Formatter.luxon(this.endDate);
180
- startBrussels = startBrussels.set({hour: 0, minute: 0, second: 0, millisecond: 0});
181
- endBrussels = endBrussels.set({hour: 23, minute: 59, second: 59, millisecond: 0});
179
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
180
+ endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
182
181
  this.startDate = startBrussels.toJSDate();
183
182
  this.endDate = endBrussels.toJSDate();
184
183
 
185
- this.expireDate = null
184
+ this.expireDate = null;
186
185
 
187
186
  const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
188
187
  this.maximumFreeAmount = days;
189
188
  this.priceWithoutDiscount = earliestPriceConfig.calculatePrice(tagIds, false, days);
190
189
  this.price = priceConfig.calculatePrice(tagIds, shouldApplyReducedPrice, Math.max(0, days - freeDays));
191
190
  this.freeAmount = Math.min(days, freeDays);
192
- } else {
191
+ }
192
+ else {
193
193
  this.priceWithoutDiscount = earliestPriceConfig.getBasePrice(tagIds, false);
194
194
  this.price = priceConfig.getBasePrice(tagIds, shouldApplyReducedPrice);
195
195
  this.startDate = periodConfig.startDate;
@@ -219,14 +219,14 @@ export class MemberPlatformMembership extends Model {
219
219
  }
220
220
 
221
221
  async doDelete() {
222
- this.deletedAt = new Date()
223
- await this.save()
222
+ this.deletedAt = new Date();
223
+ await this.save();
224
224
 
225
225
  if (this.balanceItemId) {
226
226
  // Also update the balance item
227
227
  const balanceItem = await BalanceItem.getByID(this.balanceItemId);
228
228
  if (balanceItem) {
229
- await BalanceItem.deleteItems([balanceItem])
229
+ await BalanceItem.deleteItems([balanceItem]);
230
230
  }
231
231
  }
232
232
  }
@@ -236,16 +236,16 @@ export class MemberPlatformMembership extends Model {
236
236
  */
237
237
  static select() {
238
238
  const transformer = (row: SQLResultNamespacedRow): MemberPlatformMembership => {
239
- const d = (this as typeof MemberPlatformMembership & typeof Model).fromRow(row[this.table] as any) as MemberPlatformMembership|undefined
239
+ const d = (this as typeof MemberPlatformMembership & typeof Model).fromRow(row[this.table] as any) as MemberPlatformMembership | undefined;
240
240
 
241
241
  if (!d) {
242
- throw new Error("MemberPlatformMembership not found")
242
+ throw new Error('MemberPlatformMembership not found');
243
243
  }
244
244
 
245
245
  return d;
246
- }
247
-
248
- const select = new SQLSelect(transformer, SQL.wildcard())
249
- return select.from(SQL.table(this.table))
246
+ };
247
+
248
+ const select = new SQLSelect(transformer, SQL.wildcard());
249
+ return select.from(SQL.table(this.table));
250
250
  }
251
251
  }
@@ -1,57 +1,57 @@
1
1
  import { column, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
2
2
  import { SQL, SQLSelect } from '@stamhoofd/sql';
3
3
  import { Group as GroupStruct, MemberResponsibilityRecordBase, MemberResponsibilityRecord as MemberResponsibilityRecordStruct } from '@stamhoofd/structures';
4
- import { v4 as uuidv4 } from "uuid";
4
+ import { v4 as uuidv4 } from 'uuid';
5
5
 
6
6
  export class MemberResponsibilityRecord extends Model {
7
- static table = "member_responsibility_records"
7
+ static table = 'member_responsibility_records';
8
8
 
9
9
  // Columns
10
10
  @column({
11
- primary: true, type: "string", beforeSave(value) {
11
+ primary: true, type: 'string', beforeSave(value) {
12
12
  return value ?? uuidv4();
13
- }
13
+ },
14
14
  })
15
15
  id!: string;
16
16
 
17
- @column({ type: "string", nullable: true })
18
- organizationId: string|null = null;
17
+ @column({ type: 'string', nullable: true })
18
+ organizationId: string | null = null;
19
19
 
20
- @column({ type: "string", nullable: true })
21
- groupId: string|null = null;
20
+ @column({ type: 'string', nullable: true })
21
+ groupId: string | null = null;
22
22
 
23
- @column({ type: "string" })
24
- memberId: string
23
+ @column({ type: 'string' })
24
+ memberId: string;
25
25
 
26
- @column({ type: "string" })
27
- responsibilityId: string
26
+ @column({ type: 'string' })
27
+ responsibilityId: string;
28
28
 
29
29
  @column({
30
- type: "datetime", beforeSave(old?: any) {
30
+ type: 'datetime', beforeSave(old?: any) {
31
31
  if (old !== undefined) {
32
32
  return old;
33
33
  }
34
- const date = new Date()
35
- date.setMilliseconds(0)
36
- return date
37
- }
34
+ const date = new Date();
35
+ date.setMilliseconds(0);
36
+ return date;
37
+ },
38
38
  })
39
- startDate: Date
39
+ startDate: Date;
40
40
 
41
- @column({ type: "datetime", nullable: true })
42
- endDate: Date | null = null
41
+ @column({ type: 'datetime', nullable: true })
42
+ endDate: Date | null = null;
43
43
 
44
44
  getBaseStructure() {
45
45
  return MemberResponsibilityRecordBase.create({
46
- ...this
47
- })
46
+ ...this,
47
+ });
48
48
  }
49
49
 
50
- getStructure(group: GroupStruct|null) {
50
+ getStructure(group: GroupStruct | null) {
51
51
  return MemberResponsibilityRecordStruct.create({
52
52
  ...this,
53
- group
54
- })
53
+ group,
54
+ });
55
55
  }
56
56
 
57
57
  /**
@@ -59,16 +59,16 @@ export class MemberResponsibilityRecord extends Model {
59
59
  */
60
60
  static select() {
61
61
  const transformer = (row: SQLResultNamespacedRow): MemberResponsibilityRecord => {
62
- const d = (this as typeof MemberResponsibilityRecord & typeof Model).fromRow(row[this.table] as any) as MemberResponsibilityRecord|undefined
63
-
62
+ const d = (this as typeof MemberResponsibilityRecord & typeof Model).fromRow(row[this.table] as any) as MemberResponsibilityRecord | undefined;
63
+
64
64
  if (!d) {
65
- throw new Error("MemberResponsibilityRecord not found")
65
+ throw new Error('MemberResponsibilityRecord not found');
66
66
  }
67
67
 
68
68
  return d;
69
- }
70
-
71
- const select = new SQLSelect(transformer, SQL.wildcard())
72
- return select.from(SQL.table(this.table))
69
+ };
70
+
71
+ const select = new SQLSelect(transformer, SQL.wildcard());
72
+ return select.from(SQL.table(this.table));
73
73
  }
74
74
  }
@@ -1,112 +1,112 @@
1
- import { Model, column } from "@simonbackx/simple-database";
2
- import { MemberDetails } from "@stamhoofd/structures";
3
- import { Member } from "./";
1
+ import { Model, column } from '@simonbackx/simple-database';
2
+ import { MemberDetails } from '@stamhoofd/structures';
3
+ import { Member } from './';
4
4
 
5
5
  export class MergedMember extends Model {
6
- static override table = "merged_members";
7
-
8
- //#region Member columns
6
+ static override table = 'merged_members';
7
+
8
+ // #region Member columns
9
9
  @column({
10
- primary: true,
11
- type: "string",
10
+ primary: true,
11
+ type: 'string',
12
12
  })
13
- id: string = "";
14
-
15
- @column({ type: "string", nullable: true })
13
+ id: string = '';
14
+
15
+ @column({ type: 'string', nullable: true })
16
16
  organizationId: string | null = null;
17
-
17
+
18
18
  @column({
19
- type: "string",
19
+ type: 'string',
20
20
  })
21
21
  firstName: string;
22
-
22
+
23
23
  @column({
24
- type: "string",
24
+ type: 'string',
25
25
  })
26
26
  lastName: string;
27
-
27
+
28
28
  @column({
29
- type: "string",
30
- nullable: true,
29
+ type: 'string',
30
+ nullable: true,
31
31
  })
32
32
  birthDay: string | null;
33
-
33
+
34
34
  @column({
35
- type: "string",
36
- nullable: true,
35
+ type: 'string',
36
+ nullable: true,
37
37
  })
38
38
  memberNumber: string | null;
39
-
40
- @column({ type: "json", decoder: MemberDetails })
39
+
40
+ @column({ type: 'json', decoder: MemberDetails })
41
41
  details: MemberDetails;
42
-
42
+
43
43
  /**
44
44
  * Not yet paid balance
45
45
  */
46
- @column({ type: "integer" })
46
+ @column({ type: 'integer' })
47
47
  outstandingBalance = 0;
48
-
48
+
49
49
  @column({
50
- type: "datetime",
51
- beforeSave(old?: any) {
52
- if (old !== undefined) {
53
- return old;
54
- }
55
- const date = new Date();
56
- date.setMilliseconds(0);
57
- return date;
58
- },
50
+ type: 'datetime',
51
+ beforeSave(old?: any) {
52
+ if (old !== undefined) {
53
+ return old;
54
+ }
55
+ const date = new Date();
56
+ date.setMilliseconds(0);
57
+ return date;
58
+ },
59
59
  })
60
60
  createdAt: Date;
61
-
61
+
62
62
  @column({
63
- type: "datetime",
64
- beforeSave() {
65
- const date = new Date();
66
- date.setMilliseconds(0);
67
- return date;
68
- },
69
- skipUpdate: true,
63
+ type: 'datetime',
64
+ beforeSave() {
65
+ const date = new Date();
66
+ date.setMilliseconds(0);
67
+ return date;
68
+ },
69
+ skipUpdate: true,
70
70
  })
71
71
  updatedAt: Date;
72
- //#endregion
73
-
74
- //#region extra columns
72
+ // #endregion
73
+
74
+ // #region extra columns
75
75
  @column({
76
- type: "string",
77
- nullable: false,
76
+ type: 'string',
77
+ nullable: false,
78
78
  })
79
- mergedToId: string = "";
80
-
79
+ mergedToId: string = '';
80
+
81
81
  @column({
82
- type: "datetime",
83
- beforeSave(old?: any) {
84
- if (old !== undefined) {
85
- return old;
86
- }
87
- const date = new Date();
88
- date.setMilliseconds(0);
89
- return date;
90
- },
82
+ type: 'datetime',
83
+ beforeSave(old?: any) {
84
+ if (old !== undefined) {
85
+ return old;
86
+ }
87
+ const date = new Date();
88
+ date.setMilliseconds(0);
89
+ return date;
90
+ },
91
91
  })
92
92
  mergedAt: Date;
93
- //#endregion
94
-
93
+ // #endregion
94
+
95
95
  static fromMember(member: Member, mergedToId: string): MergedMember {
96
- const mergedMember = new MergedMember();
97
- mergedMember.mergedToId = mergedToId;
98
- mergedMember.mergedAt = new Date();
99
-
100
- mergedMember.id = member.id;
101
- mergedMember.organizationId = member.organizationId;
102
- mergedMember.firstName = member.firstName;
103
- mergedMember.lastName = member.lastName;
104
- mergedMember.birthDay = member.birthDay;
105
- mergedMember.memberNumber = member.memberNumber;
106
- mergedMember.outstandingBalance = member.outstandingBalance;
107
- mergedMember.createdAt = new Date(member.createdAt);
108
- mergedMember.updatedAt = new Date(member.updatedAt);
109
- mergedMember.details = member.details.clone();
110
- return mergedMember;
96
+ const mergedMember = new MergedMember();
97
+ mergedMember.mergedToId = mergedToId;
98
+ mergedMember.mergedAt = new Date();
99
+
100
+ mergedMember.id = member.id;
101
+ mergedMember.organizationId = member.organizationId;
102
+ mergedMember.firstName = member.firstName;
103
+ mergedMember.lastName = member.lastName;
104
+ mergedMember.birthDay = member.birthDay;
105
+ mergedMember.memberNumber = member.memberNumber;
106
+ mergedMember.outstandingBalance = member.outstandingBalance;
107
+ mergedMember.createdAt = new Date(member.createdAt);
108
+ mergedMember.updatedAt = new Date(member.updatedAt);
109
+ mergedMember.details = member.details.clone();
110
+ return mergedMember;
111
111
  }
112
- }
112
+ }
@@ -1,19 +1,19 @@
1
- import { column,Model } from "@simonbackx/simple-database";
2
- import { v4 as uuidv4 } from "uuid";
1
+ import { column, Model } from '@simonbackx/simple-database';
2
+ import { v4 as uuidv4 } from 'uuid';
3
3
 
4
4
  export class MolliePayment extends Model {
5
- static table = "mollie_payments";
5
+ static table = 'mollie_payments';
6
6
 
7
7
  @column({
8
- primary: true, type: "string", beforeSave(value) {
8
+ primary: true, type: 'string', beforeSave(value) {
9
9
  return value ?? uuidv4();
10
- }
10
+ },
11
11
  })
12
12
  id!: string;
13
13
 
14
- @column({ type: "string" })
14
+ @column({ type: 'string' })
15
15
  paymentId: string;
16
16
 
17
- @column({ type: "string" })
17
+ @column({ type: 'string' })
18
18
  mollieId: string;
19
19
  }