@stamhoofd/models 2.63.0 → 2.64.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 (63) hide show
  1. package/dist/src/migrations/1605262045-import-postcodes.d.ts +1 -1
  2. package/dist/src/migrations/1605262045-import-postcodes.js +1 -4
  3. package/dist/src/migrations/1734429094-registration-trial-until.sql +3 -0
  4. package/dist/src/migrations/1734429095-membership-trial-until.sql +2 -0
  5. package/dist/src/migrations/1734535120-registration-period-previous-period-id.sql +3 -0
  6. package/dist/src/migrations/1734535121-platform-previous-period-id.sql +3 -0
  7. package/dist/src/migrations/1734626607-cached-balance-amount-open.sql +2 -0
  8. package/dist/src/migrations/1734698906-cached-balance-amount-paid.sql +2 -0
  9. package/dist/src/models/BalanceItem.d.ts +2 -2
  10. package/dist/src/models/BalanceItem.d.ts.map +1 -1
  11. package/dist/src/models/BalanceItem.js +13 -11
  12. package/dist/src/models/BalanceItem.js.map +1 -1
  13. package/dist/src/models/BalanceItemPayment.d.ts +5 -0
  14. package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
  15. package/dist/src/models/BalanceItemPayment.js +15 -0
  16. package/dist/src/models/BalanceItemPayment.js.map +1 -1
  17. package/dist/src/models/CachedBalance.d.ts +6 -2
  18. package/dist/src/models/CachedBalance.d.ts.map +1 -1
  19. package/dist/src/models/CachedBalance.js +64 -20
  20. package/dist/src/models/CachedBalance.js.map +1 -1
  21. package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
  22. package/dist/src/models/DocumentTemplate.js +36 -9
  23. package/dist/src/models/DocumentTemplate.js.map +1 -1
  24. package/dist/src/models/Member.d.ts +3 -7
  25. package/dist/src/models/Member.d.ts.map +1 -1
  26. package/dist/src/models/Member.js +2 -41
  27. package/dist/src/models/Member.js.map +1 -1
  28. package/dist/src/models/MemberPlatformMembership.d.ts +10 -1
  29. package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
  30. package/dist/src/models/MemberPlatformMembership.js +79 -5
  31. package/dist/src/models/MemberPlatformMembership.js.map +1 -1
  32. package/dist/src/models/MergedMember.d.ts +1 -1
  33. package/dist/src/models/MergedMember.js +1 -1
  34. package/dist/src/models/Platform.d.ts +2 -0
  35. package/dist/src/models/Platform.d.ts.map +1 -1
  36. package/dist/src/models/Platform.js +9 -1
  37. package/dist/src/models/Platform.js.map +1 -1
  38. package/dist/src/models/Registration.d.ts +17 -5
  39. package/dist/src/models/Registration.d.ts.map +1 -1
  40. package/dist/src/models/Registration.js +23 -34
  41. package/dist/src/models/Registration.js.map +1 -1
  42. package/dist/src/models/RegistrationPeriod.d.ts +7 -0
  43. package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
  44. package/dist/src/models/RegistrationPeriod.js +36 -0
  45. package/dist/src/models/RegistrationPeriod.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/migrations/1605262045-import-postcodes.ts +2 -4
  48. package/src/migrations/1734429094-registration-trial-until.sql +3 -0
  49. package/src/migrations/1734429095-membership-trial-until.sql +2 -0
  50. package/src/migrations/1734535120-registration-period-previous-period-id.sql +3 -0
  51. package/src/migrations/1734535121-platform-previous-period-id.sql +3 -0
  52. package/src/migrations/1734626607-cached-balance-amount-open.sql +2 -0
  53. package/src/migrations/1734698906-cached-balance-amount-paid.sql +2 -0
  54. package/src/models/BalanceItem.ts +18 -17
  55. package/src/models/BalanceItemPayment.ts +20 -1
  56. package/src/models/CachedBalance.ts +88 -23
  57. package/src/models/DocumentTemplate.ts +39 -9
  58. package/src/models/Member.ts +2 -48
  59. package/src/models/MemberPlatformMembership.ts +92 -5
  60. package/src/models/MergedMember.ts +1 -1
  61. package/src/models/Platform.ts +9 -1
  62. package/src/models/Registration.ts +21 -40
  63. package/src/models/RegistrationPeriod.ts +47 -2
