@stamhoofd/backend 2.118.1 → 2.120.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 (362) hide show
  1. package/package.json +32 -22
  2. package/src/audit-logs/ModelLogger.ts +4 -2
  3. package/src/audit-logs/OrderLogger.ts +1 -1
  4. package/src/boot.ts +32 -14
  5. package/src/crons/balance-emails.ts +4 -2
  6. package/src/crons/clearExcelCache.test.ts +8 -8
  7. package/src/crons/update-cached-balances.ts +40 -14
  8. package/src/debug.ts +3 -2
  9. package/src/decoders/StringArrayDecoder.ts +1 -1
  10. package/src/decoders/StringNullableDecoder.ts +1 -1
  11. package/src/email-recipient-loaders/documents.ts +2 -1
  12. package/src/email-recipient-loaders/members.ts +2 -1
  13. package/src/email-recipient-loaders/orders.ts +2 -1
  14. package/src/email-recipient-loaders/payments.ts +6 -3
  15. package/src/email-recipient-loaders/receivable-balances.ts +2 -1
  16. package/src/email-recipient-loaders/registrations.ts +2 -1
  17. package/src/email-replacements/getEmailReplacementsForPayment.ts +8 -7
  18. package/src/endpoints/admin/members/ChargeMembersEndpoint.ts +7 -6
  19. package/src/endpoints/admin/memberships/ChargeMembershipsEndpoint.ts +3 -2
  20. package/src/endpoints/admin/memberships/GetChargeMembershipsSummaryEndpoint.ts +2 -1
  21. package/src/endpoints/admin/organizations/ChargeOrganizationsEndpoint.ts +4 -3
  22. package/src/endpoints/admin/organizations/GetOrganizationsCountEndpoint.ts +3 -2
  23. package/src/endpoints/admin/organizations/GetOrganizationsEndpoint.ts +7 -5
  24. package/src/endpoints/admin/organizations/PatchOrganizationsEndpoint.ts +12 -10
  25. package/src/endpoints/admin/registrations/ChargeRegistrationsEndpoint.ts +4 -3
  26. package/src/endpoints/auth/CreateAdminEndpoint.ts +8 -6
  27. package/src/endpoints/auth/CreateTokenEndpoint.ts +14 -12
  28. package/src/endpoints/auth/DeleteTokenEndpoint.ts +2 -1
  29. package/src/endpoints/auth/DeleteUserEndpoint.ts +2 -1
  30. package/src/endpoints/auth/ForgotPasswordEndpoint.ts +5 -4
  31. package/src/endpoints/auth/GetOtherUserEndpoint.ts +3 -2
  32. package/src/endpoints/auth/GetUserEndpoint.ts +3 -2
  33. package/src/endpoints/auth/OpenIDConnectAuthTokenEndpoint.ts +2 -1
  34. package/src/endpoints/auth/OpenIDConnectCallbackEndpoint.ts +4 -2
  35. package/src/endpoints/auth/OpenIDConnectStartEndpoint.ts +3 -2
  36. package/src/endpoints/auth/PatchUserEndpoint.ts +15 -12
  37. package/src/endpoints/auth/PollEmailVerificationEndpoint.ts +3 -2
  38. package/src/endpoints/auth/RetryEmailVerificationEndpoint.ts +3 -2
  39. package/src/endpoints/auth/SignupEndpoint.ts +5 -4
  40. package/src/endpoints/auth/VerifyEmailEndpoint.ts +6 -5
  41. package/src/endpoints/frontend/FrontendEnvironmentEndpoint.ts +3 -2
  42. package/src/endpoints/global/addresses/SearchRegionsEndpoint.ts +8 -5
  43. package/src/endpoints/global/addresses/ValidateAddressEndpoint.ts +5 -3
  44. package/src/endpoints/global/audit-logs/GetAuditLogsEndpoint.ts +8 -5
  45. package/src/endpoints/global/billing/ActivatePackagesEndpoint.ts +9 -7
  46. package/src/endpoints/global/billing/DeactivatePackageEndpoint.ts +4 -3
  47. package/src/endpoints/global/caddy/CheckDomainCertEndpoint.ts +4 -2
  48. package/src/endpoints/global/email/CreateEmailEndpoint.ts +9 -7
  49. package/src/endpoints/global/email/GetAdminEmailsEndpoint.test.ts +2 -1
  50. package/src/endpoints/global/email/GetAdminEmailsEndpoint.ts +22 -19
  51. package/src/endpoints/global/email/GetEmailAddressEndpoint.ts +6 -4
  52. package/src/endpoints/global/email/GetEmailEndpoint.ts +4 -3
  53. package/src/endpoints/global/email/GetUserEmailsEndpoint.test.ts +3 -2
  54. package/src/endpoints/global/email/GetUserEmailsEndpoint.ts +7 -4
  55. package/src/endpoints/global/email/ManageEmailAddressEndpoint.ts +7 -5
  56. package/src/endpoints/global/email/PatchEmailEndpoint.test.ts +11 -11
  57. package/src/endpoints/global/email/PatchEmailEndpoint.ts +14 -11
  58. package/src/endpoints/global/email-recipients/GetEmailRecipientsCountEndpoint.ts +3 -2
  59. package/src/endpoints/global/email-recipients/GetEmailRecipientsEndpoint.test.ts +2 -1
  60. package/src/endpoints/global/email-recipients/GetEmailRecipientsEndpoint.ts +8 -5
  61. package/src/endpoints/global/email-recipients/RetryEmailRecipientEndpoint.ts +7 -5
  62. package/src/endpoints/global/email-recipients/helpers/validateEmailRecipientFilter.ts +4 -3
  63. package/src/endpoints/global/events/GetEventNotificationsCountEndpoint.ts +3 -2
  64. package/src/endpoints/global/events/GetEventNotificationsEndpoint.ts +9 -6
  65. package/src/endpoints/global/events/GetEventsEndpoint.ts +7 -4
  66. package/src/endpoints/global/events/PatchEventNotificationsEndpoint.test.ts +4 -2
  67. package/src/endpoints/global/events/PatchEventNotificationsEndpoint.ts +17 -15
  68. package/src/endpoints/global/events/PatchEventsEndpoint.test.ts +4 -2
  69. package/src/endpoints/global/events/PatchEventsEndpoint.ts +28 -26
  70. package/src/endpoints/global/files/ExportToExcelEndpoint.ts +8 -5
  71. package/src/endpoints/global/files/GetFileCache.ts +5 -3
  72. package/src/endpoints/global/files/UploadFile.ts +10 -4
  73. package/src/endpoints/global/files/UploadImage.ts +4 -2
  74. package/src/endpoints/global/groups/GetGroupsEndpoint.test.ts +4 -2
  75. package/src/endpoints/global/groups/GetGroupsEndpoint.ts +8 -5
  76. package/src/endpoints/global/members/GetMemberFamilyEndpoint.ts +7 -5
  77. package/src/endpoints/global/members/GetMembersCountEndpoint.ts +3 -2
  78. package/src/endpoints/global/members/GetMembersEndpoint.test.ts +4 -2
  79. package/src/endpoints/global/members/GetMembersEndpoint.ts +10 -8
  80. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.test.ts +257 -6
  81. package/src/endpoints/global/members/PatchOrganizationMembersEndpoint.ts +162 -107
  82. package/src/endpoints/global/members/helpers/validateGroupFilter.ts +4 -3
  83. package/src/endpoints/global/members/shouldCheckIfMemberIsDuplicate.ts +3 -2
  84. package/src/endpoints/global/organizations/CheckRegisterCodeEndpoint.ts +3 -2
  85. package/src/endpoints/global/organizations/CreateOrganizationEndpoint.test.ts +3 -2
  86. package/src/endpoints/global/organizations/CreateOrganizationEndpoint.ts +8 -7
  87. package/src/endpoints/global/organizations/GetOrganizationFromDomainEndpoint.ts +5 -3
  88. package/src/endpoints/global/organizations/GetOrganizationFromUriEndpoint.ts +5 -3
  89. package/src/endpoints/global/organizations/SearchOrganizationEndpoint.ts +8 -5
  90. package/src/endpoints/global/payments/StripeWebhookEndpoint.ts +4 -2
  91. package/src/endpoints/global/platform/GetPlatformAdminsEndpoint.ts +2 -1
  92. package/src/endpoints/global/platform/GetPlatformEndpoint.ts +3 -2
  93. package/src/endpoints/global/platform/PatchPlatformEnpoint.test.ts +3 -2
  94. package/src/endpoints/global/platform/PatchPlatformEnpoint.ts +7 -4
  95. package/src/endpoints/global/platform-memberships/GetPlatformMembershipsCountEndpoint.ts +47 -0
  96. package/src/endpoints/global/platform-memberships/GetPlatformMembershipsEndpoint.ts +206 -0
  97. package/src/endpoints/global/registration/GetRegistrationsCountEndpoint.ts +3 -2
  98. package/src/endpoints/global/registration/GetRegistrationsEndpoint.test.ts +2 -1
  99. package/src/endpoints/global/registration/GetRegistrationsEndpoint.ts +10 -7
  100. package/src/endpoints/global/registration/GetUserDetailedPayableBalanceEndpoint.ts +4 -2
  101. package/src/endpoints/global/registration/GetUserDocumentsEndpoint.ts +4 -2
  102. package/src/endpoints/global/registration/GetUserMembersEndpoint.ts +3 -2
  103. package/src/endpoints/global/registration/GetUserPayableBalanceEndpoint.ts +2 -1
  104. package/src/endpoints/global/registration/PatchUserMembersEndpoint.test.ts +5 -3
  105. package/src/endpoints/global/registration/PatchUserMembersEndpoint.ts +13 -9
  106. package/src/endpoints/global/registration/RegisterMembersEndpoint.test.ts +50 -49
  107. package/src/endpoints/global/registration/RegisterMembersEndpoint.ts +25 -22
  108. package/src/endpoints/global/registration-periods/GetRegistrationPeriodsEndpoint.ts +8 -5
  109. package/src/endpoints/global/registration-periods/PatchRegistrationPeriodsEndpoint.ts +9 -7
  110. package/src/endpoints/global/sso/GetSSOEndpoint.ts +4 -2
  111. package/src/endpoints/global/sso/SetSSOEndpoint.ts +3 -2
  112. package/src/endpoints/global/webshops/GetWebshopFromDomainEndpoint.ts +4 -2
  113. package/src/endpoints/global/webshops/GetWebshopsCountEndpoint.ts +43 -0
  114. package/src/endpoints/global/webshops/GetWebshopsEndpoint.test.ts +808 -0
  115. package/src/endpoints/global/webshops/GetWebshopsEndpoint.ts +221 -0
  116. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemEndpoint.ts +4 -3
  117. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemsCountEndpoint.ts +3 -2
  118. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemsEndpoint.ts +6 -4
  119. package/src/endpoints/organization/dashboard/balance-items/PatchBalanceItemsEndpoint.ts +15 -13
  120. package/src/endpoints/organization/dashboard/billing/GetOrganizationDetailedPayableBalanceEndpoint.ts +4 -2
  121. package/src/endpoints/organization/dashboard/billing/GetOrganizationPayableBalanceEndpoint.ts +4 -2
  122. package/src/endpoints/organization/dashboard/billing/GetPackagesEndpoint.ts +2 -1
  123. package/src/endpoints/organization/dashboard/documents/GetDocumentTemplateXML.ts +3 -2
  124. package/src/endpoints/organization/dashboard/documents/GetDocumentTemplatesCountEndpoint.ts +3 -2
  125. package/src/endpoints/organization/dashboard/documents/GetDocumentTemplatesEndpoint.ts +7 -4
  126. package/src/endpoints/organization/dashboard/documents/GetDocumentsCountEndpoint.ts +3 -2
  127. package/src/endpoints/organization/dashboard/documents/GetDocumentsEndpoint.ts +7 -4
  128. package/src/endpoints/organization/dashboard/documents/PatchDocumentEndpoint.ts +9 -7
  129. package/src/endpoints/organization/dashboard/documents/PatchDocumentTemplatesEndpoint.test.ts +4 -2
  130. package/src/endpoints/organization/dashboard/documents/PatchDocumentTemplatesEndpoint.ts +7 -5
  131. package/src/endpoints/organization/dashboard/email/CheckEmailBouncesEndpoint.ts +3 -2
  132. package/src/endpoints/organization/dashboard/email-templates/GetEmailTemplatesEndpoint.test.ts +36 -1
  133. package/src/endpoints/organization/dashboard/email-templates/GetEmailTemplatesEndpoint.ts +13 -4
  134. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.test.ts +4 -2
  135. package/src/endpoints/organization/dashboard/email-templates/PatchEmailTemplatesEndpoint.ts +7 -5
  136. package/src/endpoints/organization/dashboard/invoices/GetInvoicesCountEndpoint.ts +3 -2
  137. package/src/endpoints/organization/dashboard/invoices/GetInvoicesEndpoint.ts +6 -4
  138. package/src/endpoints/organization/dashboard/invoices/PatchInvoicesEndpoint.ts +5 -3
  139. package/src/endpoints/organization/dashboard/mollie/CheckMollieEndpoint.ts +4 -2
  140. package/src/endpoints/organization/dashboard/mollie/ConnectMollieEndpoint.ts +6 -3
  141. package/src/endpoints/organization/dashboard/mollie/DisconnectMollieEndpoint.ts +4 -2
  142. package/src/endpoints/organization/dashboard/mollie/GetMollieDashboardEndpoint.ts +2 -1
  143. package/src/endpoints/organization/dashboard/nolt/CreateNoltTokenEndpoint.ts +2 -1
  144. package/src/endpoints/organization/dashboard/organization/GetOrganizationArchivedGroups.ts +4 -2
  145. package/src/endpoints/organization/dashboard/organization/GetOrganizationDeletedGroups.ts +3 -2
  146. package/src/endpoints/organization/dashboard/organization/GetUitpasClientIdEndpoint.ts +2 -1
  147. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.test.ts +5 -3
  148. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +22 -19
  149. package/src/endpoints/organization/dashboard/organization/SearchUitpasOrganizersEndpoint.ts +5 -3
  150. package/src/endpoints/organization/dashboard/organization/SetOrganizationDomainEndpoint.ts +11 -9
  151. package/src/endpoints/organization/dashboard/organization/SetUitpasClientCredentialsEndpoint.ts +8 -7
  152. package/src/endpoints/organization/dashboard/payments/GetMemberBalanceEndpoint.ts +2 -1
  153. package/src/endpoints/organization/dashboard/payments/GetPaymentsCountEndpoint.ts +3 -2
  154. package/src/endpoints/organization/dashboard/payments/GetPaymentsEndpoint.ts +7 -5
  155. package/src/endpoints/organization/dashboard/payments/PatchPaymentsEndpoint.ts +18 -16
  156. package/src/endpoints/organization/dashboard/receivable-balances/GetReceivableBalanceEndpoint.ts +2 -1
  157. package/src/endpoints/organization/dashboard/receivable-balances/GetReceivableBalancesCountEndpoint.ts +3 -2
  158. package/src/endpoints/organization/dashboard/receivable-balances/GetReceivableBalancesEndpoint.ts +5 -3
  159. package/src/endpoints/organization/dashboard/registration-periods/GetOrganizationRegistrationPeriodsEndpoint.test.ts +2 -1
  160. package/src/endpoints/organization/dashboard/registration-periods/GetOrganizationRegistrationPeriodsEndpoint.ts +8 -5
  161. package/src/endpoints/organization/dashboard/registration-periods/MoveRegistrationPeriods.test.ts +4 -2
  162. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.test.ts +4 -2
  163. package/src/endpoints/organization/dashboard/registration-periods/PatchOrganizationRegistrationPeriodsEndpoint.ts +32 -29
  164. package/src/endpoints/organization/dashboard/registration-periods/SetupStepReviewEndpoint.ts +6 -3
  165. package/src/endpoints/organization/dashboard/stripe/ConnectStripeEndpoint.ts +3 -2
  166. package/src/endpoints/organization/dashboard/stripe/DeleteStripeAccountEndpoint.ts +3 -2
  167. package/src/endpoints/organization/dashboard/stripe/GetStripeAccountLinkEndpoint.ts +5 -3
  168. package/src/endpoints/organization/dashboard/stripe/GetStripeAccountsEndpoint.ts +2 -1
  169. package/src/endpoints/organization/dashboard/stripe/GetStripeLoginLinkEndpoint.ts +5 -3
  170. package/src/endpoints/organization/dashboard/stripe/UpdateStripeAccountEndpoint.ts +3 -2
  171. package/src/endpoints/organization/dashboard/users/CreateApiUserEndpoint.ts +4 -3
  172. package/src/endpoints/organization/dashboard/users/DeleteUserEndpoint.ts +4 -3
  173. package/src/endpoints/organization/dashboard/users/GetApiUsersEndpoint.ts +3 -2
  174. package/src/endpoints/organization/dashboard/users/GetOrganizationAdminsEndpoint.ts +2 -1
  175. package/src/endpoints/organization/dashboard/users/PatchApiUserEndpoint.ts +6 -4
  176. package/src/endpoints/organization/dashboard/webshops/CreateWebshopEndpoint.ts +7 -6
  177. package/src/endpoints/organization/dashboard/webshops/DeleteWebshopEndpoint.ts +3 -2
  178. package/src/endpoints/organization/dashboard/webshops/GetDiscountCodesEndpoint.ts +4 -2
  179. package/src/endpoints/organization/dashboard/webshops/GetWebshopOrdersCountEndpoint.ts +3 -2
  180. package/src/endpoints/organization/dashboard/webshops/GetWebshopOrdersEndpoint.ts +7 -4
  181. package/src/endpoints/organization/dashboard/webshops/{GetWebshopTicketsCountEndpoint → GetWebshopTicketsCountEndpoint.ts} +7 -7
  182. package/src/endpoints/organization/dashboard/webshops/GetWebshopTicketsEndpoint.ts +9 -6
  183. package/src/endpoints/organization/dashboard/webshops/GetWebshopUriAvailabilityEndpoint.ts +4 -2
  184. package/src/endpoints/organization/dashboard/webshops/PatchDiscountCodesEndpoint.ts +6 -4
  185. package/src/endpoints/organization/dashboard/webshops/PatchWebshopEndpoint.ts +13 -12
  186. package/src/endpoints/organization/dashboard/webshops/PatchWebshopOrdersEndpoint.ts +4 -2
  187. package/src/endpoints/organization/dashboard/webshops/PatchWebshopTicketsEndpoint.ts +5 -3
  188. package/src/endpoints/organization/dashboard/webshops/SearchUitpasEventsEndpoint.ts +6 -4
  189. package/src/endpoints/organization/dashboard/webshops/VerifyWebshopDomainEndpoint.ts +2 -1
  190. package/src/endpoints/organization/shared/ExchangePaymentEndpoint.ts +6 -4
  191. package/src/endpoints/organization/shared/GetDocumentHtml.ts +4 -3
  192. package/src/endpoints/organization/shared/GetPaymentEndpoint.ts +4 -3
  193. package/src/endpoints/organization/shared/GetUitpasNumberDetailsEndpoint.ts +3 -2
  194. package/src/endpoints/organization/shared/auth/GetOrganizationEndpoint.ts +3 -2
  195. package/src/endpoints/organization/webshops/CheckWebshopDiscountCodesEndpoint.ts +4 -3
  196. package/src/endpoints/organization/webshops/GetOrderByPaymentEndpoint.ts +5 -4
  197. package/src/endpoints/organization/webshops/GetOrderEndpoint.ts +4 -3
  198. package/src/endpoints/organization/webshops/GetTicketsEndpoint.ts +7 -5
  199. package/src/endpoints/organization/webshops/GetWebshopEndpoint.ts +4 -3
  200. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.test.ts +7 -3
  201. package/src/endpoints/organization/webshops/PlaceOrderEndpoint.ts +11 -10
  202. package/src/endpoints/organization/webshops/RetrieveUitpasSocialTariffPriceEndpoint.ts +5 -4
  203. package/src/endpoints/system/HealthEndpoint.test.ts +44 -0
  204. package/src/endpoints/system/HealthEndpoint.ts +14 -6
  205. package/src/excel-loaders/balance-items.ts +19 -17
  206. package/src/excel-loaders/event-notifications.ts +15 -13
  207. package/src/excel-loaders/index.ts +1 -0
  208. package/src/excel-loaders/members.ts +45 -43
  209. package/src/excel-loaders/organizations.ts +26 -25
  210. package/src/excel-loaders/payments.ts +44 -42
  211. package/src/excel-loaders/platform-memberships.ts +202 -0
  212. package/src/excel-loaders/receivable-balances.ts +25 -23
  213. package/src/excel-loaders/registrations.ts +30 -28
  214. package/src/helpers/AddressValidator.test.ts +2 -1
  215. package/src/helpers/AddressValidator.ts +13 -10
  216. package/src/helpers/AdminPermissionChecker.ts +193 -95
  217. package/src/helpers/AuthenticatedStructures.ts +13 -11
  218. package/src/helpers/BuckarooHelper.ts +3 -2
  219. package/src/helpers/Context.ts +8 -6
  220. package/src/helpers/CookieHelper.ts +2 -2
  221. package/src/helpers/FileCache.ts +9 -9
  222. package/src/helpers/ForwardHandler.ts +3 -2
  223. package/src/helpers/GlobalHelper.ts +2 -0
  224. package/src/helpers/GroupBuilder.ts +2 -1
  225. package/src/helpers/GroupedThrottledQueue.test.ts +19 -19
  226. package/src/helpers/LimitedFilteredRequestHelper.ts +1 -1
  227. package/src/helpers/MemberCharger.ts +2 -1
  228. package/src/helpers/MemberUserSyncer.ts +6 -3
  229. package/src/helpers/MembershipCharger.ts +2 -2
  230. package/src/helpers/OrganizationCharger.ts +2 -1
  231. package/src/helpers/PeriodHelper.ts +2 -1
  232. package/src/helpers/SQLTranslatedString.ts +3 -2
  233. package/src/helpers/ServiceFeeHelper.ts +1 -1
  234. package/src/helpers/SetupStepUpdater.ts +6 -5
  235. package/src/helpers/StripeHelper.ts +9 -8
  236. package/src/helpers/TagHelper.test.ts +5 -5
  237. package/src/helpers/TagHelper.ts +2 -1
  238. package/src/helpers/TemporaryMemberAccess.ts +2 -1
  239. package/src/helpers/ThrottledQueue.test.ts +20 -20
  240. package/src/helpers/UitpasTokenRepository.ts +7 -7
  241. package/src/helpers/ViesHelper.ts +5 -4
  242. package/src/helpers/XlsxTransformerColumnHelper.ts +21 -19
  243. package/src/helpers/email-html-helpers.ts +13 -12
  244. package/src/helpers/fetchToAsyncIterator.ts +1 -1
  245. package/src/helpers/outstandingBalanceJoin.ts +2 -1
  246. package/src/helpers/updateMemberDetailsUitpasNumber.ts +5 -4
  247. package/src/middleware/ContextMiddleware.ts +1 -1
  248. package/src/migrate.ts +21 -4
  249. package/src/seeds/0000000003-default-email-templates.ts +1 -1
  250. package/src/seeds/0000000004-single-organization.ts +2 -1
  251. package/src/seeds/1752848561-groups-registration-periods.ts +3 -2
  252. package/src/seeds/1754560914-groups-prices.test.ts +2 -1
  253. package/src/seeds/1754560914-groups-prices.ts +2 -1
  254. package/src/seeds/1755790070-fill-email-recipient-errors.ts +6 -6
  255. package/src/seeds/1755876819-remove-duplicate-members.ts +2 -1
  256. package/src/seeds/1765896674-document-update-year.test.ts +2 -1
  257. package/src/seeds/1773754928-force-save-members.ts +15 -0
  258. package/src/services/AuditLogService.ts +3 -2
  259. package/src/services/BalanceItemPaymentService.ts +2 -2
  260. package/src/services/BalanceItemService.ts +2 -1
  261. package/src/services/BootChecksService.test.ts +33 -0
  262. package/src/services/BootChecksService.ts +21 -0
  263. package/src/services/DatabaseCollationService.test.ts +18 -0
  264. package/src/services/DatabaseCollationService.ts +81 -0
  265. package/src/services/DocumentService.ts +1 -1
  266. package/src/services/EventNotificationService.ts +5 -4
  267. package/src/services/FileSignService.ts +2 -2
  268. package/src/services/InvoiceService.ts +3 -3
  269. package/src/services/MemberNumberService.ts +6 -4
  270. package/src/services/MemberRecordStore.ts +28 -19
  271. package/src/services/PaymentReallocationService.test.ts +2 -1
  272. package/src/services/PaymentReallocationService.ts +2 -1
  273. package/src/services/PaymentService.ts +28 -26
  274. package/src/services/RegistrationService.ts +65 -3
  275. package/src/services/SSOService.ts +13 -9
  276. package/src/services/STPackageService.ts +7 -5
  277. package/src/services/StartupHealthService.ts +15 -0
  278. package/src/services/uitpas/PassholderEndpoints.ts +2 -2
  279. package/src/services/uitpas/UitpasService.ts +11 -8
  280. package/src/services/uitpas/cancelTicketSales.ts +1 -1
  281. package/src/services/uitpas/checkPermissionsFor.ts +9 -9
  282. package/src/services/uitpas/getSocialTariffForEvent.ts +4 -4
  283. package/src/services/uitpas/getSocialTariffForUitpasNumbers.ts +5 -5
  284. package/src/services/uitpas/handleUitpasResponse.ts +1 -1
  285. package/src/services/uitpas/registerTicketSales.ts +4 -4
  286. package/src/services/uitpas/searchUitpasEvents.ts +3 -3
  287. package/src/services/uitpas/searchUitpasOrganizers.ts +3 -3
  288. package/src/sql-filters/audit-logs.ts +2 -1
  289. package/src/sql-filters/balance-item-payments.ts +2 -1
  290. package/src/sql-filters/balance-items.ts +2 -1
  291. package/src/sql-filters/base-registration-filter-compilers.ts +6 -4
  292. package/src/sql-filters/document-templates.ts +2 -1
  293. package/src/sql-filters/documents.ts +2 -1
  294. package/src/sql-filters/email-recipients.ts +2 -1
  295. package/src/sql-filters/emails.ts +2 -1
  296. package/src/sql-filters/event-notifications.ts +2 -1
  297. package/src/sql-filters/events.ts +2 -1
  298. package/src/sql-filters/groups.ts +2 -1
  299. package/src/sql-filters/invoiced-balance-items.ts +2 -1
  300. package/src/sql-filters/invoices.ts +2 -1
  301. package/src/sql-filters/member-responsibility-records.ts +2 -1
  302. package/src/sql-filters/members.ts +8 -7
  303. package/src/sql-filters/orders.ts +3 -2
  304. package/src/sql-filters/organization-registration-periods.ts +2 -1
  305. package/src/sql-filters/organizations.ts +2 -1
  306. package/src/sql-filters/payments.ts +2 -1
  307. package/src/sql-filters/platform-memberships.ts +67 -0
  308. package/src/sql-filters/receivable-balances.ts +2 -1
  309. package/src/sql-filters/registration-periods.ts +2 -1
  310. package/src/sql-filters/registrations.ts +2 -1
  311. package/src/sql-filters/tickets.ts +2 -1
  312. package/src/sql-filters/users.ts +2 -1
  313. package/src/sql-filters/webshops.ts +38 -0
  314. package/src/sql-sorters/audit-logs.ts +3 -2
  315. package/src/sql-sorters/balance-items.ts +3 -2
  316. package/src/sql-sorters/document-templates.ts +3 -2
  317. package/src/sql-sorters/documents.ts +3 -2
  318. package/src/sql-sorters/email-recipients.ts +3 -2
  319. package/src/sql-sorters/emails.ts +3 -2
  320. package/src/sql-sorters/event-notifications.ts +3 -2
  321. package/src/sql-sorters/events.ts +3 -2
  322. package/src/sql-sorters/groups.ts +3 -2
  323. package/src/sql-sorters/invoices.ts +3 -2
  324. package/src/sql-sorters/members.ts +3 -2
  325. package/src/sql-sorters/orders.ts +3 -2
  326. package/src/sql-sorters/organization-registration-periods.ts +3 -2
  327. package/src/sql-sorters/organizations.ts +3 -2
  328. package/src/sql-sorters/payments.ts +3 -2
  329. package/src/sql-sorters/platform-memberships.ts +40 -0
  330. package/src/sql-sorters/receivable-balances.ts +3 -2
  331. package/src/sql-sorters/registration-periods.ts +3 -2
  332. package/src/sql-sorters/registrations.ts +3 -2
  333. package/src/sql-sorters/tickets.ts +3 -2
  334. package/src/sql-sorters/webshops.ts +40 -0
  335. package/tests/actions/patchOrganizationMember.ts +5 -4
  336. package/tests/actions/patchPaymentStatus.ts +2 -2
  337. package/tests/actions/patchUserMember.ts +6 -4
  338. package/tests/e2e/api-rate-limits.test.ts +4 -5
  339. package/tests/e2e/bundle-discounts.test.ts +3 -2
  340. package/tests/e2e/charge-members.test.ts +7 -5
  341. package/tests/e2e/documents.test.ts +3 -2
  342. package/tests/e2e/private-files.test.ts +11 -13
  343. package/tests/e2e/register.test.ts +6 -5
  344. package/tests/e2e/stock.test.ts +6 -8
  345. package/tests/e2e/tickets.test.ts +4 -2
  346. package/tests/helpers/StripeMocker.ts +3 -3
  347. package/tests/init/initAdmin.ts +4 -2
  348. package/tests/init/initBundleDiscount.ts +3 -2
  349. package/tests/init/initPayconiq.ts +1 -1
  350. package/tests/init/initPermissionRole.ts +4 -2
  351. package/tests/init/initPlatformRecordCategory.ts +1 -1
  352. package/tests/init/initStripe.ts +1 -1
  353. package/tests/vitest.global.setup.ts +26 -0
  354. package/tests/{jest.setup.ts → vitest.setup.ts} +4 -3
  355. package/tsconfig.build.json +17 -0
  356. package/tsconfig.json +10 -41
  357. package/tsconfig.test.json +17 -0
  358. package/vitest.config.js +13 -0
  359. package/eslint.config.mjs +0 -5
  360. package/jest.config.cjs +0 -27
  361. package/tests/jest.global.setup.ts +0 -33
  362. package/tests/toMatchMap.ts +0 -68
