@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,202 +1,205 @@
1
-
2
- import { column, Model } from "@simonbackx/simple-database";
1
+ import { column, Model } from '@simonbackx/simple-database';
3
2
  import { Document as DocumentStruct, DocumentData, DocumentStatus } from '@stamhoofd/structures';
4
- import { Formatter } from "@stamhoofd/utility";
5
- import { v4 as uuidv4 } from "uuid";
3
+ import { Formatter } from '@stamhoofd/utility';
4
+ import { v4 as uuidv4 } from 'uuid';
6
5
 
7
- import { render } from "../helpers/Handlebars";
8
- import { RegistrationWithMember } from "./Member";
9
- import { Organization } from "./Organization";
6
+ import { render } from '../helpers/Handlebars';
7
+ import { RegistrationWithMember } from './Member';
8
+ import { Organization } from './Organization';
10
9
 
11
10
  export class Document extends Model {
12
- static table = "documents";
11
+ static table = 'documents';
13
12
 
14
- @column({ primary: true, type: "string", beforeSave(value) {
13
+ @column({ primary: true, type: 'string', beforeSave(value) {
15
14
  return value ?? uuidv4();
16
15
  } })
17
16
  id!: string;
18
17
 
19
- @column({ type: "string"})
20
- organizationId: string
18
+ @column({ type: 'string' })
19
+ organizationId: string;
21
20
 
22
- @column({ type: "string"})
23
- templateId: string
21
+ @column({ type: 'string' })
22
+ templateId: string;
24
23
 
25
24
  /**
26
25
  * Used to give a member access to the document
27
26
  */
28
- @column({ type: "string", nullable: true })
29
- memberId: string | null = null
27
+ @column({ type: 'string', nullable: true })
28
+ memberId: string | null = null;
30
29
 
31
30
  /**
32
31
  * Used to identify document already created for a registration (= to update it)
33
32
  */
34
- @column({ type: "string", nullable: true })
35
- registrationId: string | null = null
33
+ @column({ type: 'string', nullable: true })
34
+ registrationId: string | null = null;
36
35
 
37
- @column({ type: "string" })
38
- status = DocumentStatus.Draft
36
+ @column({ type: 'string' })
37
+ status = DocumentStatus.Draft;
39
38
 
40
39
  /**
41
40
  * Assigned when exporting the document
42
41
  */
43
- @column({ type: "integer", nullable: true })
44
- number: number | null = null
42
+ @column({ type: 'integer', nullable: true })
43
+ number: number | null = null;
45
44
 
46
45
  /**
47
46
  * Settings of the document. This information is public
48
47
  */
49
- @column({ type: "json", decoder: DocumentData })
50
- data = DocumentData.create({})
48
+ @column({ type: 'json', decoder: DocumentData })
49
+ data = DocumentData.create({});
51
50
 
52
- @column({ type: "datetime" })
53
- createdAt: Date = new Date()
51
+ @column({ type: 'datetime' })
52
+ createdAt: Date = new Date();
54
53
 
55
54
  @column({
56
- type: "datetime", beforeSave() {
57
- const date = new Date()
58
- date.setMilliseconds(0)
59
- return date
55
+ type: 'datetime', beforeSave() {
56
+ const date = new Date();
57
+ date.setMilliseconds(0);
58
+ return date;
60
59
  },
61
- skipUpdate: true
60
+ skipUpdate: true,
62
61
  })
63
- updatedAt: Date
62
+ updatedAt: Date;
64
63
 
65
64
  getStructure() {
66
- return DocumentStruct.create(this)
65
+ return DocumentStruct.create(this);
67
66
  }
68
67
 
69
68
  buildContext(organization: Organization) {
70
69
  // Convert the field answers in a simplified javascript object
71
70
  const data = {
72
- "id": this.id,
73
- "name": this.data.name,
74
- "number": this.number,
75
- "created_at": this.createdAt,
76
- "organization.logo": organization.meta.squareLogo,
71
+ 'id': this.id,
72
+ 'name': this.data.name,
73
+ 'number': this.number,
74
+ 'created_at': this.createdAt,
75
+ 'organization.logo': organization.meta.squareLogo,
77
76
  };
78
77
 
79
78
  for (const field of this.data.fieldAnswers.values()) {
80
- const keys = field.settings.id.split('.')
81
- let current = data
82
- const lastKey = keys.pop()!
79
+ const keys = field.settings.id.split('.');
80
+ let current = data;
81
+ const lastKey = keys.pop()!;
83
82
  if (!lastKey) {
84
- throw new Error("Invalid field id")
83
+ throw new Error('Invalid field id');
85
84
  }
86
85
  for (const key of keys) {
87
86
  if (!current[key]) {
88
- current[key] = {}
87
+ current[key] = {};
89
88
  }
90
- current = current[key]
89
+ current = current[key];
91
90
 
92
- if (typeof current !== "object") {
93
- throw new Error("Invalid field type")
91
+ if (typeof current !== 'object') {
92
+ throw new Error('Invalid field type');
94
93
  }
95
94
  }
96
- current[lastKey] = field.objectValue
95
+ current[lastKey] = field.objectValue;
97
96
  }
98
97
  return data;
99
98
  }
100
99
 
101
100
  async updateData(): Promise<void> {
102
101
  if (!this.registrationId) {
103
- console.log('No registration id, skipping update')
104
- return
102
+ console.log('No registration id, skipping update');
103
+ return;
105
104
  }
106
- const DocumentTemplate = (await import("./DocumentTemplate")).DocumentTemplate
107
- const template = await DocumentTemplate.getByID(this.templateId)
105
+ const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
106
+ const template = await DocumentTemplate.getByID(this.templateId);
108
107
  if (!template) {
109
- console.log('No template, skipping update')
110
- return
108
+ console.log('No template, skipping update');
109
+ return;
111
110
  }
112
111
 
113
112
  if (!template.updatesEnabled) {
114
- console.log('No updatesEnabled, skipping update')
115
- return
113
+ console.log('No updatesEnabled, skipping update');
114
+ return;
116
115
  }
117
116
 
118
- const Member = (await import("./Member")).Member
119
- const [registration] = await Member.getRegistrationWithMembersByIDs([this.registrationId])
117
+ const Member = (await import('./Member')).Member;
118
+ const [registration] = await Member.getRegistrationWithMembersByIDs([this.registrationId]);
120
119
  if (!registration) {
121
- console.log('No registration, skipping update')
122
- return
120
+ console.log('No registration, skipping update');
121
+ return;
123
122
  }
124
123
 
125
- await template.updateDocumentFor(this, registration)
124
+ await template.updateDocumentFor(this, registration);
126
125
  }
127
126
 
128
127
  static async updateForMember(memberId: string) {
129
128
  try {
130
- console.log('Updating documents for member', memberId)
131
- const Member = (await import("./Member")).Member
132
- const member = await Member.getWithRegistrations(memberId)
129
+ console.log('Updating documents for member', memberId);
130
+ const Member = (await import('./Member')).Member;
131
+ const member = await Member.getWithRegistrations(memberId);
133
132
  if (member) {
134
- const organizationIds = Formatter.uniqueArray(member.registrations.map(r => r.organizationId))
133
+ const organizationIds = Formatter.uniqueArray(member.registrations.map(r => r.organizationId));
135
134
  for (const organizationId of organizationIds) {
136
- await this.updateForRegistrations(member.registrations.map(r => r.id), organizationId)
135
+ await this.updateForRegistrations(member.registrations.map(r => r.id), organizationId);
137
136
  }
138
137
  }
139
- } catch (e) {
140
- console.error(e)
138
+ }
139
+ catch (e) {
140
+ console.error(e);
141
141
  }
142
142
  }
143
143
 
144
144
  static async updateForRegistration(registration: RegistrationWithMember) {
145
145
  try {
146
- console.log('Updating documents for registration', registration.id)
146
+ console.log('Updating documents for registration', registration.id);
147
147
 
148
- const DocumentTemplate = (await import("./DocumentTemplate")).DocumentTemplate
149
- const templates = await DocumentTemplate.where({updatesEnabled: 1, organizationId: registration.member.organizationId})
148
+ const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
149
+ const templates = await DocumentTemplate.where({ updatesEnabled: 1, organizationId: registration.member.organizationId });
150
150
 
151
151
  for (const template of templates) {
152
- await template.createForRegistrationIfNeeded(registration)
152
+ await template.createForRegistrationIfNeeded(registration);
153
153
  }
154
- } catch (e) {
155
- console.error(e)
154
+ }
155
+ catch (e) {
156
+ console.error(e);
156
157
  }
157
158
  }
158
159
 
159
160
  static async updateForRegistrations(registrationIds: string[], organizationId: string) {
160
161
  try {
161
- console.log('Updating documents for updateForRegistrations', registrationIds)
162
+ console.log('Updating documents for updateForRegistrations', registrationIds);
162
163
 
163
- const DocumentTemplate = (await import("./DocumentTemplate")).DocumentTemplate
164
- const templates = await DocumentTemplate.where({updatesEnabled: 1, organizationId})
164
+ const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
165
+ const templates = await DocumentTemplate.where({ updatesEnabled: 1, organizationId });
165
166
 
166
167
  if (templates.length) {
167
- const Member = (await import("./Member")).Member
168
- const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds)
168
+ const Member = (await import('./Member')).Member;
169
+ const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds);
169
170
 
170
171
  for (const template of templates) {
171
172
  for (const registration of registrations) {
172
- await template.createForRegistrationIfNeeded(registration)
173
+ await template.createForRegistrationIfNeeded(registration);
173
174
  }
174
175
  }
175
176
  }
176
- } catch (e) {
177
- console.error(e)
177
+ }
178
+ catch (e) {
179
+ console.error(e);
178
180
  }
179
181
  }
180
182
 
181
183
  // Rander handlebars template
182
184
  async getRenderedHtml(organization: Organization): Promise<string | null> {
183
- const DocumentTemplate = (await import("./DocumentTemplate")).DocumentTemplate
184
- const template = await DocumentTemplate.getByID(this.templateId)
185
+ const DocumentTemplate = (await import('./DocumentTemplate')).DocumentTemplate;
186
+ const template = await DocumentTemplate.getByID(this.templateId);
185
187
  if (!template) {
186
- return null
188
+ return null;
187
189
  }
188
190
 
189
- return this.getRenderedHtmlForTemplate(organization, template.html)
191
+ return this.getRenderedHtmlForTemplate(organization, template.html);
190
192
  }
191
193
 
192
194
  // Rander handlebars template
193
195
  private getRenderedHtmlForTemplate(organization: Organization, htmlTemplate: string): string | null {
194
196
  try {
195
- const context = this.buildContext(organization)
197
+ const context = this.buildContext(organization);
196
198
  const renderedHtml = render(htmlTemplate, context);
197
199
  return renderedHtml;
198
- } catch (e) {
199
- console.error('Failed to render document html', e)
200
+ }
201
+ catch (e) {
202
+ console.error('Failed to render document html', e);
200
203
  return null;
201
204
  }
202
205
  }