@stamhoofd/models 2.120.6 → 2.122.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 (296) hide show
  1. package/dist/factories/GroupFactory.d.ts.map +1 -1
  2. package/dist/factories/GroupFactory.js +1 -1
  3. package/dist/factories/GroupFactory.js.map +1 -1
  4. package/dist/factories/OrganizationFactory.d.ts +2 -1
  5. package/dist/factories/OrganizationFactory.d.ts.map +1 -1
  6. package/dist/factories/OrganizationFactory.js +9 -1
  7. package/dist/factories/OrganizationFactory.js.map +1 -1
  8. package/dist/factories/RegistrationInvitationFactory.d.ts +15 -0
  9. package/dist/factories/RegistrationInvitationFactory.d.ts.map +1 -0
  10. package/dist/factories/RegistrationInvitationFactory.js +18 -0
  11. package/dist/factories/RegistrationInvitationFactory.js.map +1 -0
  12. package/dist/factories/STPackageFactory.js.map +1 -1
  13. package/dist/factories/UserFactory.d.ts.map +1 -1
  14. package/dist/factories/UserFactory.js +2 -2
  15. package/dist/factories/UserFactory.js.map +1 -1
  16. package/dist/factories/index.d.ts +1 -0
  17. package/dist/factories/index.d.ts.map +1 -1
  18. package/dist/factories/index.js +1 -0
  19. package/dist/factories/index.js.map +1 -1
  20. package/dist/helpers/EmailBuilder.d.ts.map +1 -1
  21. package/dist/helpers/EmailBuilder.js +8 -8
  22. package/dist/helpers/EmailBuilder.js.map +1 -1
  23. package/dist/helpers/Handlebars.d.ts.map +1 -1
  24. package/dist/helpers/Handlebars.js +10 -1
  25. package/dist/helpers/Handlebars.js.map +1 -1
  26. package/dist/helpers/InvoiceCounter.d.ts +24 -0
  27. package/dist/helpers/InvoiceCounter.d.ts.map +1 -0
  28. package/dist/helpers/InvoiceCounter.js +133 -0
  29. package/dist/helpers/InvoiceCounter.js.map +1 -0
  30. package/dist/index.d.ts +0 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +0 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/migrations/1605262045-import-postcodes.d.ts.map +1 -1
  35. package/dist/migrations/1605262045-import-postcodes.js +58 -24
  36. package/dist/migrations/1605262045-import-postcodes.js.map +1 -1
  37. package/dist/migrations/1605262046-import-postcodes-nl.d.ts.map +1 -1
  38. package/dist/migrations/1605262046-import-postcodes-nl.js +54 -17
  39. package/dist/migrations/1605262046-import-postcodes-nl.js.map +1 -1
  40. package/dist/migrations/1719567881-organization-periodId.sql +2 -0
  41. package/dist/migrations/1719567882-groups-periodId.sql +2 -0
  42. package/dist/migrations/1720080975-convert-charset.d.ts +4 -0
  43. package/dist/migrations/1720080975-convert-charset.d.ts.map +1 -0
  44. package/dist/migrations/1720080975-convert-charset.js +26 -0
  45. package/dist/migrations/1720080975-convert-charset.js.map +1 -0
  46. package/dist/migrations/1720080976-convert-charset-leads.d.ts.map +1 -1
  47. package/dist/migrations/1720080976-convert-charset-leads.js +11 -10
  48. package/dist/migrations/1720080976-convert-charset-leads.js.map +1 -1
  49. package/dist/migrations/1721400546-users-memberId.sql +2 -0
  50. package/dist/migrations/1722269236-group-waitinglist-id.sql +2 -1
  51. package/dist/migrations/1722525785-balance-item-paying-organization-id.sql +2 -0
  52. package/dist/migrations/1722525787-depending-balance-item.sql +2 -0
  53. package/dist/migrations/1722963554-registration-group-price-and-options.sql +1 -1
  54. package/dist/migrations/1723652797-payments-paying-organization-id-fk.sql +2 -0
  55. package/dist/migrations/1733317908-added-missing-organization-fk-on-registrations.sql +2 -0
  56. package/dist/migrations/1733317910-paying-organization-id-fk.sql +2 -0
  57. package/dist/migrations/1733504881-negative-invoice-id.sql +6 -0
  58. package/dist/migrations/1733994455-balance-item-status-open.d.ts +4 -0
  59. package/dist/migrations/1733994455-balance-item-status-open.d.ts.map +1 -0
  60. package/dist/migrations/1733994455-balance-item-status-open.js +28 -0
  61. package/dist/migrations/1733994455-balance-item-status-open.js.map +1 -0
  62. package/dist/migrations/1763216320-bigint-balance-item-payments.sql +2 -0
  63. package/dist/migrations/1763216320-bigint-balance-items.sql +5 -0
  64. package/dist/migrations/1763216320-bigint-orders.sql +2 -0
  65. package/dist/migrations/1763216320-bigint-payments.sql +2 -0
  66. package/dist/migrations/1763216332-bigint-balance-item-price-total.sql +2 -0
  67. package/dist/migrations/1769087808-corrected-invoice-user-agent.sql +2 -0
  68. package/dist/migrations/1769087809-payments-invoice-id.sql +2 -0
  69. package/dist/migrations/1772033555-balance-item-package-id.sql +2 -0
  70. package/dist/migrations/1776873089-create-registration-invitations-table.sql +13 -0
  71. package/dist/migrations/1778657958-payments-create-mandate.sql +2 -0
  72. package/dist/migrations/1778657959-payments-mandate-id.sql +2 -0
  73. package/dist/migrations/1778796615-payments-reversing-payment-id.sql +5 -0
  74. package/dist/migrations/1778950642-price-invoiced.sql +2 -0
  75. package/dist/migrations/1779443446-transfer-fees.sql +3 -0
  76. package/dist/migrations/1779709174-used-register-code-balance-item-id.sql +5 -0
  77. package/dist/migrations/1779968328-payments-admin-user-id.sql +5 -0
  78. package/dist/migrations/1779970611-payments-refunded-amount.sql +2 -0
  79. package/dist/migrations/1779972640-balance-items-failed-at.sql +2 -0
  80. package/dist/migrations/1780328285-document-template-locked.sql +2 -0
  81. package/dist/migrations/1780328286-document-locked.sql +2 -0
  82. package/dist/migrations/1780412083-documents-set-locked.d.ts +4 -0
  83. package/dist/migrations/1780412083-documents-set-locked.d.ts.map +1 -0
  84. package/dist/migrations/1780412083-documents-set-locked.js +14 -0
  85. package/dist/migrations/1780412083-documents-set-locked.js.map +1 -0
  86. package/dist/migrations/1780928401-v1-groups-migration-data.d.ts +4 -0
  87. package/dist/migrations/1780928401-v1-groups-migration-data.d.ts.map +1 -0
  88. package/dist/migrations/1780928401-v1-groups-migration-data.js +44 -0
  89. package/dist/migrations/1780928401-v1-groups-migration-data.js.map +1 -0
  90. package/dist/models/BalanceItem.d.ts +14 -1
  91. package/dist/models/BalanceItem.d.ts.map +1 -1
  92. package/dist/models/BalanceItem.js +91 -41
  93. package/dist/models/BalanceItem.js.map +1 -1
  94. package/dist/models/CachedBalance.d.ts +6 -1
  95. package/dist/models/CachedBalance.d.ts.map +1 -1
  96. package/dist/models/CachedBalance.js +3 -2
  97. package/dist/models/CachedBalance.js.map +1 -1
  98. package/dist/models/Document.d.ts +4 -0
  99. package/dist/models/Document.d.ts.map +1 -1
  100. package/dist/models/Document.js +26 -3
  101. package/dist/models/Document.js.map +1 -1
  102. package/dist/models/DocumentTemplate.d.ts +4 -0
  103. package/dist/models/DocumentTemplate.d.ts.map +1 -1
  104. package/dist/models/DocumentTemplate.js +37 -1
  105. package/dist/models/DocumentTemplate.js.map +1 -1
  106. package/dist/models/Email.d.ts.map +1 -1
  107. package/dist/models/Email.js +1 -1
  108. package/dist/models/Email.js.map +1 -1
  109. package/dist/models/EmailVerificationCode.d.ts.map +1 -1
  110. package/dist/models/EmailVerificationCode.js +3 -13
  111. package/dist/models/EmailVerificationCode.js.map +1 -1
  112. package/dist/models/Event.d.ts +2 -1
  113. package/dist/models/Event.d.ts.map +1 -1
  114. package/dist/models/Event.js +3 -0
  115. package/dist/models/Event.js.map +1 -1
  116. package/dist/models/EventNotification.d.ts.map +1 -1
  117. package/dist/models/EventNotification.js +5 -5
  118. package/dist/models/EventNotification.js.map +1 -1
  119. package/dist/models/Group.d.ts +4 -0
  120. package/dist/models/Group.d.ts.map +1 -1
  121. package/dist/models/Group.js +17 -0
  122. package/dist/models/Group.js.map +1 -1
  123. package/dist/models/Invoice.d.ts +1 -0
  124. package/dist/models/Invoice.d.ts.map +1 -1
  125. package/dist/models/Invoice.js +8 -8
  126. package/dist/models/Invoice.js.map +1 -1
  127. package/dist/models/MemberPlatformMembership.d.ts.map +1 -1
  128. package/dist/models/MemberPlatformMembership.js +9 -0
  129. package/dist/models/MemberPlatformMembership.js.map +1 -1
  130. package/dist/models/MollieToken.d.ts +4 -8
  131. package/dist/models/MollieToken.d.ts.map +1 -1
  132. package/dist/models/MollieToken.js +37 -90
  133. package/dist/models/MollieToken.js.map +1 -1
  134. package/dist/models/Order.d.ts.map +1 -1
  135. package/dist/models/Order.js +1 -0
  136. package/dist/models/Order.js.map +1 -1
  137. package/dist/models/Organization.d.ts +30 -23
  138. package/dist/models/Organization.d.ts.map +1 -1
  139. package/dist/models/Organization.js +113 -61
  140. package/dist/models/Organization.js.map +1 -1
  141. package/dist/models/PasswordToken.d.ts +5 -1
  142. package/dist/models/PasswordToken.d.ts.map +1 -1
  143. package/dist/models/PasswordToken.js +18 -17
  144. package/dist/models/PasswordToken.js.map +1 -1
  145. package/dist/models/Payment.d.ts +35 -3
  146. package/dist/models/Payment.d.ts.map +1 -1
  147. package/dist/models/Payment.js +66 -3
  148. package/dist/models/Payment.js.map +1 -1
  149. package/dist/models/Registration.d.ts +1 -0
  150. package/dist/models/Registration.d.ts.map +1 -1
  151. package/dist/models/Registration.js +4 -3
  152. package/dist/models/Registration.js.map +1 -1
  153. package/dist/models/RegistrationInvitation.d.ts +14 -0
  154. package/dist/models/RegistrationInvitation.d.ts.map +1 -0
  155. package/dist/models/RegistrationInvitation.js +45 -0
  156. package/dist/models/RegistrationInvitation.js.map +1 -0
  157. package/dist/models/STCredit.d.ts +4 -0
  158. package/dist/models/STCredit.d.ts.map +1 -1
  159. package/dist/models/STCredit.js +28 -0
  160. package/dist/models/STCredit.js.map +1 -1
  161. package/dist/models/STInvoice.d.ts +7 -1
  162. package/dist/models/STInvoice.d.ts.map +1 -1
  163. package/dist/models/STInvoice.js +9 -0
  164. package/dist/models/STInvoice.js.map +1 -1
  165. package/dist/models/STPackage.d.ts +4 -0
  166. package/dist/models/STPackage.d.ts.map +1 -1
  167. package/dist/models/STPackage.js +12 -1
  168. package/dist/models/STPackage.js.map +1 -1
  169. package/dist/models/UsedRegisterCode.d.ts +9 -0
  170. package/dist/models/UsedRegisterCode.d.ts.map +1 -1
  171. package/dist/models/UsedRegisterCode.js +31 -0
  172. package/dist/models/UsedRegisterCode.js.map +1 -1
  173. package/dist/models/User.d.ts +1 -1
  174. package/dist/models/User.d.ts.map +1 -1
  175. package/dist/models/User.js +1 -1
  176. package/dist/models/User.js.map +1 -1
  177. package/dist/models/_relations.js +25 -0
  178. package/dist/models/_relations.js.map +1 -1
  179. package/dist/models/addresses/City.d.ts +4 -4
  180. package/dist/models/addresses/City.d.ts.map +1 -1
  181. package/dist/models/addresses/City.js +6 -6
  182. package/dist/models/addresses/City.js.map +1 -1
  183. package/dist/models/addresses/PostalCode.d.ts +2 -2
  184. package/dist/models/addresses/PostalCode.d.ts.map +1 -1
  185. package/dist/models/addresses/PostalCode.js +4 -3
  186. package/dist/models/addresses/PostalCode.js.map +1 -1
  187. package/dist/models/addresses/Street.d.ts +3 -3
  188. package/dist/models/addresses/Street.d.ts.map +1 -1
  189. package/dist/models/addresses/Street.js +4 -4
  190. package/dist/models/addresses/Street.js.map +1 -1
  191. package/dist/models/index.d.ts +2 -0
  192. package/dist/models/index.d.ts.map +1 -1
  193. package/dist/models/index.js +2 -0
  194. package/dist/models/index.js.map +1 -1
  195. package/dist/models/v1GroupMigrationData.d.ts +22 -0
  196. package/dist/models/v1GroupMigrationData.d.ts.map +1 -0
  197. package/dist/models/v1GroupMigrationData.js +48 -0
  198. package/dist/models/v1GroupMigrationData.js.map +1 -0
  199. package/package.json +41 -13
  200. package/src/factories/GroupFactory.ts +4 -6
  201. package/src/factories/OrganizationFactory.ts +12 -4
  202. package/src/factories/RegistrationInvitationFactory.ts +24 -0
  203. package/src/factories/STPackageFactory.ts +2 -2
  204. package/src/factories/UserFactory.ts +4 -5
  205. package/src/factories/index.ts +1 -0
  206. package/src/helpers/EmailBuilder.ts +19 -28
  207. package/src/helpers/Handlebars.ts +10 -1
  208. package/src/helpers/InvoiceCounter.test.ts +220 -0
  209. package/src/helpers/InvoiceCounter.ts +162 -0
  210. package/src/index.ts +0 -1
  211. package/src/migrations/1605262045-import-postcodes.ts +62 -25
  212. package/src/migrations/1605262046-import-postcodes-nl.ts +58 -17
  213. package/src/migrations/1719567881-organization-periodId.sql +2 -0
  214. package/src/migrations/1719567882-groups-periodId.sql +2 -0
  215. package/src/migrations/1720080975-convert-charset.ts +34 -0
  216. package/src/migrations/1720080976-convert-charset-leads.ts +16 -13
  217. package/src/migrations/1721400546-users-memberId.sql +2 -0
  218. package/src/migrations/1722269236-group-waitinglist-id.sql +2 -1
  219. package/src/migrations/1722525785-balance-item-paying-organization-id.sql +2 -0
  220. package/src/migrations/1722525787-depending-balance-item.sql +2 -0
  221. package/src/migrations/1722963554-registration-group-price-and-options.sql +1 -1
  222. package/src/migrations/1723652797-payments-paying-organization-id-fk.sql +2 -0
  223. package/src/migrations/1733317908-added-missing-organization-fk-on-registrations.sql +2 -0
  224. package/src/migrations/1733317910-paying-organization-id-fk.sql +2 -0
  225. package/src/migrations/1733504881-negative-invoice-id.sql +6 -0
  226. package/src/migrations/1733994455-balance-item-status-open.ts +30 -0
  227. package/src/migrations/1763216320-bigint-balance-item-payments.sql +2 -0
  228. package/src/migrations/1763216320-bigint-balance-items.sql +5 -0
  229. package/src/migrations/1763216320-bigint-orders.sql +2 -0
  230. package/src/migrations/1763216320-bigint-payments.sql +2 -0
  231. package/src/migrations/1763216332-bigint-balance-item-price-total.sql +2 -0
  232. package/src/migrations/1769087808-corrected-invoice-user-agent.sql +2 -0
  233. package/src/migrations/1769087809-payments-invoice-id.sql +2 -0
  234. package/src/migrations/1772033555-balance-item-package-id.sql +2 -0
  235. package/src/migrations/1776873089-create-registration-invitations-table.sql +13 -0
  236. package/src/migrations/1778657958-payments-create-mandate.sql +2 -0
  237. package/src/migrations/1778657959-payments-mandate-id.sql +2 -0
  238. package/src/migrations/1778796615-payments-reversing-payment-id.sql +5 -0
  239. package/src/migrations/1778950642-price-invoiced.sql +2 -0
  240. package/src/migrations/1779443446-transfer-fees.sql +3 -0
  241. package/src/migrations/1779709174-used-register-code-balance-item-id.sql +5 -0
  242. package/src/migrations/1779968328-payments-admin-user-id.sql +5 -0
  243. package/src/migrations/1779970611-payments-refunded-amount.sql +2 -0
  244. package/src/migrations/1779972640-balance-items-failed-at.sql +2 -0
  245. package/src/migrations/1780328285-document-template-locked.sql +2 -0
  246. package/src/migrations/1780328286-document-locked.sql +2 -0
  247. package/src/migrations/1780412083-documents-set-locked.ts +18 -0
  248. package/src/migrations/1780928401-v1-groups-migration-data.ts +50 -0
  249. package/src/models/BalanceItem.ts +98 -43
  250. package/src/models/CachedBalance.test.ts +46 -46
  251. package/src/models/CachedBalance.ts +7 -7
  252. package/src/models/Document.ts +34 -13
  253. package/src/models/DocumentTemplate.ts +56 -17
  254. package/src/models/Email.test.ts +3 -3
  255. package/src/models/Email.ts +28 -49
  256. package/src/models/EmailVerificationCode.ts +8 -22
  257. package/src/models/Event.ts +6 -4
  258. package/src/models/EventNotification.ts +6 -6
  259. package/src/models/Group.ts +24 -3
  260. package/src/models/Invoice.ts +10 -9
  261. package/src/models/MemberPlatformMembership.test.ts +70 -0
  262. package/src/models/MemberPlatformMembership.ts +16 -12
  263. package/src/models/MollieToken.ts +42 -102
  264. package/src/models/Order.ts +14 -26
  265. package/src/models/Organization.ts +143 -86
  266. package/src/models/PasswordToken.ts +21 -21
  267. package/src/models/Payment.ts +61 -4
  268. package/src/models/Registration.ts +6 -5
  269. package/src/models/RegistrationInvitation.ts +40 -0
  270. package/src/models/STCredit.ts +32 -0
  271. package/src/models/STInvoice.ts +11 -5
  272. package/src/models/STPackage.ts +19 -14
  273. package/src/models/UsedRegisterCode.ts +34 -0
  274. package/src/models/User.ts +6 -7
  275. package/src/models/_relations.ts +29 -0
  276. package/src/models/addresses/City.ts +8 -6
  277. package/src/models/addresses/PostalCode.test.ts +1 -0
  278. package/src/models/addresses/PostalCode.ts +5 -3
  279. package/src/models/addresses/Street.ts +6 -4
  280. package/src/models/index.ts +3 -0
  281. package/src/models/v1GroupMigrationData.ts +43 -0
  282. package/dist/helpers/MemberMerger.d.ts +0 -14
  283. package/dist/helpers/MemberMerger.d.ts.map +0 -1
  284. package/dist/helpers/MemberMerger.js +0 -364
  285. package/dist/helpers/MemberMerger.js.map +0 -1
  286. package/dist/migrations/1720080975-convert-charset.sql +0 -85
  287. package/dist/migrations/1723202126-member-number-index.sql +0 -2
  288. package/dist/models/OneTimeToken.d.ts +0 -38
  289. package/dist/models/OneTimeToken.d.ts.map +0 -1
  290. package/dist/models/OneTimeToken.js +0 -125
  291. package/dist/models/OneTimeToken.js.map +0 -1
  292. package/src/helpers/MemberMerger.test.ts +0 -782
  293. package/src/helpers/MemberMerger.ts +0 -577
  294. package/src/migrations/1720080975-convert-charset.sql +0 -85
  295. package/src/migrations/1723202126-member-number-index.sql +0 -2
  296. package/src/models/OneTimeToken.ts +0 -133