@@ -1,6 +1,8 @@
1
- import { XlsxBuiltInNumberFormat, XlsxTransformerColumn, XlsxTransformerSheet } from '@stamhoofd/excel-writer';
1
+ import type { XlsxTransformerColumn, XlsxTransformerSheet } from '@stamhoofd/excel-writer';
2
+ import { XlsxBuiltInNumberFormat } from '@stamhoofd/excel-writer';
2
3
  import { Platform } from '@stamhoofd/models';
3
- import { ExcelExportType, Gender, GroupType, LimitedFilteredRequest, MembershipStatus, PlatformFamily, PlatformMember, Platform as PlatformStruct, UnencodeablePaginatedResponse } from '@stamhoofd/structures';
4
+ import type { LimitedFilteredRequest, PlatformMember} from '@stamhoofd/structures';
5
+ import { ExcelExportType, Gender, GroupType, MembershipStatus, PlatformFamily, Platform as PlatformStruct, UnencodeablePaginatedResponse } from '@stamhoofd/structures';
4
6
  import { Formatter } from '@stamhoofd/utility';
5
7
  import { ExportToExcelEndpoint } from '../endpoints/global/files/ExportToExcelEndpoint.js';
6
8
  import { GetMembersEndpoint } from '../endpoints/global/members/GetMembersEndpoint.js';