@@ -12,6 +12,7 @@ class Platform extends simple_database_1.Model {
12
12
  id;
13
13
  config = structures_1.PlatformConfig.create({});
14
14
  periodId;
15
+ previousPeriodId = null;
15
16
  membershipOrganizationId = null;
16
17
  privateConfig = structures_1.PlatformPrivateConfig.create({});
17
18
  static sharedStruct = null;
@@ -22,6 +23,10 @@ class Platform extends simple_database_1.Model {
22
23
  clone.setShared();
23
24
  return clone;
24
25
  }
26
+ async setPreviousPeriodId() {
27
+ const period = await RegistrationPeriod_1.RegistrationPeriod.getByID(this.periodId);
28
+ this.previousPeriodId = period?.previousPeriodId ?? null;
29
+ }
25
30
  static async getSharedPrivateStruct() {
26
31
  if (this.sharedStruct && this.sharedStruct.privateConfig) {
27
32
  return this.sharedStruct;
@@ -55,8 +60,8 @@ class Platform extends simple_database_1.Model {
55
60
  this.sharedStruct = null;
56
61
  }
57
62
  async save() {
58
- Platform.clearCache();
59
63
  const s = await super.save();
64
+ Platform.clearCache();
60
65
  // Force update cache immediately
61
66
  await Platform.getSharedStruct();
62
67
  return s;
@@ -76,6 +81,9 @@ tslib_1.__decorate([
76
81
  tslib_1.__decorate([
77
82
  (0, simple_database_1.column)({ type: 'string' })
78
83
  ], Platform.prototype, "periodId", void 0);
84
+ tslib_1.__decorate([
85
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
86
+ ], Platform.prototype, "previousPeriodId", void 0);
79
87
  tslib_1.__decorate([
80
88
  (0, simple_database_1.column)({ type: 'string', nullable: true })
81
89
  ], Platform.prototype, "membershipOrganizationId", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../src/models/Platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../src/models/Platform.ts"],"names":[],"mappings":";;;;AAAA,iEAA4D;AAC5D,8CAAiD;AACjD,sDAA0G;AAC1G,+BAAoC;AACpC,6DAA0D;AAE1D,MAAa,QAAS,SAAQ,uBAAK;IAC/B,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAO1B,EAAE,CAAU;IAGZ,MAAM,GAAmB,2BAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAGnD,QAAQ,CAAS;IAGjB,gBAAgB,GAAkB,IAAI,CAAC;IAGvC,wBAAwB,GAAkB,IAAI,CAAC;IAG/C,aAAa,GAA0B,kCAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,YAAY,GAA0B,IAAI,CAAC;IAElD,MAAM,CAAC,KAAK,CAAC,eAAe;QACxB,MAAM,MAAM,GAAmB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,MAAM,MAAM,GAAG,MAAM,uCAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB;QAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,YAAmB,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,qBAAY,CAAC,QAAQ,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,uCAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,qBAAc,CAAC,MAAM,CAAC;gBACjC,GAAG,KAAK;gBACR,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,SAAS;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAE3B,OAAO,MAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS;QAClB,OAAO,qBAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC1D,kBAAkB;YAClB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,wBAAwB;gBACxB,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACvB,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;gBACf,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,uCAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEtB,iCAAiC;QACjC,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;QAEjC,OAAO,CAAC,CAAC;IACb,CAAC;;AAvFL,4BAwFC;AAhFG;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,IAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;oCACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAAc,EAAE,CAAC;wCACC;AAGnD;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;0CACV;AAGjB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACJ;AAGvC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DACI;AAG/C;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAqB,EAAE,CAAC;+CACe"}
@@ -20,11 +20,26 @@ export declare class Registration extends Model {
20
20
  * @deprecated
21
21
  */
22
22
  cycle: number;
23
+ /**
24
+ * @deprecated
25
+ * Moved to cached balances
26
+ */
23
27
  price: number | null;
24
28
  createdAt: Date;
25
29
  updatedAt: Date;
30
+ /**
31
+ * The date when the registration was confirmed
32
+ */
26
33
  registeredAt: Date | null;
27
34
  reservedUntil: Date | null;
35
+ /**
36
+ * Start date of the registration. Defaults to the start date of the related group
37
+ */
38
+ startDate: Date | null;
39
+ /**
40
+ * If this registration is under a trial, this is the end date of the trial
41
+ */
42
+ trialUntil: Date | null;
28
43
  /**
29
44
  * @deprecated - replaced by group type
30
45
  */
@@ -36,7 +51,8 @@ export declare class Registration extends Model {
36
51
  canRegister: boolean;
37
52
  deactivatedAt: Date | null;
38
53
  /**
39
- * Part of price that is paid
54
+ * @deprecated
55
+ * Moved to cached balances
40
56
  */
41
57
  pricePaid: number;
42
58
  /**
@@ -47,10 +63,6 @@ export declare class Registration extends Model {
47
63
  getStructure(this: Registration & {
48
64
  group: import('./Group').Group;
49
65
  }): RegistrationStructure;
50
- /**
51
- * Update the outstanding balance of multiple members in one go (or all members)
52
- */
53
- static updateOutstandingBalance(registrationIds: string[] | 'all', organizationId?: string): Promise<void>;
54
66
  /**
55
67
  * Get the number of active members that are currently registered
56
68
  * This is used for billing
@@ -1 +1 @@
1
- {"version":3,"file":"Registration.d.ts","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAsC,SAAS,EAAE,YAAY,EAAuB,kBAAkB,EAAE,YAAY,IAAI,qBAAqB,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMlP,OAAO,EAAS,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/C,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,UAAU,CAAC;IAGvB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IAGnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAErD;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAK;IAGlB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAY5B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAGhB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAQ;IAGjC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;OAEG;IAEH,WAAW,UAAS;IAEpB;;;OAGG;IAEH,WAAW,UAAS;IAGpB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;OAEG;IAEH,SAAS,SAAK;IAEd;;OAEG;IAEH,iBAAiB,EAAE,gBAAgB,EAAE,CAAM;IAE3C,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,CAAC;IAElE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAE;IAQpE;;OAEG;WACU,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,cAAc,CAAC,EAAE,MAAM;IAoChG;;;OAGG;WACU,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBhE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK;IAwDnE,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAC;KAC3B;WA0BY,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;IAyFpG,kBAAkB;CAGrB"}
1
+ {"version":3,"file":"Registration.d.ts","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAsC,SAAS,EAAE,YAAY,EAAuB,kBAAkB,EAAE,YAAY,IAAI,qBAAqB,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMlP,OAAO,EAAS,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/C,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,UAAU,CAAC;IAGvB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IAGnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAErD;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAK;IAElB;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAY5B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IAEH,YAAY,EAAE,IAAI,GAAG,IAAI,CAAQ;IAGjC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;OAEG;IAEH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE9B;;OAEG;IAEH,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,WAAW,UAAS;IAEpB;;;OAGG;IAEH,WAAW,UAAS;IAGpB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;;OAGG;IAEH,SAAS,SAAK;IAEd;;OAEG;IAEH,iBAAiB,EAAE,gBAAgB,EAAE,CAAM;IAE3C,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,CAAC;IAElE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAE;IAQpE;;;OAGG;WACU,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBhE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK;IAwDnE,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAC;KAC3B;WA0BY,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;IAyFpG,kBAAkB;CAGrB"}
@@ -28,11 +28,26 @@ class Registration extends simple_database_1.Model {
28
28
  * @deprecated
29
29
  */
30
30
  cycle = 0;
31
+ /**
32
+ * @deprecated
33
+ * Moved to cached balances
34
+ */
31
35
  price = null;
32
36
  createdAt;
33
37
  updatedAt;
38
+ /**
39
+ * The date when the registration was confirmed
40
+ */
34
41
  registeredAt = null;
35
42
  reservedUntil = null;
43
+ /**
44
+ * Start date of the registration. Defaults to the start date of the related group
45
+ */
46
+ startDate = null;
47
+ /**
48
+ * If this registration is under a trial, this is the end date of the trial
49
+ */
50
+ trialUntil = null;
36
51
  /**
37
52
  * @deprecated - replaced by group type
38
53
  */
@@ -44,7 +59,8 @@ class Registration extends simple_database_1.Model {
44
59
  canRegister = false;
45
60
  deactivatedAt = null;
46
61
  /**
47
- * Part of price that is paid
62
+ * @deprecated
63
+ * Moved to cached balances
48
64
  */
49
65
  pricePaid = 0;
50
66
  /**
@@ -59,39 +75,6 @@ class Registration extends simple_database_1.Model {
59
75
  price: this.price ?? 0,
60
76
  });
61
77
  }
62
- /**
63
- * Update the outstanding balance of multiple members in one go (or all members)
64
- */
65
- static async updateOutstandingBalance(registrationIds, organizationId) {
66
- if (registrationIds !== 'all' && registrationIds.length === 0) {
67
- return;
68
- }
69
- const params = [];
70
- let firstWhere = '';
71
- let secondWhere = '';
72
- if (registrationIds !== 'all') {
73
- firstWhere = ` AND registrationId IN (?)`;
74
- params.push(registrationIds);
75
- secondWhere = `WHERE registrations.id IN (?)`;
76
- params.push(registrationIds);
77
- }
78
- const query = `UPDATE
79
- registrations
80
- LEFT JOIN (
81
- SELECT
82
- registrationId,
83
- sum(unitPrice * amount) AS price,
84
- sum(pricePaid) AS pricePaid
85
- FROM
86
- balance_items
87
- WHERE status != 'Hidden'${firstWhere}
88
- GROUP BY
89
- registrationId
90
- ) i ON i.registrationId = registrations.id
91
- SET registrations.price = coalesce(i.price, 0), registrations.pricePaid = coalesce(i.pricePaid, 0)
92
- ${secondWhere}`;
93
- await simple_database_1.Database.update(query, params);
94
- }
95
78
  /**
96
79
  * Get the number of active members that are currently registered
97
80
  * This is used for billing
@@ -341,6 +324,12 @@ tslib_1.__decorate([
341
324
  tslib_1.__decorate([
342
325
  (0, simple_database_1.column)({ type: 'datetime', nullable: true })
343
326
  ], Registration.prototype, "reservedUntil", void 0);
327
+ tslib_1.__decorate([
328
+ (0, simple_database_1.column)({ type: 'datetime', nullable: true })
329
+ ], Registration.prototype, "startDate", void 0);
330
+ tslib_1.__decorate([
331
+ (0, simple_database_1.column)({ type: 'datetime', nullable: true })
332
+ ], Registration.prototype, "trialUntil", void 0);
344
333
  tslib_1.__decorate([
345
334
  (0, simple_database_1.column)({ type: 'boolean' })
346
335
  ], Registration.prototype, "waitingList", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { Model } from '@simonbackx/simple-database';
2
+ import { SQLSelect } from '@stamhoofd/sql';
2
3
  import { RegistrationPeriodBase, RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
3
4
  export declare class RegistrationPeriod extends Model {
4
5
  static table: string;
5
6
  id: string;
7
+ previousPeriodId: string | null;
6
8
  organizationId: string | null;
7
9
  startDate: Date;
8
10
  endDate: Date;
@@ -13,5 +15,10 @@ export declare class RegistrationPeriod extends Model {
13
15
  getBaseStructure(): RegistrationPeriodBase;
14
16
  getStructure(): RegistrationPeriodStruct;
15
17
  static getByDate(date: Date): Promise<RegistrationPeriod | null>;
18
+ setPreviousPeriodId(): Promise<void>;
19
+ /**
20
+ * Experimental: needs to move to library
21
+ */
22
+ static select(): SQLSelect<RegistrationPeriod>;
16
23
  }
17
24
  //# sourceMappingURL=RegistrationPeriod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPeriod.d.ts","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG3I,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,MAAM,CAAC,KAAK,SAA0B;IAOtC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,MAAM,UAAS;IAYf,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,gBAAgB;IAIhB,YAAY;WAIC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAYzE"}
1
+ {"version":3,"file":"RegistrationPeriod.d.ts","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAO,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG3I,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,MAAM,CAAC,KAAK,SAA0B;IAOtC,EAAE,EAAG,MAAM,CAAC;IAGZ,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,MAAM,UAAS;IAYf,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,gBAAgB;IAIhB,YAAY;WAIC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAahE,mBAAmB;IAwBzB;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
9
9
  class RegistrationPeriod extends simple_database_1.Model {
10
10
  static table = 'registration_periods';
11
11
  id;
12
+ previousPeriodId = null;
12
13
  organizationId = null;
13
14
  startDate;
14
15
  endDate;
@@ -32,6 +33,38 @@ class RegistrationPeriod extends simple_database_1.Model {
32
33
  }
33
34
  return RegistrationPeriod.fromRow(result[this.table]) ?? null;
34
35
  }
36
+ async setPreviousPeriodId() {
37
+ const allPeriods = await RegistrationPeriod.where({ organizationId: this.organizationId });
38
+ // Include self if not yet in database
39
+ if (!this.existsInDatabase) {
40
+ allPeriods.push(this);
41
+ }
42
+ // Sort by start date
43
+ allPeriods.sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
44
+ // Take the one before this.periodId
45
+ let previousPeriod = null;
46
+ for (const period of allPeriods) {
47
+ if (period.id === this.id) {
48
+ break;
49
+ }
50
+ previousPeriod = period;
51
+ }
52
+ this.previousPeriodId = previousPeriod?.id ?? null;
53
+ }
54
+ /**
55
+ * Experimental: needs to move to library
56
+ */
57
+ static select() {
58
+ const transformer = (row) => {
59
+ const d = this.fromRow(row[this.table]);
60
+ if (!d) {
61
+ throw new Error('MemberPlatformMembership not found');
62
+ }
63
+ return d;
64
+ };
65
+ const select = new sql_1.SQLSelect(transformer, sql_1.SQL.wildcard());
66
+ return select.from(sql_1.SQL.table(this.table));
67
+ }
35
68
  }
36
69
  exports.RegistrationPeriod = RegistrationPeriod;
37
70
  tslib_1.__decorate([
@@ -41,6 +74,9 @@ tslib_1.__decorate([
41
74
  },
42
75
  })
43
76
  ], RegistrationPeriod.prototype, "id", void 0);
77
+ tslib_1.__decorate([
78
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
79
+ ], RegistrationPeriod.prototype, "previousPeriodId", void 0);
44
80
  tslib_1.__decorate([
45
81
  (0, simple_database_1.column)({ type: 'string', nullable: true })
46
82
  ], RegistrationPeriod.prototype, "organizationId", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPeriod.js","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":";;;;AAAA,iEAA4D;AAC5D,wCAAmD;AACnD,sDAA2I;AAC3I,+BAAoC;AAEpC,MAAa,kBAAmB,SAAQ,uBAAK;IACzC,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC;IAOtC,EAAE,CAAU;IAGZ,cAAc,GAAkB,IAAI,CAAC;IAGrC,SAAS,CAAO;IAGhB,OAAO,CAAO;IAGd,QAAQ,CAA6B;IAGrC,MAAM,GAAG,KAAK,CAAC;IAYf,SAAS,CAAO;IAUhB,SAAS,CAAO;IAEhB,gBAAgB;QACZ,OAAO,mCAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY;QACR,OAAO,+BAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAU;QAC7B,MAAM,MAAM,GAAG,MAAM,SAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxD,KAAK,CAAC,SAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,kBAAY,CAAC,SAAS,EAAE,IAAI,CAAC;aAC5D,KAAK,CAAC,SAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,kBAAY,CAAC,YAAY,EAAE,IAAI,CAAC;aAC7D,KAAK,CAAC,KAAK,CAAC,CAAC;QAElB,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAClE,CAAC;;AAlEL,gDAmEC;AA3DG;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,IAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;8CACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DACN;AAGrC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;qDACb;AAGhB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;mDACf;AAGd;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uCAA0B,EAAE,CAAC;oDACzB;AAGrC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;kDACb;AAYf;IAVC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,GAAS;YAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC;YACf,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;qDACc;AAUhB;IARC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU;YACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,UAAU,EAAE,IAAI;KACnB,CAAC;qDACc"}
1
+ {"version":3,"file":"RegistrationPeriod.js","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.63.0",
3
+ "version": "2.64.0",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -29,5 +29,5 @@
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
32
- "gitHead": "0dd71a1869c5931dcf844dea1ecd2167819dc5c6"
32
+ "gitHead": "80eebbb0b4fb84ac979041c3f8c7762863622367"
33
33
  }
@@ -11,11 +11,9 @@ export class Gemeente extends Model {
11
11
  static table = 'gemeenten';
12
12
 
13
13
  @column({
14
- primary: true, type: 'string', beforeSave(value) {
15
- return value ?? uuidv4();
16
- },
14
+ primary: true, type: 'integer',
17
15
  })
18
- id!: string;
16
+ id!: number;
19
17
 
20
18
  @column({ type: 'string' })
21
19
  postcode: string;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `registrations`
2
+ ADD COLUMN `trialUntil` datetime NULL AFTER `registeredAt`,
3
+ ADD COLUMN `startDate` datetime NULL AFTER `registeredAt`;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `member_platform_memberships`
2
+ ADD COLUMN `trialUntil` datetime NULL AFTER `startDate`;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `registration_periods`
2
+ ADD COLUMN `previousPeriodId` varchar(36) NULL,
3
+ ADD FOREIGN KEY (`previousPeriodId`) REFERENCES `registration_periods` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `platform`
2
+ ADD COLUMN `previousPeriodId` varchar(36) NULL AFTER `periodId`,
3
+ ADD FOREIGN KEY (`previousPeriodId`) REFERENCES `registration_periods` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `cached_outstanding_balances`
2
+ CHANGE `amount` `amountOpen` int NOT NULL DEFAULT '0';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `cached_outstanding_balances`
2
+ ADD COLUMN `amountPaid` int NOT NULL DEFAULT '0' AFTER `organizationId`;
@@ -1,11 +1,11 @@
1
1
  import { column, Database, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
2
- import { BalanceItem as BalanceItemStruct, BalanceItemPaymentWithPayment, BalanceItemPaymentWithPrivatePayment, BalanceItemRelation, BalanceItemRelationType, BalanceItemStatus, BalanceItemType, BalanceItemWithPayments, BalanceItemWithPrivatePayments, OrderStatus, Payment as PaymentStruct, PrivatePayment } from '@stamhoofd/structures';
2
+ import { BalanceItemPaymentWithPayment, BalanceItemPaymentWithPrivatePayment, BalanceItemRelation, BalanceItemRelationType, BalanceItemStatus, BalanceItem as BalanceItemStruct, BalanceItemType, BalanceItemWithPayments, BalanceItemWithPrivatePayments, Payment as PaymentStruct, PrivatePayment } from '@stamhoofd/structures';
3
3
  import { Formatter } from '@stamhoofd/utility';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
5
 
6
6
  import { EnumDecoder, MapDecoder } from '@simonbackx/simple-encoding';
7
7
  import { SQL, SQLSelect } from '@stamhoofd/sql';
8
- import { Document, Organization, Payment, Webshop } from './';
8
+ import { Document, Payment } from './';
9
9
  import { CachedBalance } from './CachedBalance';
10
10
 
11
11
  /**
@@ -220,8 +220,18 @@ export class BalanceItem extends Model {
220
220
  await this.deleteItems(items);
221
221
  }
222
222
 
223
- static async getForRegistration(registrationId: string) {
224
- const items = await BalanceItem.where({ registrationId });
223
+ static async getForRegistration(registrationId: string, organizationId?: string) {
224
+ let q = BalanceItem.select()
225
+ .where('registrationId', registrationId)
226
+ .whereNot('status', BalanceItemStatus.Hidden);
227
+
228
+ if (organizationId) {
229
+ q = q.where('organizationId', organizationId);
230
+ }
231
+
232
+ const items = await q
233
+ .fetch();
234
+
225
235
  return {
226
236
  items,
227
237
  ...(await this.loadPayments(items)),
@@ -237,15 +247,6 @@ export class BalanceItem extends Model {
237
247
 
238
248
  await BalanceItem.updatePricePaid(items.map(i => i.id));
239
249
 
240
- // Deprecated: the member balances have moved to CachedBalance
241
- // Update outstanding amount of related members and registrations
242
- const memberIds: string[] = Formatter.uniqueArray(items.map(p => p.memberId).filter(id => id !== null));
243
-
244
- const Member = (await import('./Member')).Member;
245
- await Member.updateOutstandingBalance(memberIds);
246
-
247
- const { Registration } = await import('./Registration');
248
-
249
250
  const organizationIds = Formatter.uniqueArray(items.map(p => p.organizationId));
250
251
  for (const organizationId of organizationIds) {
251
252
  const filteredItems = items.filter(i => i.organizationId === organizationId);
@@ -260,9 +261,7 @@ export class BalanceItem extends Model {
260
261
  await CachedBalance.updateForOrganizations(organizationId, organizationIds);
261
262
 
262
263
  const registrationIds: string[] = Formatter.uniqueArray(filteredItems.map(p => p.registrationId).filter(id => id !== null));
263
-
264
- // Deprecated: we'll need to move the outstanding balance of registrations to CachedBalance
265
- await Registration.updateOutstandingBalance(registrationIds, organizationId);
264
+ await CachedBalance.updateForRegistrations(organizationId, registrationIds);
266
265
 
267
266
  if (registrationIds.length) {
268
267
  await Document.updateForRegistrations(registrationIds, organizationId);
@@ -344,7 +343,9 @@ export class BalanceItem extends Model {
344
343
 
345
344
  // Load balance payment items
346
345
  const { BalanceItemPayment } = await import('./BalanceItemPayment');
347
- const balanceItemPayments = await BalanceItemPayment.where({ balanceItemId: { sign: 'IN', value: items.map(i => i.id) } });
346
+ const balanceItemPayments = await BalanceItemPayment.select()
347
+ .where('balanceItemId', items.map(i => i.id))
348
+ .fetch();
348
349
 
349
350
  const payments = await Payment.getByIDs(...balanceItemPayments.map(p => p.paymentId));
350
351
 
@@ -1,7 +1,8 @@
1
- import { column, ManyToOneRelation, Model } from '@simonbackx/simple-database';
1
+ import { column, ManyToOneRelation, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
3
 
4
4
  import { BalanceItem, Payment } from './';
5
+ import { SQLSelect, SQL } from '@stamhoofd/sql';
5
6
 
6
7
  /**
7
8
  * Keeps track of all the created payments of a balance item, which contains the (tries) to pay a balance item.
@@ -56,4 +57,22 @@ export class BalanceItemPayment extends Model {
56
57
 
57
58
  static balanceItem = new ManyToOneRelation(BalanceItem, 'balanceItem');
58
59
  static payment = new ManyToOneRelation(Payment, 'payment');
60
+
61
+ /**
62
+ * Experimental: needs to move to library
63
+ */
64
+ static select() {
65
+ const transformer = (row: SQLResultNamespacedRow): BalanceItemPayment => {
66
+ const d = (this as typeof BalanceItemPayment & typeof Model).fromRow(row[this.table] as any) as BalanceItemPayment | undefined;
67
+
68
+ if (!d) {
69
+ throw new Error('EmailTemplate not found');
70
+ }
71
+
72
+ return d;
73
+ };
74
+
75
+ const select = new SQLSelect(transformer, SQL.wildcard());
76
+ return select.from(SQL.table(this.table));
77
+ }
59
78
  }