@@ -0,0 +1,43 @@
1
+ import { column } from '@simonbackx/simple-database';
2
+
3
+ import { QueryableModel } from '@stamhoofd/sql';
4
+
5
+ /**
6
+ * Temporary table for the migration from v1 to v2.
7
+ * Keeps track of which combination of group id and cycle has been migrated to a new group.
8
+ */
9
+ export class V1GroupMigrationData extends QueryableModel {
10
+ static table = 'v1_groups_migration_data';
11
+
12
+ // new group id (can be same as old group id if no new group was created)
13
+ @column({ primary: true, type: 'string' })
14
+ newGroupId: string;
15
+
16
+ // old group id from v1
17
+ @column({ type: 'string' })
18
+ oldGroupId: string;
19
+
20
+ // old cycle from v1
21
+ @column({ type: 'integer' })
22
+ oldCycle = 0;
23
+ }
24
+
25
+ /**
26
+ * Temporary table for the migration from v1 to v2.
27
+ * Keeps track of which combination of waiting list group id and cycle has been migrated to a new group.
28
+ */
29
+ export class V1WaitingListMigrationData extends QueryableModel {
30
+ static table = 'v1_waiting_list_migration_data';
31
+
32
+ // new group id (can be same as old group id if no new group was created)
33
+ @column({ primary: true, type: 'string' })
34
+ newGroupId: string;
35
+
36
+ // old group id from v1
37
+ @column({ type: 'string' })
38
+ oldGroupId: string;
39
+
40
+ // old cycle from v1
41
+ @column({ type: 'integer' })
42
+ oldCycle = 0;
43
+ }
@@ -1,14 +0,0 @@
1
- import { Member } from '../models/index.js';
2
- export declare function mergeMultipleMembers(members: Member[]): Promise<void>;
3
- export declare function findEqualMembers({ firstName, lastName, birthDay, }: {
4
- firstName: string;
5
- lastName: string;
6
- birthDay: string;
7
- }): Promise<Member[]>;
8
- export declare function mergeTwoMembers(base: Member, other: Member): Promise<void>;
9
- export declare function mergeMemberDetails(base: Member, other: Member): void;
10
- export declare function selectBaseMember(members: Member[]): {
11
- base: Member;
12
- others: Member[];
13
- };
14
- //# sourceMappingURL=MemberMerger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemberMerger.d.ts","sourceRoot":"","sources":["../../src/helpers/MemberMerger.ts"],"names":[],"mappings":"AAaA,OAAO,EAGH,MAAM,EAMT,MAAM,oBAAoB,CAAC;AAE5B,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAU3D;AAED,wBAAsB,gBAAgB,CAAC,EACnC,SAAS,EACT,QAAQ,EACR,QAAQ,GACX,EAAE;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMpB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ChF;AA8HD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAkGpE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CASA"}
@@ -1,364 +0,0 @@
1
- import { QueryableModel, SQL } from '@stamhoofd/sql';
2
- import { Gender, ParentType } from '@stamhoofd/structures';
3
- import { Formatter } from '@stamhoofd/utility';
4
- import { BalanceItem, Document, Member, MemberPlatformMembership, MemberResponsibilityRecord, MergedMember, Registration, User, } from '../models/index.js';
5
- export async function mergeMultipleMembers(members) {
6
- const { base, others } = selectBaseMember(members);
7
- if (!base.existsInDatabase) {
8
- throw Error('Base member does not exist in database');
9
- }
10
- for (const other of others) {
11
- await mergeTwoMembers(base, other);
12
- }
13
- }
14
- export async function findEqualMembers({ firstName, lastName, birthDay, }) {
15
- return await Member.where({
16
- firstName,
17
- lastName,
18
- birthDay,
19
- });
20
- }
21
- export async function mergeTwoMembers(base, other) {
22
- console.log('Merging two member', base.id, other.id, base.details.name, other.details.name);
23
- if (base.id === other.id) {
24
- throw new Error('Cannot merge the same member');
25
- }
26
- if (!base.existsInDatabase) {
27
- throw new Error('Cannot merge to base member that does not exist in database');
28
- }
29
- mergeMemberDetails(base, other);
30
- if (other.existsInDatabase) {
31
- await mergeRegistrations(base, other);
32
- await mergeUsers(base, other);
33
- await mergeResponsibilities(base, other);
34
- await mergeBalanceItems(base, other);
35
- await mergeDocuments(base, other);
36
- await mergeMemberPlatformMemberships(base, other);
37
- }
38
- // Force review of all details
39
- base.details.reviewTimes.clearAll();
40
- base.details.cleanData();
41
- if (other.existsInDatabase && other.details.memberNumber && other.details.memberNumber === base.details.memberNumber) {
42
- // Clear member number first, because that will cause duplicate member number mysql errors
43
- other.details.memberNumber = null;
44
- await other.save();
45
- }
46
- await base.save();
47
- if (other.existsInDatabase) {
48
- console.log('Deleting duplicate member', other.id, other.details.name);
49
- // store other member in merged_member table
50
- const mergedMember = MergedMember.fromMember(other, base.id);
51
- await mergedMember.save();
52
- await other.delete();
53
- }
54
- }
55
- async function mergeRegistrations(base, other) {
56
- await mergeModels(base, other, Registration);
57
- }
58
- async function mergeUsers(base, other) {
59
- await mergeModels(base, other, User);
60
- }
61
- async function mergeResponsibilities(base, other) {
62
- async function getResponsibilities(memberId) {
63
- const rows = await SQL.select()
64
- .from(SQL.table(MemberResponsibilityRecord.table))
65
- .where(SQL.column('memberId'), memberId)
66
- .fetch();
67
- return MemberResponsibilityRecord.fromRows(rows, MemberResponsibilityRecord.table);
68
- }
69
- const otherResponsibilities = await getResponsibilities(other.id);
70
- const baseResponsibilities = await getResponsibilities(base.id);
71
- // Delete duplicate responsibilities where endDate is null -> keep responsibility with oldest start date
72
- for (const otherResponsibility of otherResponsibilities) {
73
- // check if equal responsibilities exist
74
- const otherResponsibilitiesWithoutCurrent = otherResponsibilities.filter(o => o.id !== otherResponsibility.id);
75
- const equalResponsibilities = baseResponsibilities
76
- .concat(otherResponsibilitiesWithoutCurrent)
77
- .filter((baseResponsibility) => {
78
- return (baseResponsibility.responsibilityId
79
- === otherResponsibility.responsibilityId
80
- && baseResponsibility.organizationId
81
- === otherResponsibility.organizationId
82
- && baseResponsibility.groupId
83
- === otherResponsibility.groupId
84
- && baseResponsibility.endDate === null
85
- && otherResponsibility.endDate === null);
86
- });
87
- if (equalResponsibilities.length > 0) {
88
- const allEqualResponsibilities = [
89
- ...equalResponsibilities,
90
- otherResponsibility,
91
- ]
92
- // sort on startDate
93
- .sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
94
- const responsibilityWithOldestStartDate = allEqualResponsibilities[0];
95
- const responsibilitiesToDelete = allEqualResponsibilities.slice(1, undefined);
96
- for (const responsibilityToDelete of responsibilitiesToDelete) {
97
- const baseIndex = baseResponsibilities.indexOf(responsibilityToDelete);
98
- if (baseIndex !== -1)
99
- baseResponsibilities.splice(baseIndex, 1);
100
- else {
101
- const otherIndex = otherResponsibilities.indexOf(responsibilityToDelete);
102
- if (otherIndex !== -1)
103
- otherResponsibilities.splice(otherIndex, 1);
104
- }
105
- if (responsibilityToDelete.existsInDatabase) {
106
- await responsibilityToDelete.delete();
107
- }
108
- }
109
- if (responsibilityWithOldestStartDate.memberId !== base.id) {
110
- responsibilityWithOldestStartDate.memberId = base.id;
111
- await responsibilityWithOldestStartDate.save();
112
- }
113
- }
114
- else {
115
- otherResponsibility.memberId = base.id;
116
- await otherResponsibility.save();
117
- }
118
- }
119
- }
120
- async function mergeBalanceItems(base, other) {
121
- await mergeModels(base, other, BalanceItem);
122
- }
123
- async function mergeDocuments(base, other) {
124
- await mergeModels(base, other, Document);
125
- }
126
- async function mergeMemberPlatformMemberships(base, other) {
127
- await mergeModels(base, other, MemberPlatformMembership);
128
- }
129
- class ModelWithMemberId extends QueryableModel {
130
- memberId;
131
- }
132
- async function mergeModels(base, other, model) {
133
- const baseId = base.id;
134
- const otherModels = await model.where({
135
- memberId: other.id,
136
- });
137
- for (const otherModel of otherModels) {
138
- otherModel.memberId = baseId;
139
- await otherModel.save();
140
- }
141
- }
142
- export function mergeMemberDetails(base, other) {
143
- const baseDetails = base.details;
144
- const otherDetails = other.details;
145
- baseDetails.cleanData();
146
- otherDetails.cleanData();
147
- // string details
148
- mergeStringIfBaseNotSet(baseDetails, otherDetails, 'firstName');
149
- mergeStringIfBaseNotSet(baseDetails, otherDetails, 'lastName');
150
- mergeStringIfBaseNotSet(baseDetails, otherDetails, 'memberNumber');
151
- // uitpas number
152
- mergeUitpasNumberDetails(baseDetails, otherDetails, baseDetails);
153
- // email
154
- mergeEmail(baseDetails, otherDetails);
155
- // phone
156
- mergePhone(baseDetails, otherDetails, baseDetails);
157
- // gender
158
- if (otherDetails.gender !== Gender.Other) {
159
- baseDetails.gender = otherDetails.gender;
160
- }
161
- // notes
162
- mergeNotes(baseDetails, otherDetails);
163
- // date
164
- merge(baseDetails, otherDetails, 'birthDay');
165
- // boolean status
166
- mergeBooleanStatusIfBaseNotSet(baseDetails, otherDetails, 'requiresFinancialSupport');
167
- mergeBooleanStatusIfBaseNotSet(baseDetails, otherDetails, 'dataPermissions');
168
- // address
169
- mergeAddress(baseDetails, otherDetails, baseDetails);
170
- // parents
171
- mergeParents(baseDetails, otherDetails);
172
- // emergency contacts
173
- baseDetails.emergencyContacts = baseDetails.emergencyContacts.concat(
174
- // add contacts that are not yet in the list
175
- otherDetails.emergencyContacts.filter(otherContact => !baseDetails.emergencyContacts.some(baseContact => baseContact.isEqual(otherContact))));
176
- // review times
177
- // todo: is this correct?
178
- baseDetails.reviewTimes.merge(otherDetails.reviewTimes);
179
- // answers
180
- mergeAnswers(baseDetails, otherDetails);
181
- // unverified data
182
- baseDetails.unverifiedEmails = Formatter.uniqueArray(baseDetails.unverifiedEmails.concat(otherDetails.unverifiedEmails.filter(email => !isNullOrEmpty(email))));
183
- baseDetails.unverifiedPhones = Formatter.uniqueArray(baseDetails.unverifiedPhones.concat(otherDetails.unverifiedPhones.filter(phone => !isNullOrEmpty(phone))));
184
- // unverified addresses
185
- for (const address of otherDetails.unverifiedAddresses) {
186
- if (!baseDetails.unverifiedAddresses.some(a => a.id === address.id)) {
187
- baseDetails.unverifiedAddresses.push(address);
188
- }
189
- }
190
- // Ids
191
- baseDetails.oldIds = Formatter.uniqueArray([...baseDetails.oldIds, ...otherDetails.oldIds]).filter(b => b !== base.id);
192
- if (other.id) {
193
- baseDetails.oldIds = Formatter.uniqueArray([...baseDetails.oldIds, other.id]);
194
- }
195
- }
196
- export function selectBaseMember(members) {
197
- if (members.length < 2) {
198
- throw Error('Members array length is less than 2.');
199
- }
200
- const sorted = members.sort((m1, m2) => (m2.existsInDatabase ? 0 : m2.createdAt.getTime()) - (m1.existsInDatabase ? 0 : m1.createdAt.getTime()));
201
- return { base: sorted[0], others: sorted.slice(1, undefined) };
202
- }
203
- function mergeAnswers(base, other) {
204
- const newAnswers = new Map(base.recordAnswers);
205
- for (const otherAnswer of other.recordAnswers.values()) {
206
- const otherId = otherAnswer.settings.id;
207
- const baseAnswer = newAnswers.get(otherId);
208
- if (!baseAnswer) {
209
- newAnswers.set(otherId, otherAnswer);
210
- }
211
- else if (otherAnswer.date >= baseAnswer.date) {
212
- newAnswers.set(otherId, otherAnswer);
213
- }
214
- else {
215
- // keep existing, this one is more up-to-date, don't add the other answer
216
- }
217
- }
218
- base.recordAnswers = newAnswers;
219
- }
220
- function mergeNotes(base, other) {
221
- if (base.notes && other.notes && base.notes !== other.notes) {
222
- base.notes = `${base.notes}\n${other.notes}`;
223
- }
224
- else if (other.notes) {
225
- base.notes = other.notes;
226
- return;
227
- }
228
- }
229
- function mergeParents(base, other) {
230
- const baseParents = base.parents;
231
- const otherParents = other.parents;
232
- const parentsToAdd = [];
233
- for (const otherParent of otherParents) {
234
- // equal if same first and last name
235
- const equalBaseParent = baseParents.find(baseParent => hasEqualStringValue(baseParent, otherParent, 'firstName')
236
- && hasEqualStringValue(baseParent, otherParent, 'lastName'));
237
- if (!equalBaseParent) {
238
- parentsToAdd.push(otherParent);
239
- continue;
240
- }
241
- mergeParent(equalBaseParent, otherParent, base);
242
- }
243
- base.parents = baseParents.concat(parentsToAdd);
244
- }
245
- function mergeParent(base, other, baseDetails) {
246
- if (other.type !== ParentType.Other) {
247
- base.type = other.type;
248
- }
249
- mergeString(base, other, 'firstName');
250
- mergeString(base, other, 'lastName');
251
- // add other emails to alternative emails
252
- mergeEmail(base, other);
253
- mergePhone(base, other, baseDetails);
254
- mergeAddress(base, other, baseDetails);
255
- }
256
- function mergeEmail(base, other) {
257
- const allEmails = Formatter.uniqueArray([other.email, ...other.alternativeEmails, base.email, ...base.alternativeEmails]
258
- .filter(f => f !== null)
259
- .filter(f => !isNullOrEmpty(f)));
260
- base.email = allEmails.shift() ?? null;
261
- base.alternativeEmails = allEmails;
262
- }
263
- function mergePhone(base, other, baseDetails) {
264
- const originalPhone = base.phone;
265
- const isPhoneMerged = mergeString(base, other, 'phone');
266
- if (isPhoneMerged && !isNullOrEmpty(originalPhone)) {
267
- if (!baseDetails.unverifiedPhones.some(phone => phone === originalPhone)) {
268
- baseDetails.unverifiedPhones.push(originalPhone);
269
- }
270
- }
271
- }
272
- function mergeAddress(base, other, baseDetails) {
273
- const baseAddress = base.address;
274
- const otherAddress = other.address;
275
- if (!otherAddress) {
276
- return;
277
- }
278
- base.address = otherAddress;
279
- if (baseAddress && baseAddress.id !== otherAddress.id) {
280
- // add base address to unverified addresses
281
- if (!baseDetails.unverifiedAddresses.some(address => address.id === baseAddress.id)) {
282
- baseDetails.unverifiedAddresses.push(baseAddress);
283
- }
284
- }
285
- }
286
- function mergeUitpasNumberDetails(base, other, baseDetails) {
287
- const baseUitpasNumberDetails = base.uitpasNumberDetails;
288
- const otherUitpasNumberDetails = other.uitpasNumberDetails;
289
- if (!otherUitpasNumberDetails) {
290
- return;
291
- }
292
- if ((baseUitpasNumberDetails?.socialTariff?.updatedAt.getTime() ?? 0) >= (otherUitpasNumberDetails.socialTariff?.updatedAt.getTime() ?? 0)) {
293
- return;
294
- }
295
- baseDetails.uitpasNumberDetails = otherUitpasNumberDetails;
296
- }
297
- function mergeString(base, other, key) {
298
- const otherValue = other[key];
299
- if (isNullOrEmpty(otherValue)) {
300
- return false;
301
- }
302
- base[key] = otherValue;
303
- return true;
304
- }
305
- function mergeStringIfBaseNotSet(base, other, key) {
306
- const otherValue = other[key];
307
- if (isNullOrEmpty(otherValue)) {
308
- return false;
309
- }
310
- if (!isNullOrEmpty(base[key])) {
311
- return false;
312
- }
313
- base[key] = otherValue;
314
- return true;
315
- }
316
- function merge(base, other, key) {
317
- const otherValue = other[key];
318
- if (otherValue === null || otherValue === undefined)
319
- return false;
320
- base[key] = otherValue;
321
- return true;
322
- }
323
- function mergeBooleanStatusIfBaseNotSet(base, other, key) {
324
- const otherValue = other[key];
325
- if (otherValue === null || otherValue === undefined)
326
- return false;
327
- const baseValue = base[key];
328
- if (baseValue === undefined || baseValue === null) {
329
- base[key] = otherValue;
330
- return true;
331
- }
332
- if (baseValue.date < otherValue.date) {
333
- base[key] = otherValue;
334
- return true;
335
- }
336
- return false;
337
- }
338
- /**
339
- * Returns true if the values of the key for a and b
340
- * are not null or undefined
341
- * and both are equal.
342
- * @param a
343
- * @param b
344
- * @param key
345
- * @returns
346
- */
347
- function hasEqualStringValue(a, b, key) {
348
- return hasValueAndIsEqual(a[key], b[key]);
349
- }
350
- function hasValueAndIsEqual(a, b) {
351
- if (isNullOrEmpty(a) || isNullOrEmpty(b))
352
- return false;
353
- return isStringEqual(a, b);
354
- }
355
- function isStringEqual(a, b) {
356
- return toLowerTrim(a) === toLowerTrim(b);
357
- }
358
- function toLowerTrim(name) {
359
- return name.toLowerCase().trim();
360
- }
361
- function isNullOrEmpty(value) {
362
- return value === null || value === undefined || value.trim() === '';
363
- }
364
- //# sourceMappingURL=MemberMerger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemberMerger.js","sourceRoot":"","sources":["../../src/helpers/MemberMerger.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- set foreign_key_checks=0;
2
- ALTER TABLE `_members_users` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
3
- ALTER TABLE `_members_users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
4
- ALTER TABLE `balance_item_payments` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
5
- ALTER TABLE `balance_item_payments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
6
- ALTER TABLE `balance_items` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
7
- ALTER TABLE `balance_items` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
8
- ALTER TABLE `buckaroo_payments` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
9
- ALTER TABLE `buckaroo_payments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
10
- ALTER TABLE `cities` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
11
- ALTER TABLE `cities` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
12
- ALTER TABLE `document_templates` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
13
- ALTER TABLE `document_templates` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
14
- ALTER TABLE `documents` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
15
- ALTER TABLE `documents` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
16
- ALTER TABLE `email_templates` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
17
- ALTER TABLE `email_templates` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
18
- ALTER TABLE `email_verification_codes` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
19
- ALTER TABLE `email_verification_codes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
20
- ALTER TABLE `groups` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
21
- ALTER TABLE `groups` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
22
- ALTER TABLE `images` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
23
- ALTER TABLE `images` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
24
- ALTER TABLE `members` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
25
- ALTER TABLE `members` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
26
- ALTER TABLE `migrations` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
27
- ALTER TABLE `migrations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
28
- ALTER TABLE `mollie_payments` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
29
- ALTER TABLE `mollie_payments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
30
- ALTER TABLE `mollie_tokens` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
31
- ALTER TABLE `mollie_tokens` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
32
- ALTER TABLE `organization_registration_periods` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
33
- ALTER TABLE `organization_registration_periods` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
34
- ALTER TABLE `organizations` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
35
- ALTER TABLE `organizations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
36
- ALTER TABLE `password_tokens` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
37
- ALTER TABLE `password_tokens` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
38
- ALTER TABLE `payconiq_payments` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
39
- ALTER TABLE `payconiq_payments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
40
- ALTER TABLE `payments` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
41
- ALTER TABLE `payments` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
42
- ALTER TABLE `platform` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
43
- ALTER TABLE `platform` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
44
- ALTER TABLE `postal_codes` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
45
- ALTER TABLE `postal_codes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
46
- ALTER TABLE `provinces` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
47
- ALTER TABLE `provinces` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
48
- ALTER TABLE `register_codes` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
49
- ALTER TABLE `register_codes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
50
- ALTER TABLE `registration_periods` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
51
- ALTER TABLE `registration_periods` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
52
- ALTER TABLE `registrations` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
53
- ALTER TABLE `registrations` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
54
- ALTER TABLE `stamhoofd_credits` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
55
- ALTER TABLE `stamhoofd_credits` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
56
- ALTER TABLE `stamhoofd_invoices` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
57
- ALTER TABLE `stamhoofd_invoices` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
58
- ALTER TABLE `stamhoofd_packages` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
59
- ALTER TABLE `stamhoofd_packages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
60
- ALTER TABLE `stamhoofd_pending_invoices` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
61
- ALTER TABLE `stamhoofd_pending_invoices` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
62
- ALTER TABLE `streets` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
63
- ALTER TABLE `streets` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
64
- ALTER TABLE `stripe_accounts` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
65
- ALTER TABLE `stripe_accounts` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
66
- ALTER TABLE `stripe_checkout_sessions` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
67
- ALTER TABLE `stripe_checkout_sessions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
68
- ALTER TABLE `stripe_payment_intents` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
69
- ALTER TABLE `stripe_payment_intents` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
70
- ALTER TABLE `tokens` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
71
- ALTER TABLE `tokens` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
72
- ALTER TABLE `used_register_codes` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
73
- ALTER TABLE `used_register_codes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
74
- ALTER TABLE `users` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
75
- ALTER TABLE `users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
76
- ALTER TABLE `webshop_discount_codes` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
77
- ALTER TABLE `webshop_discount_codes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
78
- ALTER TABLE `webshop_orders` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
79
- ALTER TABLE `webshop_orders` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
80
- ALTER TABLE `webshop_tickets` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
81
- ALTER TABLE `webshop_tickets` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
82
- ALTER TABLE `webshops` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
83
- ALTER TABLE `webshops` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
84
- ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
85
- set foreign_key_checks=1;
@@ -1,2 +0,0 @@
1
- ALTER TABLE `members`
2
- ADD UNIQUE INDEX `memberNumber` (`memberNumber`) USING BTREE;
@@ -1,38 +0,0 @@
1
- import { QueryableModel } from '@stamhoofd/sql';
2
- import type { Organization } from './Organization.js';
3
- declare enum OneTimeTokenType {
4
- WebshopNotificationEmailVerification = "WebshopNotificationEmailVerification",
5
- WebshopNotificationEmailUnsubscribe = "WebshopNotificationEmailUnsubscribe"
6
- }
7
- /**
8
- * Token that saves some information and can execute an action if you have access to the token (e.g. in an email)
9
- */
10
- export declare class OneTimeToken extends QueryableModel {
11
- static table: string;
12
- token: string;
13
- organizationId: string;
14
- validUntil: Date | null;
15
- createdAt: Date;
16
- type: OneTimeTokenType;
17
- data: any;
18
- isExpired(): boolean;
19
- /**
20
- * Get a token
21
- * @param token
22
- * @param ignoreExpireDate: do not return if it is expired
23
- */
24
- static getToken(token: string, organizationId: string, ignoreExpireDate?: boolean): Promise<OneTimeToken | undefined>;
25
- /***
26
- * Create a token without saving it
27
- */
28
- static createToken(organizationId: string, type: OneTimeTokenType, data: any, options?: {
29
- validUntil?: Date;
30
- expireIn?: number;
31
- }): Promise<OneTimeToken>;
32
- /**
33
- * Pass in an organization if you want to use the registration page instead of the dashboard
34
- */
35
- getUrl(organization: Organization, dashboard?: boolean): string;
36
- }
37
- export {};
38
- //# sourceMappingURL=OneTimeToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneTimeToken.d.ts","sourceRoot":"","sources":["../../src/models/OneTimeToken.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBtD,aAAK,gBAAgB;IACjB,oCAAoC,yCAAyC;IAC7E,mCAAmC,wCAAwC;CAC9E;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC5C,MAAM,CAAC,KAAK,SAAqB;IAIjC,KAAK,EAAE,MAAM,CAAC;IAGd,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAY/B,SAAS,EAAE,IAAI,CAAC;IAIhB,IAAI,EAAE,gBAAgB,CAAC;IAIvB,IAAI,EAAE,GAAG,CAAM;IAEf,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;WACU,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAezH;;OAEG;WACU,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB9J;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,UAAQ;CAkBvD"}