@@ -11,7 +13,7 @@ import { XlsxTransformerColumnHelper } from '../helpers/XlsxTransformerColumnHel
11
13
  export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
12
14
  {
13
15
  id: 'id',
14
- name: $t(`29360811-3663-496c-8d8f-c9fdf9467a74`),
16
+ name: $t(`%d`),
15
17
  width: 40,
16
18
  getValue: ({ patchedMember: object }: PlatformMember) => ({
17
19
  value: object.id,
@@ -19,7 +21,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
19
21
  },
20
22
  {
21
23
  id: 'memberNumber',
22
- name: $t(`cc1cf4a7-0bd2-4fa7-8ff2-0a12470a738d`),
24
+ name: $t(`%cH`),
23
25
  width: 20,
24
26
  getValue: ({ patchedMember: object }: PlatformMember) => ({
25
27
  value: object.details.memberNumber,
@@ -27,7 +29,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
27
29
  },
28
30
  {
29
31
  id: 'firstName',
30
- name: $t(`efca0579-0543-4636-a996-384bc9f0527e`),
32
+ name: $t(`%1MT`),
31
33
  width: 20,
32
34
  getValue: ({ patchedMember: object }: PlatformMember) => ({
33
35
  value: object.details.firstName,
@@ -35,7 +37,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
35
37
  },
36
38
  {
37
39
  id: 'lastName',
38
- name: $t(`4a5e438e-08a1-411e-9b66-410eea7ded73`),
40
+ name: $t(`%1MU`),
39
41
  width: 20,
40
42
  getValue: ({ patchedMember: object }: PlatformMember) => ({
41
43
  value: object.details.lastName,
@@ -43,7 +45,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
43
45
  },
44
46
  {
45
47
  id: 'birthDay',
46
- name: $t(`7d7b5a21-105a-41a1-b511-8639b59024a4`),
48
+ name: $t(`%17w`),
47
49
  width: 20,
48
50
  getValue: ({ patchedMember: object }: PlatformMember) => ({
49
51
  value: object.details.birthDay,
@@ -56,7 +58,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
56
58
  },
57
59
  {
58
60
  id: 'age',
59
- name: $t(`992b79e9-8c6e-4096-aa59-9e5f546eac41`),
61
+ name: $t(`%9S`),
60
62
  width: 20,
61
63
  getValue: ({ patchedMember: object }: PlatformMember) => ({
62
64
  value: object.details.age,
@@ -64,7 +66,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
64
66
  },
65
67
  {
66
68
  id: 'gender',
67
- name: $t(`a39908e8-62b0-487c-9a03-57dd62326d94`),
69
+ name: $t(`%19i`),
68
70
  width: 20,
69
71
  getValue: ({ patchedMember: object }: PlatformMember) => {
70
72
  const gender = object.details.gender;
@@ -76,7 +78,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
76
78
  },
77
79
  {
78
80
  id: 'phone',
79
- name: $t(`856aaa1c-bc62-4e45-9ae5-4c7e7dca23ab`),
81
+ name: $t(`%wD`),
80
82
  width: 20,
81
83
  getValue: ({ patchedMember: object }: PlatformMember) => ({
82
84
  value: object.details.phone,
@@ -84,7 +86,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
84
86
  },
85
87
  {
86
88
  id: 'email',
87
- name: $t(`82f4b6ed-afee-4655-9f07-22802e0e7ad9`),
89
+ name: $t(`%1FK`),
88
90
  width: 40,
89
91
  getValue: ({ patchedMember: object }: PlatformMember) => ({
90
92
  value: object.details.email,
@@ -111,7 +113,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
111
113
  }),
112
114
  {
113
115
  id: 'securityCode',
114
- name: $t(`0fa4253f-1cfd-4394-93b4-dfba8da04738`),
116
+ name: $t(`%wE`),
115
117
  width: 20,
116
118
  getValue: ({ patchedMember: object }: PlatformMember) => ({
117
119
  value: object.details.securityCode,
@@ -119,7 +121,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
119
121
  },
120
122
  {
121
123
  id: 'uitpasNumber',
122
- name: $t(`87c1a48c-fef5-44c3-ae56-c83463fcfb84`),
124
+ name: $t(`%wF`),
123
125
  width: 20,
124
126
  getValue: ({ patchedMember: object }: PlatformMember) => ({
125
127
  value: object.details.uitpasNumberDetails?.uitpasNumber ?? null,
@@ -128,7 +130,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
128
130
  {
129
131
  id: 'requiresFinancialSupport',
130
132
  // todo: use correct term
131
- name: $t(`030be384-9014-410c-87ba-e04920c26111`),
133
+ name: $t(`%wG`),
132
134
  width: 20,
133
135
  getValue: ({ patchedMember: object }: PlatformMember) => ({
134
136
  value: XlsxTransformerColumnHelper.formatBoolean(object.details.hasFinancialSupportOrActiveUitpas),
@@ -136,7 +138,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
136
138
  },
137
139
  {
138
140
  id: 'notes',
139
- name: $t(`8c38d163-c01b-488f-8729-11de8af7d098`),
141
+ name: $t(`%Ve`),
140
142
  width: 20,
141
143
  getValue: ({ patchedMember: object }: PlatformMember) => ({
142
144
  value: object.details.notes,
@@ -144,7 +146,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
144
146
  },
145
147
  {
146
148
  id: 'nationalRegisterNumber',
147
- name: $t(`00881b27-7501-4c56-98de-55618be2bf11`),
149
+ name: $t(`%wK`),
148
150
  width: 30,
149
151
  getValue: ({ patchedMember: object }: PlatformMember) => ({
150
152
  value: object.details.nationalRegisterNumber?.toString() ?? '',
@@ -152,7 +154,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
152
154
  },
153
155
  {
154
156
  id: 'membership',
155
- name: $t(`c7d995f1-36a0-446e-9fcf-17ffb69f3f45`),
157
+ name: $t(`%Wq`),
156
158
  width: 20,
157
159
  getValue: (member: PlatformMember) => {
158
160
  return {
@@ -162,11 +164,11 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
162
164
  },
163
165
  {
164
166
  id: 'organization',
165
- name: $t(`afd7843d-f355-445b-a158-ddacf469a5b1`),
167
+ name: $t(`%wA`),
166
168
  width: 40,
167
169
  getValue: (member: PlatformMember) => {
168
170
  const organizations = member.filterOrganizations({ currentPeriod: true, types: [GroupType.Membership] });
169
- const str = Formatter.joinLast(organizations.map(o => o.name).sort(), ', ', ' ' + $t(`c1843768-2bf4-42f2-baa4-42f49028463d`) + ' ') || Context.i18n.$t('1a16a32a-7ee4-455d-af3d-6073821efa8f');
171
+ const str = Formatter.joinLast(organizations.map(o => o.name).sort(), ', ', ' ' + $t(`%M1`) + ' ') || Context.i18n.$t('%5D');
170
172
 
171
173
  return {
172
174
  value: str,
@@ -175,11 +177,11 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
175
177
  },
176
178
  {
177
179
  id: 'uri',
178
- name: $t(`27cfaf26-6b88-4ebc-a50a-627a9f0f9e64`),
180
+ name: $t(`%7C`),
179
181
  width: 30,
180
182
  getValue: (member: PlatformMember) => {
181
183
  const organizations = member.filterOrganizations({ currentPeriod: true, types: [GroupType.Membership] });
182
- const str = Formatter.joinLast(organizations.map(o => o.uri).sort(), ', ', ' ' + $t(`c1843768-2bf4-42f2-baa4-42f49028463d`) + ' ') || Context.i18n.$t('1a16a32a-7ee4-455d-af3d-6073821efa8f');
184
+ const str = Formatter.joinLast(organizations.map(o => o.uri).sort(), ', ', ' ' + $t(`%M1`) + ' ') || Context.i18n.$t('%5D');
183
185
 
184
186
  return {
185
187
  value: str,
@@ -192,7 +194,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
192
194
  // unverified data
193
195
  {
194
196
  id: 'unverifiedPhones',
195
- name: $t(`506a2bd8-bd5b-48ae-8480-fbb9e9faa683`),
197
+ name: $t(`%wL`),
196
198
  width: 20,
197
199
  getValue: ({ patchedMember: object }: PlatformMember) => ({
198
200
  value: object.details.unverifiedPhones.join(', '),
@@ -200,7 +202,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
200
202
  },
201
203
  {
202
204
  id: 'unverifiedEmails',
203
- name: $t(`62b19231-9770-4553-ad25-500df57ccf84`),
205
+ name: $t(`%wM`),
204
206
  width: 20,
205
207
  getValue: ({ patchedMember: object }: PlatformMember) => ({
206
208
  value: object.details.unverifiedEmails.join(', '),
@@ -213,7 +215,7 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
213
215
  }),
214
216
  {
215
217
  id: 'unverifiedAddresses',
216
- name: $t(`b45f1017-e859-43da-8829-a21639a9e70d`),
218
+ name: $t(`%wN`),
217
219
  width: 20,
218
220
  getValue: ({ patchedMember: object }: PlatformMember) => ({
219
221
  value: object.details.unverifiedAddresses.map(a => a.toString()).join('; '),
@@ -239,16 +241,16 @@ export const baseMemberColumns: XlsxTransformerColumn<PlatformMember>[] = [
239
241
  // Assign to a typed variable to assure we have correct type checking in place
240
242
  const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
241
243
  id: 'members',
242
- name: $t(`fb35c140-e936-4e91-aa92-ef4dfc59fb51`),
244
+ name: $t(`%1EH`),
243
245
  columns: [
244
246
  ...baseMemberColumns,
245
247
  {
246
248
  id: 'group',
247
- name: $t(`0c230001-c3be-4a8e-8eab-23dc3fd96e52`),
249
+ name: $t(`%wH`),
248
250
  width: 40,
249
251
  getValue: (member: PlatformMember) => {
250
252
  const groups = member.filterRegistrations({ currentPeriod: true, types: [GroupType.Membership], organizationId: Context.organization?.id });
251
- const str = Formatter.joinLast(Formatter.uniqueArray(groups.map(o => o.group.settings.name.toString())).sort(), ', ', ' ' + $t(`c1843768-2bf4-42f2-baa4-42f49028463d`) + ' ') || Context.i18n.$t('1a16a32a-7ee4-455d-af3d-6073821efa8f');
253
+ const str = Formatter.joinLast(Formatter.uniqueArray(groups.map(o => o.group.settings.name.toString())).sort(), ', ', ' ' + $t(`%M1`) + ' ') || Context.i18n.$t('%5D');
252
254
 
253
255
  return {
254
256
  value: str,
@@ -257,13 +259,13 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
257
259
  },
258
260
  {
259
261
  id: 'defaultAgeGroup',
260
- name: $t(`0ef2bbb3-0b3c-411a-8901-a454cff1f839`),
262
+ name: $t(`%wI`),
261
263
  width: 40,
262
264
  getValue: (member: PlatformMember) => {
263
265
  const groups = member.filterRegistrations({ currentPeriod: true, types: [GroupType.Membership], organizationId: Context.organization?.id });
264
266
  const defaultAgeGroupIds = Formatter.uniqueArray(groups.filter(o => o.group.defaultAgeGroupId));
265
- const defaultAgeGroups = defaultAgeGroupIds.map(o => PlatformStruct.shared.config.defaultAgeGroups.find(g => g.id === o.group.defaultAgeGroupId)?.name ?? $t(`6aeee253-beb2-4548-b60e-30836afcf2f0`));
266
- const str = Formatter.joinLast(Formatter.uniqueArray(defaultAgeGroups).sort(), ', ', ' ' + $t(`c1843768-2bf4-42f2-baa4-42f49028463d`) + ' ') || Context.i18n.$t('1a16a32a-7ee4-455d-af3d-6073821efa8f');
267
+ const defaultAgeGroups = defaultAgeGroupIds.map(o => PlatformStruct.shared.config.defaultAgeGroups.find(g => g.id === o.group.defaultAgeGroupId)?.name ?? $t(`%wJ`));
268
+ const str = Formatter.joinLast(Formatter.uniqueArray(defaultAgeGroups).sort(), ', ', ' ' + $t(`%M1`) + ' ') || Context.i18n.$t('%5D');
267
269
 
268
270
  return {
269
271
  value: str,
@@ -272,7 +274,7 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
272
274
  },
273
275
  {
274
276
  id: 'outstandingBalance',
275
- name: $t(`beb45452-dee7-4a7f-956c-e6db06aac20f`),
277
+ name: $t(`%76`),
276
278
  width: 30,
277
279
  getValue: (v) => {
278
280
  return {
@@ -288,7 +290,7 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
288
290
  },
289
291
  {
290
292
  id: 'createdAt',
291
- name: $t('c38e774e-e8ab-4549-b119-4eed380c626c'),
293
+ name: $t('%1Jc'),
292
294
  width: 20,
293
295
  getValue: v => ({
294
296
  value: v.member.createdAt,
@@ -321,7 +323,7 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
321
323
  return [
322
324
  {
323
325
  id: `groups.${groupId}.${recordName}`,
324
- name: $t(`dcc53f25-f0e9-4e3e-9f4f-e8cfa4e88755`),
326
+ name: $t(`%62`),
325
327
  width: 30,
326
328
  getValue: (member: PlatformMember) => {
327
329
  const registration = getRegistration(member);
@@ -354,7 +356,7 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
354
356
  return [
355
357
  {
356
358
  id: `groups.${groupId}.${recordName}.${menuId}.${optionId}${returnAmount ? '.amount' : ''}`,
357
- name: $t(`d89d7fcd-ecf3-40a2-afb6-f51c3f6c9bc6`),
359
+ name: $t(`%wO`),
358
360
  width: 30,
359
361
  getValue: (member: PlatformMember) => {
360
362
  const registration = getRegistration(member);
@@ -390,7 +392,7 @@ const sheet: XlsxTransformerSheet<PlatformMember, PlatformMember> = {
390
392
  return [
391
393
  {
392
394
  id: `groups.${groupId}.${recordName}.${menuId}`,
393
- name: $t(`99e37a95-6a68-4921-a8db-08fb136f87dd`),
395
+ name: $t(`%Tb`),
394
396
  width: 30,
395
397
  getValue: (member: PlatformMember) => {
396
398
  const registration = getRegistration(member);
@@ -468,23 +470,23 @@ ExportToExcelEndpoint.loaders.set(ExcelExportType.Members, {
468
470
 
469
471
  function formatGender(gender: Gender): string {
470
472
  switch (gender) {
471
- case Gender.Male: return $t(`f972abd4-de1e-484b-b7da-ad4c75d37808`);
472
- case Gender.Female: return $t(`e21f499d-1078-4044-be5d-6693d2636699`);
473
- default: return $t(`60f13ba4-c6c9-4388-9add-43a996bf6bee`);
473
+ case Gender.Male: return $t(`%XK`);
474
+ case Gender.Female: return $t(`%XM`);
475
+ default: return $t(`%1JG`);
474
476
  }
475
477
  }
476
478
 
477
479
  function formatMembershipStatus(status: MembershipStatus): string {
478
480
  switch (status) {
479
481
  case MembershipStatus.Trial:
480
- return $t(`47c7c3c4-9246-40b7-b1e0-2cb408d5f79e`);
482
+ return $t(`%1IH`);
481
483
  case MembershipStatus.Active:
482
- return $t(`b56351e9-4847-4a0c-9eec-348d75c794c4`);
484
+ return $t(`%1H0`);
483
485
  case MembershipStatus.Expiring:
484
- return $t(`d9858110-37d9-4b4a-8bfb-d76b3cc5ef27`);
486
+ return $t(`%7F`);
485
487
  case MembershipStatus.Temporary:
486
- return $t(`75e62d3c-f348-4104-8a1e-e11e6e7fbe32`);
488
+ return $t(`%zU`);
487
489
  case MembershipStatus.Inactive:
488
- return $t(`1f8620fa-e8a5-4665-99c8-c1907a5b5768`);
490
+ return $t(`%zV`);
489
491
  }
490
492
  }
@@ -1,7 +1,8 @@
1
1
  import { ArrayDecoder, field } from '@simonbackx/simple-encoding';
2
- import { XlsxTransformerSheet } from '@stamhoofd/excel-writer';
2
+ import type { XlsxTransformerSheet } from '@stamhoofd/excel-writer';
3
3
  import { Group, Member, MemberResponsibilityRecord } from '@stamhoofd/models';
4
- import { ExcelExportType, LimitedFilteredRequest, MemberResponsibilityRecord as MemberResponsibilityRecordStruct, MemberWithRegistrationsBlob, Organization as OrganizationStruct, PaginatedResponse, Platform as PlatformStruct, Premise } from '@stamhoofd/structures';
4
+ import type { LimitedFilteredRequest, Premise } from '@stamhoofd/structures';
5
+ import { ExcelExportType, MemberResponsibilityRecord as MemberResponsibilityRecordStruct, MemberWithRegistrationsBlob, Organization as OrganizationStruct, PaginatedResponse, Platform as PlatformStruct } from '@stamhoofd/structures';
5
6
  import { Formatter, Sorter } from '@stamhoofd/utility';
6
7
  import { GetOrganizationsEndpoint } from '../endpoints/admin/organizations/GetOrganizationsEndpoint.js';
7
8
  import { ExportToExcelEndpoint } from '../endpoints/global/files/ExportToExcelEndpoint.js';
@@ -28,11 +29,11 @@ type Object = OrganizationWithResponsibilities;
28
29
  // Assign to a typed variable to assure we have correct type checking in place
29
30
  const sheet: XlsxTransformerSheet<Object, Object> = {
30
31
  id: 'organizations',
31
- name: $t(`2a033cd8-b9e4-4a92-a8a6-b4a687d87e79`),
32
+ name: $t(`%wP`),
32
33
  columns: [
33
34
  {
34
35
  id: 'id',
35
- name: $t(`29360811-3663-496c-8d8f-c9fdf9467a74`),
36
+ name: $t(`%d`),
36
37
  width: 40,
37
38
  getValue: (object: Object) => ({
38
39
  value: object.id,
@@ -40,7 +41,7 @@ const sheet: XlsxTransformerSheet<Object, Object> = {
40
41
  },
41
42
  {
42
43
  id: 'uri',
43
- name: $t(`27cfaf26-6b88-4ebc-a50a-627a9f0f9e64`),
44
+ name: $t(`%7C`),
44
45
  width: 20,
45
46
  getValue: (object: Object) => ({
46
47
  value: object.uri,
@@ -48,7 +49,7 @@ const sheet: XlsxTransformerSheet<Object, Object> = {
48
49
  },
49
50
  {
50
51
  id: 'name',
51
- name: $t(`522fb6c5-6d4d-4d9c-94b7-3e282fb0ea1f`),
52
+ name: $t(`%Gq`),
52
53
  width: 50,
53
54
  getValue: (object: Object) => ({
54
55
  value: object.name,
@@ -56,13 +57,13 @@ const sheet: XlsxTransformerSheet<Object, Object> = {
56
57
  },
57
58
  {
58
59
  id: 'tags',
59
- name: $t(`5f8c1ac5-a650-4046-80b6-0fe37fa12439`),
60
+ name: $t(`%13`),
60
61
  width: 50,
61
62
  getValue: (object: Object) => {
62
63
  const platform = PlatformStruct.shared;
63
64
 
64
65
  return {
65
- value: object.meta.tags.map(tag => platform.config.tags.find(t => t.id === tag)?.name ?? $t(`bd1e59c8-3d4c-4097-ab35-0ce7b20d0e50`)).join(', '),
66
+ value: object.meta.tags.map(tag => platform.config.tags.find(t => t.id === tag)?.name ?? $t(`%Gr`)).join(', '),
66
67
  };
67
68
  },
68
69
  },
@@ -87,7 +88,7 @@ const sheet: XlsxTransformerSheet<Object, Object> = {
87
88
 
88
89
  const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordWithMemberAndOrganization> = {
89
90
  id: 'responsibilities',
90
- name: $t(`d0defb77-0a25-4b85-a03e-57569c5edf6c`),
91
+ name: $t(`%7D`),
91
92
  transform(organization) {
92
93
  return organization.responsibilities.map(r => MemberResponsibilityRecordWithMemberAndOrganization.create({
93
94
  ...r,
@@ -97,7 +98,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
97
98
  columns: [
98
99
  {
99
100
  id: 'organization.id',
100
- name: $t(`29360811-3663-496c-8d8f-c9fdf9467a74`),
101
+ name: $t(`%d`),
101
102
  width: 35,
102
103
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
103
104
  value: object.organization.id,
@@ -105,7 +106,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
105
106
  },
106
107
  {
107
108
  id: 'organization.uri',
108
- name: $t(`27cfaf26-6b88-4ebc-a50a-627a9f0f9e64`),
109
+ name: $t(`%7C`),
109
110
  width: 20,
110
111
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
111
112
  value: object.organization.uri,
@@ -113,7 +114,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
113
114
  },
114
115
  {
115
116
  id: 'organization.name',
116
- name: $t(`c14b0320-cb84-4386-a39a-aa9ffb5eb886`),
117
+ name: $t(`%CX`),
117
118
  width: 50,
118
119
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
119
120
  value: object.organization.name,
@@ -121,7 +122,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
121
122
  },
122
123
  {
123
124
  id: 'responsibility.name',
124
- name: $t(`d6fb6973-92f7-4d39-beeb-0f324c0fe865`),
125
+ name: $t(`%H2`),
125
126
  width: 50,
126
127
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => {
127
128
  const platform = PlatformStruct.shared;
@@ -129,18 +130,18 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
129
130
 
130
131
  if (!responsibility) {
131
132
  return {
132
- value: $t(`2b1d05e5-6a0a-49d5-8510-8593eda94470`),
133
+ value: $t(`%wQ`),
133
134
  };
134
135
  }
135
136
 
136
137
  return {
137
- value: responsibility.name + (responsibility.isGroupBased ? ' ' + $t(`9ddd7aba-9426-4718-9eb0-673b615efcf4`) + ' ' + (object.group?.settings.name ?? $t(`eb6d556a-bcda-4ab4-ad39-3215b4734569`)) : ''),
138
+ value: responsibility.name + (responsibility.isGroupBased ? ' ' + $t(`%wR`) + ' ' + (object.group?.settings.name ?? $t(`%wS`)) : ''),
138
139
  };
139
140
  },
140
141
  },
141
142
  {
142
143
  id: 'responsibility.member.firstName',
143
- name: $t(`efca0579-0543-4636-a996-384bc9f0527e`),
144
+ name: $t(`%1MT`),
144
145
  width: 30,
145
146
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
146
147
  value: object.member.firstName,
@@ -148,7 +149,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
148
149
  },
149
150
  {
150
151
  id: 'responsibility.member.lastName',
151
- name: $t(`4a5e438e-08a1-411e-9b66-410eea7ded73`),
152
+ name: $t(`%1MU`),
152
153
  width: 30,
153
154
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
154
155
  value: object.member.details.lastName,
@@ -156,7 +157,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
156
157
  },
157
158
  {
158
159
  id: 'responsibility.member.email',
159
- name: $t(`a1b06e74-f581-4ea0-9e86-83f0c963fd4f`),
160
+ name: $t(`%wT`),
160
161
  width: 50,
161
162
  getValue: (object: MemberResponsibilityRecordWithMemberAndOrganization) => ({
162
163
  value: object.member.details.email,
@@ -172,7 +173,7 @@ const responsibilities: XlsxTransformerSheet<Object, MemberResponsibilityRecordW
172
173
  type PremiseWithOrganization = { organization: Object; premise: Premise };
173
174
  const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
174
175
  id: 'premises',
175
- name: $t(`9fe916f3-199d-4be2-b9c2-c96eeea31437`),
176
+ name: $t(`%6c`),
176
177
  transform(organization) {
177
178
  return organization.privateMeta?.premises.map(r => ({
178
179
  organization,
@@ -182,7 +183,7 @@ const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
182
183
  columns: [
183
184
  {
184
185
  id: 'organization.id',
185
- name: $t(`29360811-3663-496c-8d8f-c9fdf9467a74`),
186
+ name: $t(`%d`),
186
187
  width: 35,
187
188
  getValue: (object: PremiseWithOrganization) => ({
188
189
  value: object.organization.id,
@@ -190,7 +191,7 @@ const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
190
191
  },
191
192
  {
192
193
  id: 'organization.uri',
193
- name: $t(`27cfaf26-6b88-4ebc-a50a-627a9f0f9e64`),
194
+ name: $t(`%7C`),
194
195
  width: 20,
195
196
  getValue: (object: PremiseWithOrganization) => ({
196
197
  value: object.organization.uri,
@@ -198,7 +199,7 @@ const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
198
199
  },
199
200
  {
200
201
  id: 'organization.name',
201
- name: $t(`c14b0320-cb84-4386-a39a-aa9ffb5eb886`),
202
+ name: $t(`%CX`),
202
203
  width: 50,
203
204
  getValue: (object: PremiseWithOrganization) => ({
204
205
  value: object.organization.name,
@@ -206,7 +207,7 @@ const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
206
207
  },
207
208
  {
208
209
  id: 'premise.name',
209
- name: $t(`522fb6c5-6d4d-4d9c-94b7-3e282fb0ea1f`),
210
+ name: $t(`%Gq`),
210
211
  width: 20,
211
212
  getValue: (object: PremiseWithOrganization) => ({
212
213
  value: object.premise.name,
@@ -214,13 +215,13 @@ const premises: XlsxTransformerSheet<Object, PremiseWithOrganization> = {
214
215
  },
215
216
  {
216
217
  id: 'premise.type',
217
- name: $t(`f97ad8c1-31d2-4b61-9e09-3be86eaeba08`),
218
+ name: $t(`%1B`),
218
219
  width: 20,
219
220
  getValue: (object: PremiseWithOrganization) => {
220
221
  const ids = object.premise.premiseTypeIds;
221
222
  const platform = PlatformStruct.shared;
222
223
  return {
223
- value: ids.map(id => platform.config.premiseTypes.find(t => t.id === id)?.name ?? $t(`bd1e59c8-3d4c-4097-ab35-0ce7b20d0e50`)).join(', '),
224
+ value: ids.map(id => platform.config.premiseTypes.find(t => t.id === id)?.name ?? $t(`%Gr`)).join(', '),
224
225
  };
225
226
  },
226
227
  },