@stamhoofd/models 2.5.0 → 2.7.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 (60) hide show
  1. package/dist/src/migrations/1722845608-registration-stock-reservations.sql +2 -0
  2. package/dist/src/migrations/1722845609-group-stock-reservations.sql +2 -0
  3. package/dist/src/migrations/1722852362-stripe-intents-account-id.sql +2 -0
  4. package/dist/src/migrations/1722852363-stripe-checkout-sessions-account-id.sql +2 -0
  5. package/dist/src/models/BalanceItem.d.ts +1 -0
  6. package/dist/src/models/BalanceItem.d.ts.map +1 -1
  7. package/dist/src/models/BalanceItem.js +36 -43
  8. package/dist/src/models/BalanceItem.js.map +1 -1
  9. package/dist/src/models/DocumentTemplate.js +1 -1
  10. package/dist/src/models/DocumentTemplate.js.map +1 -1
  11. package/dist/src/models/Email.d.ts.map +1 -1
  12. package/dist/src/models/Email.js +16 -8
  13. package/dist/src/models/Email.js.map +1 -1
  14. package/dist/src/models/EmailTemplate.d.ts.map +1 -1
  15. package/dist/src/models/EmailTemplate.js.map +1 -1
  16. package/dist/src/models/Event.d.ts +7 -0
  17. package/dist/src/models/Event.d.ts.map +1 -1
  18. package/dist/src/models/Event.js +28 -0
  19. package/dist/src/models/Event.js.map +1 -1
  20. package/dist/src/models/Group.d.ts +6 -3
  21. package/dist/src/models/Group.d.ts.map +1 -1
  22. package/dist/src/models/Group.js +29 -6
  23. package/dist/src/models/Group.js.map +1 -1
  24. package/dist/src/models/Member.d.ts +3 -2
  25. package/dist/src/models/Member.d.ts.map +1 -1
  26. package/dist/src/models/Member.js +32 -22
  27. package/dist/src/models/Member.js.map +1 -1
  28. package/dist/src/models/Payment.d.ts +5 -7
  29. package/dist/src/models/Payment.d.ts.map +1 -1
  30. package/dist/src/models/Payment.js +8 -13
  31. package/dist/src/models/Payment.js.map +1 -1
  32. package/dist/src/models/Registration.d.ts +18 -2
  33. package/dist/src/models/Registration.d.ts.map +1 -1
  34. package/dist/src/models/Registration.js +72 -8
  35. package/dist/src/models/Registration.js.map +1 -1
  36. package/dist/src/models/StripeCheckoutSession.d.ts +4 -0
  37. package/dist/src/models/StripeCheckoutSession.d.ts.map +1 -1
  38. package/dist/src/models/StripeCheckoutSession.js +7 -0
  39. package/dist/src/models/StripeCheckoutSession.js.map +1 -1
  40. package/dist/src/models/StripePaymentIntent.d.ts +4 -0
  41. package/dist/src/models/StripePaymentIntent.d.ts.map +1 -1
  42. package/dist/src/models/StripePaymentIntent.js +7 -0
  43. package/dist/src/models/StripePaymentIntent.js.map +1 -1
  44. package/package.json +2 -2
  45. package/src/migrations/1722845608-registration-stock-reservations.sql +2 -0
  46. package/src/migrations/1722845609-group-stock-reservations.sql +2 -0
  47. package/src/migrations/1722852362-stripe-intents-account-id.sql +2 -0
  48. package/src/migrations/1722852363-stripe-checkout-sessions-account-id.sql +2 -0
  49. package/src/models/BalanceItem.ts +40 -46
  50. package/src/models/DocumentTemplate.ts +1 -1
  51. package/src/models/Email.ts +28 -17
  52. package/src/models/EmailTemplate.ts +1 -1
  53. package/src/models/Event.ts +31 -0
  54. package/src/models/Group.ts +36 -14
  55. package/src/models/Member.ts +34 -23
  56. package/src/models/Payment.ts +10 -16
  57. package/src/models/Registration.ts +88 -12
  58. package/src/models/StripeAccount.ts +1 -1
  59. package/src/models/StripeCheckoutSession.ts +6 -0
  60. package/src/models/StripePaymentIntent.ts +6 -0
@@ -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;AAEzF,OAAO,EAAE,iBAAiB,EAAsC,SAAS,EAAE,YAAY,IAAI,qBAAqB,EAAe,MAAM,uBAAuB,CAAC;AAK7J,OAAO,EAA2B,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAEjE,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAkB;IAO9B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAA;IAGtB,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAG/B,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAY5B,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,YAAY,EAAE,IAAI,GAAG,IAAI,CAAO;IAGhC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAO;IAGjC,WAAW,UAAQ;IAEnB;;;OAGG;IAEH,WAAW,UAAQ;IAGnB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAO;IAEjC;;OAEG;IAEH,SAAS,SAAI;IAEb,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,CAAA;IAEjE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC;IAQlE;;OAEG;WACU,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,MAAM;IAwC/F;;;OAGG;WACU,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhE,SAAS,CAAC,IAAI,EAAE,YAAY;IA8B5B,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK;IAgDnE,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAA;KAC1B;WAkDY,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;CAoHvG"}
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;AAEzF,OAAO,EAAE,iBAAiB,EAAsC,SAAS,EAAE,YAAY,IAAI,qBAAqB,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK/K,OAAO,EAAkC,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAIxE,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAkB;IAO9B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAA;IAGtB,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAG/B,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAY5B,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,YAAY,EAAE,IAAI,GAAG,IAAI,CAAO;IAGhC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAO;IAEjC;;OAEG;IAEH,WAAW,UAAQ;IAEnB;;;OAGG;IAEH,WAAW,UAAQ;IAGnB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAO;IAEjC;;OAEG;IAEH,SAAS,SAAI;IAEb;;OAEG;IAEH,iBAAiB,EAAE,gBAAgB,EAAE,CAAK;IAE1C,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,CAAA;IAEjE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC;IAQlE;;OAEG;WACU,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,cAAc,CAAC,EAAE,MAAM;IAwChG;;;OAGG;WACU,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhE,UAAU;IAcV,SAAS,CAAC,IAAI,EAAE,YAAY;IA8B5B,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK;IAgDnE,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAA;KAC1B;WAkDY,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;IAqHpG,kBAAkB;IAMlB;;;;;OAKG;IACH,mBAAmB;CAsCtB"}
@@ -9,6 +9,8 @@ const utility_1 = require("@stamhoofd/utility");
9
9
  const uuid_1 = require("uuid");
10
10
  const EmailBuilder_1 = require("../helpers/EmailBuilder");
11
11
  const _1 = require("./");
12
+ const simple_encoding_1 = require("@simonbackx/simple-encoding");
13
+ const queues_1 = require("@stamhoofd/queues");
12
14
  class Registration extends simple_database_1.Model {
13
15
  constructor() {
14
16
  super(...arguments);
@@ -19,6 +21,9 @@ class Registration extends simple_database_1.Model {
19
21
  this.price = null;
20
22
  this.registeredAt = null;
21
23
  this.reservedUntil = null;
24
+ /**
25
+ * @deprecated - replaced by group type
26
+ */
22
27
  this.waitingList = false;
23
28
  /**
24
29
  * When a registration is on the waiting list or is invite only, set this to true to allow the user to
@@ -30,6 +35,10 @@ class Registration extends simple_database_1.Model {
30
35
  * Part of price that is paid
31
36
  */
32
37
  this.pricePaid = 0;
38
+ /**
39
+ * Set to null if no reservations are made, to help faster querying
40
+ */
41
+ this.stockReservations = [];
33
42
  }
34
43
  getStructure() {
35
44
  var _a;
@@ -71,7 +80,7 @@ class Registration extends simple_database_1.Model {
71
80
  SET registrations.price = coalesce(i.price, 0), registrations.pricePaid = coalesce(i.pricePaid, 0)
72
81
  ${secondWhere}`;
73
82
  await simple_database_1.Database.update(query, params);
74
- if (registrationIds !== 'all') {
83
+ if (registrationIds !== 'all' && organizationId) {
75
84
  await _1.Document.updateForRegistrations(registrationIds, organizationId);
76
85
  }
77
86
  }
@@ -83,7 +92,7 @@ class Registration extends simple_database_1.Model {
83
92
  const query = `
84
93
  SELECT COUNT(DISTINCT \`${Registration.table}\`.memberId) as c FROM \`${Registration.table}\`
85
94
  JOIN \`groups\` ON \`groups\`.id = \`${Registration.table}\`.groupId
86
- WHERE \`groups\`.organizationId = ? AND \`${Registration.table}\`.cycle = \`groups\`.cycle AND \`groups\`.deletedAt is null AND \`groups\`.status != 'Archived' AND \`${Registration.table}\`.registeredAt is not null AND \`${Registration.table}\`.waitingList = 0`;
95
+ WHERE \`groups\`.organizationId = ? AND \`${Registration.table}\`.cycle = \`groups\`.cycle AND \`groups\`.deletedAt is null AND \`${Registration.table}\`.registeredAt is not null AND \`${Registration.table}\`.deactivatedAt is null`;
87
96
  const [results] = await simple_database_1.Database.select(query, [organizationId]);
88
97
  const count = results[0]['']['c'];
89
98
  if (Number.isInteger(count)) {
@@ -94,22 +103,34 @@ class Registration extends simple_database_1.Model {
94
103
  throw new Error("Query failed");
95
104
  }
96
105
  }
106
+ async deactivate() {
107
+ if (this.deactivatedAt !== null) {
108
+ return;
109
+ }
110
+ // Clear the registration
111
+ this.deactivatedAt = new Date();
112
+ await this.save();
113
+ this.scheduleStockUpdate();
114
+ const { Member } = await Promise.resolve().then(() => tslib_1.__importStar(require('./Member')));
115
+ await Member.updateMembershipsForId(this.memberId);
116
+ }
97
117
  async markValid() {
98
- if (this.registeredAt !== null) {
118
+ var _a;
119
+ if (this.registeredAt !== null && this.deactivatedAt === null) {
99
120
  await this.save();
100
121
  return false;
101
122
  }
102
- if (this.waitingList && this.canRegister) {
103
- this.waitingList = false;
104
- }
105
123
  this.reservedUntil = null;
106
- this.registeredAt = new Date();
124
+ this.registeredAt = (_a = this.registeredAt) !== null && _a !== void 0 ? _a : new Date();
125
+ this.deactivatedAt = null;
107
126
  this.canRegister = false;
108
127
  await this.save();
128
+ this.scheduleStockUpdate();
129
+ const { Member } = await Promise.resolve().then(() => tslib_1.__importStar(require('./Member')));
130
+ await Member.updateMembershipsForId(this.memberId);
109
131
  await this.sendEmailTemplate({
110
132
  type: structures_1.EmailTemplateType.RegistrationConfirmation
111
133
  });
112
- const { Member } = await Promise.resolve().then(() => tslib_1.__importStar(require('./Member')));
113
134
  const member = await Member.getByID(this.memberId);
114
135
  if (member) {
115
136
  const registrationMemberRelation = new simple_database_1.ManyToOneRelation(Member, "member");
@@ -306,6 +327,46 @@ class Registration extends simple_database_1.Model {
306
327
  });
307
328
  email_1.Email.schedule(builder);
308
329
  }
330
+ shouldIncludeStock() {
331
+ return (this.registeredAt !== null && this.deactivatedAt === null) || this.canRegister || (this.reservedUntil && this.reservedUntil > new Date());
332
+ }
333
+ /**
334
+ * Adds or removes the order to the stock of the webshop (if it wasn't already included). If amounts were changed, only those
335
+ * changes will get added
336
+ * Should always happen in the webshop-stock queue to prevent multiple webshop writes at the same time
337
+ * + in combination with validation and reading the webshop
338
+ */
339
+ scheduleStockUpdate() {
340
+ const id = this.id;
341
+ queues_1.QueueHandler.cancel('registration-stock-update-' + id);
342
+ queues_1.QueueHandler.schedule('registration-stock-update-' + id, async function () {
343
+ const updated = await Registration.getByID(id);
344
+ if (!updated) {
345
+ return;
346
+ }
347
+ // Start with clearing all the stock reservations we've already made
348
+ if (updated.stockReservations) {
349
+ const groupIds = utility_1.Formatter.uniqueArray(updated.stockReservations.flatMap(r => r.objectType === 'Group' ? [r.objectId] : []));
350
+ for (const groupId of groupIds) {
351
+ const stocks = structures_1.StockReservation.filter('Group', groupId, updated.stockReservations);
352
+ // Technically we don't need to await this, but okay...
353
+ await _1.Group.freeStockReservations(groupId, stocks);
354
+ }
355
+ }
356
+ if (updated.shouldIncludeStock()) {
357
+ const myStockReservations = [];
358
+ // todo: build
359
+ updated.stockReservations = myStockReservations;
360
+ await updated.save();
361
+ }
362
+ else {
363
+ if (updated.stockReservations.length) {
364
+ updated.stockReservations = [];
365
+ await updated.save();
366
+ }
367
+ }
368
+ }).catch(console.error);
369
+ }
309
370
  }
310
371
  exports.Registration = Registration;
311
372
  Registration.table = "registrations";
@@ -377,4 +438,7 @@ tslib_1.__decorate([
377
438
  tslib_1.__decorate([
378
439
  (0, simple_database_1.column)({ type: "integer" })
379
440
  ], Registration.prototype, "pricePaid", void 0);
441
+ tslib_1.__decorate([
442
+ (0, simple_database_1.column)({ type: "json", decoder: new simple_encoding_1.ArrayDecoder(structures_1.StockReservation), nullable: true })
443
+ ], Registration.prototype, "stockReservations", void 0);
380
444
  //# sourceMappingURL=Registration.js.map
@@ -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":";;;;AAAA,iEAAyF;AACzF,4CAAyC;AACzC,sDAA+K;AAC/K,gDAA+C;AAC/C,+BAAoC;AAEpC,0DAA0D;AAC1D,yBAAwE;AACxE,iEAA2D;AAC3D,8CAAiD;AAEjD,MAAa,YAAa,SAAQ,uBAAK;IAAvC;;QAsBI;;WAEG;QAEH,cAAS,GAAkB,IAAI,CAAA;QAM/B,UAAK,GAAkB,IAAI,CAAC;QAyB5B,iBAAY,GAAgB,IAAI,CAAA;QAGhC,kBAAa,GAAgB,IAAI,CAAA;QAEjC;;WAEG;QAEH,gBAAW,GAAG,KAAK,CAAA;QAEnB;;;WAGG;QAEH,gBAAW,GAAG,KAAK,CAAA;QAGnB,kBAAa,GAAgB,IAAI,CAAA;QAEjC;;WAEG;QAEH,cAAS,GAAG,CAAC,CAAA;QAEb;;WAEG;QAEH,sBAAiB,GAAuB,EAAE,CAAA;IAmY9C,CAAC;IA/XG,YAAY;;QACR,OAAO,yBAAqB,CAAC,MAAM,CAAC;YAChC,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAChC,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC;SACzB,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,eAAiC,EAAE,cAAuB;QAC5F,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,IAAI,WAAW,GAAG,EAAE,CAAA;QAEpB,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC5B,UAAU,GAAG,4BAA4B,CAAA;YACzC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAE5B,WAAW,GAAG,+BAA+B,CAAA;YAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,KAAK,GAAG;;;;;;;;;0CASoB,UAAU;;;;;UAK1C,WAAW,EAAE,CAAA;QAEf,MAAM,0BAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEpC,IAAI,eAAe,KAAK,KAAK,IAAI,cAAc,EAAE,CAAC;YAC9C,MAAM,WAAQ,CAAC,sBAAsB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;QAC1E,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAsB;QAChD,MAAM,KAAK,GAAG;kCACY,YAAY,CAAC,KAAK,4BAA4B,YAAY,CAAC,KAAK;+CACnD,YAAY,CAAC,KAAK;oDACb,YAAY,CAAC,KAAK,sEAAsE,YAAY,CAAC,KAAK,qCAAqC,YAAY,CAAC,KAAK,0BAA0B,CAAA;QAEvO,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,0BAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAe,CAAA;QACzB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAA;YACzD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAM;QACV,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAE1B,MAAM,EAAC,MAAM,EAAC,GAAG,gEAAa,UAAU,GAAC,CAAC;QAC1C,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,SAAS;;QACX,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,YAAY,GAAI,MAAA,IAAI,CAAC,YAAY,mCAAI,IAAI,IAAI,EAAE,CAAA;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAE1B,MAAM,EAAC,MAAM,EAAC,GAAG,gEAAa,UAAU,GAAC,CAAC;QAC1C,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAElD,MAAM,IAAI,CAAC,iBAAiB,CAAC;YACzB,IAAI,EAAE,8BAAiB,CAAC,wBAAwB;SACnD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,0BAA0B,GAAG,IAAI,mCAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC1E,0BAA0B,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAA;YACvE,MAAM,WAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAA;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAA0B,EAAE,KAAyB;QACrE,MAAM,EAAC,MAAM,EAAC,GAAG,gEAAa,UAAU,GAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAS,CAAC,MAAM,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,YAAY,EAAE;gBACV,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;iBAClC,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;iBACjC,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;iBACpB,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE;iBAC7C,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,kBAAkB;oBACzB,KAAK,EAAE,YAAY,CAAC,IAAI;iBAC3B,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;iBAC7B,CAAC;gBACF,wBAAW,CAAC,MAAM,CAAC;oBACf,KAAK,EAAE,cAAc;oBACrB,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,8EAA8E,mBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,gHAAgH,mBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mFAAmF;iBACrY,CAAC;aACL;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAEvB;QACG,MAAM,KAAK,GAAG,CAAC,gEAAa,IAAI,GAAC,CAAC,CAAC,KAAK,CAAA;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAM;QACV,CAAC;QAED,6CAA6C;QAC7C,IAAI,SAAS,GAAG,CAAC,MAAM,gBAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;QAE7H,wBAAwB;QACxB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,SAAS,GAAG,CAAC,MAAM,gBAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrH,CAAC;QAED,eAAe;QACf,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,SAAS,GAAG,CAAC,MAAM,gBAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrG,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAE7B,MAAM,YAAY,GAAG,MAAM,eAAY,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAM;QACV,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAEhE,MAAM,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEzD,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAe,EAAC,YAAY,EAAE;YAChD,UAAU;YACV,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI;YACJ,IAAI,EAAE,eAAe;YACrB,OAAO;SACV,CAAC,CAAA;QAEF,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAU,EAAE,YAA0B,EAAE,OAA6B;;QAChG,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,8BAAiB,CAAC,2BAA2B;SACtD,CAAC;QAEF,uBAAuB;QACvB,IAAI,SAAS,GAAG,CAAC,MAAM,gBAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAEhH,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,SAAS,GAAG,CAAC,MAAM,gBAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrG,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAE7B,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAA;QAClD,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEjD,4BAA4B;QAC5B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM,UAAU,GAAG;YACf,sBAAS,CAAC,MAAM,CAAC;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,YAAY,EAAE;oBACV,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,mBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;qBACxC,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,eAAe;wBACtB,KAAK,EAAE,gCAAmB,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,0BAAa,CAAC,OAAO,CAAC;qBAC9E,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,qBAAqB;wBAC5B,KAAK,EAAE,CAAC,MAAA,OAAO,CAAC,mBAAmB,mCAAI,EAAE,CAAC;qBAC7C,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,qBAAqB;wBAC5B,KAAK,EAAE,MAAA,MAAA,OAAO,CAAC,gBAAgB,0CAAE,IAAI,mCAAI,EAAE;qBAC9C,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,sBAAsB;wBAC7B,KAAK,EAAE,MAAA,MAAA,OAAO,CAAC,gBAAgB,0CAAE,QAAQ,mCAAI,YAAY,CAAC,IAAI;qBACjE,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,eAAe;wBACtB,KAAK,EAAE,EAAE;wBACT,IAAI,EAAE,cAAc,CAAC,mBAAmB,EAAE;qBAC7C,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,iBAAiB;wBACxB,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAAC,gBAAgB;qBAC/D,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,aAAa;wBACpB,KAAK,EAAE,cAAc,CAAC,WAAW;qBACpC,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,eAAe;wBACtB,KAAK,EAAE,EAAE;wBACT,IAAI,EAAE,cAAc,CAAC,mBAAmB,EAAE;qBAC7C,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,cAAc;wBACrB,KAAK,EAAE,EAAE;wBACT,IAAI,EAAE,cAAc,CAAC,YAAY,EAAE;qBACtC,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,aAAa;wBACpB,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE;qBAC7C,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,YAAY,CAAC,IAAI;qBAC3B,CAAC;oBACF,wBAAW,CAAC,MAAM,CAAC;wBACf,KAAK,EAAE,cAAc;wBACrB,KAAK,EAAE,EAAE;wBACT,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,8EAA8E,mBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,gHAAgH,mBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,mFAAmF;qBACrY,CAAC;iBACL;aACJ,CAAC;SACL,CAAC;QAEF,IAAI,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,eAAe,EAAE,CAAA;QAEpD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,gEAAa,IAAI,GAAC,CAAC,CAAC,KAAK,CAAA;YACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpD,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;gBACtB,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;YAChC,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAe,EAAC,YAAY,EAAE;YAChD,UAAU;YACV,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI;YACJ,OAAO;SACV,CAAC,CAAA;QAEF,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB;QACd,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,CAAA;IACrJ,CAAC;IAID;;;;;OAKG;IACH,mBAAmB;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAEnB,qBAAY,CAAC,MAAM,CAAC,4BAA4B,GAAC,EAAE,CAAC,CAAC;QACrD,qBAAY,CAAC,QAAQ,CAAC,4BAA4B,GAAC,EAAE,EAAE,KAAK;YACxD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,oEAAoE;YACpE,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,mBAAS,CAAC,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7H,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,6BAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAEpF,uDAAuD;oBACvD,MAAM,QAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC/B,MAAM,mBAAmB,GAAuB,EAAE,CAAC;gBAEnD,cAAc;gBAEd,OAAO,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;gBAChD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;oBACnC,OAAO,CAAC,iBAAiB,GAAG,EAAE,CAAC;oBAC/B,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;YACL,CAAC;QAEL,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;;AA1dL,oCA2dC;AA1dU,kBAAK,GAAG,eAAe,AAAlB,CAAkB;AAO9B;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;wCACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8CACV;AAGjB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oDACL;AAGtB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8CACV;AAGjB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,EAAC,CAAC;6CAC1C;AAMhB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;+CACZ;AAG/B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;2CACd;AAGd;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;2CAChB;AAY5B;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,CAAA;YACvB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACf,CAAC;KACJ,CAAC;+CACa;AAUf;IARC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU;YACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACvB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,UAAU,EAAE,IAAI;KACnB,CAAC;+CACa;AAGf;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACb;AAGhC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;mDACZ;AAMjC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iDACT;AAOnB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iDACT;AAGnB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;mDACX;AAMjC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACf;AAMb;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,6BAAgB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uDAC5C"}
@@ -5,5 +5,9 @@ export declare class StripeCheckoutSession extends Model {
5
5
  paymentId: string;
6
6
  stripeSessionId: string;
7
7
  organizationId: string | null;
8
+ /**
9
+ * For direct charges, this should be set
10
+ */
11
+ accountId: string | null;
8
12
  }
9
13
  //# sourceMappingURL=StripeCheckoutSession.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StripeCheckoutSession.d.ts","sourceRoot":"","sources":["../../../src/models/StripeCheckoutSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAG3D,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,MAAM,CAAC,KAAK,SAA8B;IAO1C,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAE,MAAM,CAAC;IAGlB,eAAe,EAAE,MAAM,CAAC;IAGxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;CACxC"}
1
+ {"version":3,"file":"StripeCheckoutSession.d.ts","sourceRoot":"","sources":["../../../src/models/StripeCheckoutSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAG3D,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,MAAM,CAAC,KAAK,SAA8B;IAO1C,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAE,MAAM,CAAC;IAGlB,eAAe,EAAE,MAAM,CAAC;IAGxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAC,IAAI,CAAO;CAChC"}
@@ -8,6 +8,10 @@ class StripeCheckoutSession extends simple_database_1.Model {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.organizationId = null;
11
+ /**
12
+ * For direct charges, this should be set
13
+ */
14
+ this.accountId = null;
11
15
  }
12
16
  }
13
17
  exports.StripeCheckoutSession = StripeCheckoutSession;
@@ -28,4 +32,7 @@ tslib_1.__decorate([
28
32
  tslib_1.__decorate([
29
33
  (0, simple_database_1.column)({ type: "string", nullable: true })
30
34
  ], StripeCheckoutSession.prototype, "organizationId", void 0);
35
+ tslib_1.__decorate([
36
+ (0, simple_database_1.column)({ type: "string", nullable: true })
37
+ ], StripeCheckoutSession.prototype, "accountId", void 0);
31
38
  //# sourceMappingURL=StripeCheckoutSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StripeCheckoutSession.js","sourceRoot":"","sources":["../../../src/models/StripeCheckoutSession.ts"],"names":[],"mappings":";;;;AAAA,iEAA2D;AAC3D,+BAAoC;AAEpC,MAAa,qBAAsB,SAAQ,uBAAK;IAAhD;;QAiBI,mBAAc,GAAkB,IAAI,CAAC;IACzC,CAAC;;AAlBD,sDAkBC;AAjBU,2BAAK,GAAG,0BAA0B,AAA7B,CAA8B;AAO1C;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;iDACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;wDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8DACH;AAGxB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;6DACN"}
1
+ {"version":3,"file":"StripeCheckoutSession.js","sourceRoot":"","sources":["../../../src/models/StripeCheckoutSession.ts"],"names":[],"mappings":";;;;AAAA,iEAA2D;AAC3D,+BAAoC;AAEpC,MAAa,qBAAsB,SAAQ,uBAAK;IAAhD;;QAiBI,mBAAc,GAAkB,IAAI,CAAC;QAErC;;WAEG;QAEH,cAAS,GAAgB,IAAI,CAAA;IACjC,CAAC;;AAxBD,sDAwBC;AAvBU,2BAAK,GAAG,0BAA0B,AAA7B,CAA8B;AAO1C;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;iDACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;wDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8DACH;AAGxB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;6DACN;AAMrC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;wDACd"}
@@ -5,5 +5,9 @@ export declare class StripePaymentIntent extends Model {
5
5
  paymentId: string;
6
6
  stripeIntentId: string;
7
7
  organizationId: string | null;
8
+ /**
9
+ * For direct charges, this should be set
10
+ */
11
+ accountId: string | null;
8
12
  }
9
13
  //# sourceMappingURL=StripePaymentIntent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StripePaymentIntent.d.ts","sourceRoot":"","sources":["../../../src/models/StripePaymentIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAG3D,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,MAAM,CAAC,KAAK,SAA4B;IAOxC,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAE,MAAM,CAAC;IAGlB,cAAc,EAAE,MAAM,CAAC;IAGvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;CACxC"}
1
+ {"version":3,"file":"StripePaymentIntent.d.ts","sourceRoot":"","sources":["../../../src/models/StripePaymentIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAG3D,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,MAAM,CAAC,KAAK,SAA4B;IAOxC,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAE,MAAM,CAAC;IAGlB,cAAc,EAAE,MAAM,CAAC;IAGvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAC,IAAI,CAAO;CAChC"}
@@ -8,6 +8,10 @@ class StripePaymentIntent extends simple_database_1.Model {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.organizationId = null;
11
+ /**
12
+ * For direct charges, this should be set
13
+ */
14
+ this.accountId = null;
11
15
  }
12
16
  }
13
17
  exports.StripePaymentIntent = StripePaymentIntent;
@@ -28,4 +32,7 @@ tslib_1.__decorate([
28
32
  tslib_1.__decorate([
29
33
  (0, simple_database_1.column)({ type: "string", nullable: true })
30
34
  ], StripePaymentIntent.prototype, "organizationId", void 0);
35
+ tslib_1.__decorate([
36
+ (0, simple_database_1.column)({ type: "string", nullable: true })
37
+ ], StripePaymentIntent.prototype, "accountId", void 0);
31
38
  //# sourceMappingURL=StripePaymentIntent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StripePaymentIntent.js","sourceRoot":"","sources":["../../../src/models/StripePaymentIntent.ts"],"names":[],"mappings":";;;;AAAA,iEAA2D;AAC3D,+BAAoC;AAEpC,MAAa,mBAAoB,SAAQ,uBAAK;IAA9C;;QAiBI,mBAAc,GAAkB,IAAI,CAAC;IACzC,CAAC;;AAlBD,kDAkBC;AAjBU,yBAAK,GAAG,wBAAwB,AAA3B,CAA4B;AAOxC;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;+CACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;2DACJ;AAGvB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;2DACN"}
1
+ {"version":3,"file":"StripePaymentIntent.js","sourceRoot":"","sources":["../../../src/models/StripePaymentIntent.ts"],"names":[],"mappings":";;;;AAAA,iEAA2D;AAC3D,+BAAoC;AAEpC,MAAa,mBAAoB,SAAQ,uBAAK;IAA9C;;QAiBI,mBAAc,GAAkB,IAAI,CAAC;QAErC;;WAEG;QAEH,cAAS,GAAgB,IAAI,CAAA;IACjC,CAAC;;AAxBD,kDAwBC;AAvBU,yBAAK,GAAG,wBAAwB,AAA3B,CAA4B;AAOxC;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;+CACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;2DACJ;AAGvB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;2DACN;AAMrC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sDACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.5.0",
3
+ "version": "2.7.0",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -27,5 +27,5 @@
27
27
  "devDependencies": {
28
28
  "@simonbackx/simple-database": "1.24.0"
29
29
  },
30
- "gitHead": "07cc26af0e3036e4ae4309a268fbf57b7f6ac2ed"
30
+ "gitHead": "319a4de9fac39a31110cddbfa9a580d1b9c8f730"
31
31
  }
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `registrations`
2
+ ADD COLUMN `stockReservations` json NOT NULL DEFAULT ('{"value": [], "version": 0}');
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `groups`
2
+ ADD COLUMN `stockReservations` json NOT NULL DEFAULT ('{"value": [], "version": 0}');
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `stripe_payment_intents`
2
+ ADD COLUMN `accountId` varchar(100) NULL;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `stripe_checkout_sessions`
2
+ ADD COLUMN `accountId` varchar(100) NULL;
@@ -107,6 +107,12 @@ export class BalanceItem extends Model {
107
107
 
108
108
  async markPaid(payment: Payment, organization: Organization) {
109
109
  // status and pricePaid changes are handled inside balanceitempayment
110
+ if (this.dependingBalanceItemId) {
111
+ const depending = await BalanceItem.getByID(this.dependingBalanceItemId)
112
+ if (depending && depending.status === BalanceItemStatus.Hidden) {
113
+ await BalanceItem.reactivateItems([depending])
114
+ }
115
+ }
110
116
 
111
117
  // If registration
112
118
  if (this.registrationId) {
@@ -115,7 +121,7 @@ export class BalanceItem extends Model {
115
121
 
116
122
  if (registration) {
117
123
  // 1. Mark registration as being valid
118
- if (registration.registeredAt === null) {
124
+ if (registration.registeredAt === null || registration.deactivatedAt) {
119
125
  await registration.markValid()
120
126
 
121
127
  const {Group} = await import("./Group");
@@ -219,72 +225,48 @@ export class BalanceItem extends Model {
219
225
  }
220
226
 
221
227
  static async deleteItems(items: BalanceItem[]) {
222
- const {payments} = await BalanceItem.loadPayments(items)
228
+ const {balanceItemPayments} = await BalanceItem.loadPayments(items)
223
229
 
224
- // Load all balance items
225
- const {balanceItems, balanceItemPayments: allBalanceItemPayments} = await Payment.loadBalanceItems(payments)
226
- for (const payment of payments) {
227
- if (payment.status === PaymentStatus.Succeeded) {
228
- continue;
229
- }
230
- if (!(payment.method === PaymentMethod.PointOfSale || payment.method === PaymentMethod.Transfer || payment.method === PaymentMethod.Unknown)) {
231
- continue;
232
- }
233
- const bip = allBalanceItemPayments.filter(p => p.paymentId == payment.id)
234
- const bis = balanceItems.filter(b => b.status !== BalanceItemStatus.Hidden && bip.find(p => p.balanceItemId == b.id))
235
-
236
- const remainingAfterDelete = bis.filter(b => !items.find(i => i.id == b.id))
237
- if (remainingAfterDelete.length == 0) {
238
- // Delete payment
239
- payment.status = PaymentStatus.Failed
240
- payment._forceUpdatedAt = new Date(1900, 0, 1)
241
- await payment.save()
242
- }
243
- }
230
+ // todo: in the future we could automatically delete payments that are not needed anymore and weren't paid yet -> to prevent leaving ghost payments
231
+ // for now, an admin can manually cancel those payments
232
+ let needsUpdate = false
244
233
 
245
234
  // Set other items to zero (the balance item payments keep the real price)
246
235
  for (const item of items) {
236
+ needsUpdate = needsUpdate || (item.price > 0 && item.status !== BalanceItemStatus.Hidden)
237
+
247
238
  // Don't change status of items that are already paid or are partially paid
248
239
  // Not using item.paidPrice, since this is cached
249
- const bip = allBalanceItemPayments.filter(p => p.balanceItemId == item.id)
250
- const relatedPayments = payments.filter(p => bip.find(b => b.paymentId == p.id))
240
+ const bip = balanceItemPayments.filter(p => p.balanceItemId == item.id)
251
241
 
252
- if (relatedPayments.length === 0 || !relatedPayments.find(p => p.status === PaymentStatus.Succeeded)) {
253
- // No paid payments associated with this item
242
+ if (bip.length === 0) {
243
+ // No payments associated with this item
254
244
  item.status = BalanceItemStatus.Hidden
245
+ item.price = 0
246
+ await item.save()
247
+ } else {
248
+ item.price = 0
255
249
  await item.save()
256
250
  }
257
251
  }
252
+
253
+ if (needsUpdate) {
254
+ await this.updateOutstanding(items)
255
+ }
258
256
  }
259
257
 
260
258
  static async reactivateItems(items: BalanceItem[]) {
261
- // Set other items to zero (the balance item payments keep the real price)
259
+ let needsUpdate = false
262
260
  for (const item of items) {
263
261
  if (item.status === BalanceItemStatus.Hidden) {
264
262
  item.status = BalanceItemStatus.Pending
263
+ needsUpdate = needsUpdate || item.price > 0
265
264
  await item.save()
266
265
  }
267
266
  }
268
267
 
269
- const {payments} = await BalanceItem.loadPayments(items)
270
-
271
- // Load all balance items
272
- const {balanceItems, balanceItemPayments: allBalanceItemPayments} = await Payment.loadBalanceItems(payments)
273
- for (const payment of payments) {
274
- if (payment.status !== PaymentStatus.Failed) {
275
- continue;
276
- }
277
- if (!(payment.method === PaymentMethod.PointOfSale || payment.method === PaymentMethod.Transfer || payment.method === PaymentMethod.Unknown)) {
278
- continue;
279
- }
280
- const bip = allBalanceItemPayments.filter(p => p.paymentId == payment.id)
281
- const bis = balanceItems.filter(b => b.status !== BalanceItemStatus.Hidden && bip.find(p => p.balanceItemId == b.id))
282
-
283
- if (bis.length > 0) {
284
- // Undo failed
285
- payment.status = PaymentStatus.Created
286
- await payment.save()
287
- }
268
+ if (needsUpdate) {
269
+ await this.updateOutstanding(items)
288
270
  }
289
271
  }
290
272
 
@@ -322,6 +304,18 @@ export class BalanceItem extends Model {
322
304
  }
323
305
  }
324
306
 
307
+ static async updateOutstanding(items: BalanceItem[], organizationId?: string) {
308
+ const Member = (await import('./Member')).Member;
309
+
310
+ // Update outstanding amount of related members and registrations
311
+ const memberIds: string[] = Formatter.uniqueArray(items.map(p => p.memberId).filter(id => id !== null)) as any
312
+ await Member.updateOutstandingBalance(memberIds)
313
+
314
+ const {Registration} = await import('./Registration');
315
+ const registrationIds: string[] = Formatter.uniqueArray(items.map(p => p.registrationId).filter(id => id !== null)) as any
316
+ await Registration.updateOutstandingBalance(registrationIds, organizationId)
317
+ }
318
+
325
319
  static async loadPayments(items: BalanceItem[]) {
326
320
  if (items.length == 0) {
327
321
  return {balanceItemPayments: [], payments: []}
@@ -426,7 +426,7 @@ export class DocumentTemplate extends Model {
426
426
 
427
427
  for (const groupDefinition of this.privateSettings.groups) {
428
428
  // Get the registrations for this group with this cycle
429
- const registrations = await Member.getRegistrationWithMembersForGroup(groupDefinition.groupId, groupDefinition.cycle)
429
+ const registrations = await Member.getRegistrationWithMembersForGroup(groupDefinition.groupId)
430
430
 
431
431
  for (const registration of registrations) {
432
432
  const document = await this.generateForRegistration(registration)
@@ -1,16 +1,16 @@
1
1
  import { column, Model } from '@simonbackx/simple-database';
2
- import { EditorSmartButton, EditorSmartVariable, EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientFilterType, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailStatus, Email as EmailStruct, LimitedFilteredRequest, PaginatedResponse, Recipient, SortItemDirection } from '@stamhoofd/structures';
2
+ import { EditorSmartButton, EditorSmartVariable, EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientFilterType, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailStatus, Email as EmailStruct, getExampleRecipient, LimitedFilteredRequest, PaginatedResponse, Recipient, SortItemDirection } from '@stamhoofd/structures';
3
3
  import { v4 as uuidv4 } from "uuid";
4
4
 
5
5
  import { AnyDecoder, ArrayDecoder } from '@simonbackx/simple-encoding';
6
6
  import { SimpleError } from '@simonbackx/simple-errors';
7
+ import { Email as EmailClass } from "@stamhoofd/email";
7
8
  import { QueueHandler } from '@stamhoofd/queues';
8
9
  import { SQL, SQLWhereSign } from '@stamhoofd/sql';
9
- import { EmailRecipient } from './EmailRecipient';
10
+ import { Formatter } from '@stamhoofd/utility';
10
11
  import { getEmailBuilder } from '../helpers/EmailBuilder';
12
+ import { EmailRecipient } from './EmailRecipient';
11
13
  import { Organization } from './Organization';
12
- import { Formatter } from '@stamhoofd/utility';
13
- import { Email as EmailClass } from "@stamhoofd/email";
14
14
 
15
15
  export class Email extends Model {
16
16
  static table = "emails";
@@ -497,7 +497,7 @@ export class Email extends Model {
497
497
  let request: LimitedFilteredRequest|null = new LimitedFilteredRequest({
498
498
  filter: subfilter.filter,
499
499
  sort: [{key: 'id', order: SortItemDirection.ASC}],
500
- limit: 1,
500
+ limit: 10,
501
501
  search: subfilter.search,
502
502
  })
503
503
 
@@ -519,7 +519,7 @@ export class Email extends Model {
519
519
  return;
520
520
  }
521
521
 
522
- request = response.next ?? null;
522
+ request = null;
523
523
  }
524
524
  }
525
525
 
@@ -541,16 +541,27 @@ export class Email extends Model {
541
541
  .where(SQL.column('emailId'), this.id)
542
542
  .first(false);
543
543
 
544
- const recipientRow = recipient ? EmailRecipient.fromRow(recipient[EmailRecipient.table]) : null;
545
-
546
- const smartVariables = recipientRow ? EditorSmartVariable.forRecipient(recipientRow) : []
547
- const smartButtons = recipientRow ? EditorSmartButton.forRecipient(recipientRow) : []
548
-
549
- return EmailPreview.create({
550
- ...this,
551
- exampleRecipient: recipientRow ? (recipientRow.getStructure()) : null,
552
- smartVariables,
553
- smartButtons
554
- })
544
+ let recipientRow: EmailRecipientStruct | undefined;
545
+
546
+ if(recipient) {
547
+ const emailRecipient = EmailRecipient.fromRow(recipient[EmailRecipient.table]);
548
+ if(emailRecipient) {
549
+ recipientRow = emailRecipient.getStructure();
550
+ }
551
+ }
552
+
553
+ if(!recipientRow) {
554
+ recipientRow = getExampleRecipient();
555
+ }
556
+
557
+ const smartVariables = recipientRow ? EditorSmartVariable.forRecipient(recipientRow) : []
558
+ const smartButtons = recipientRow ? EditorSmartButton.forRecipient(recipientRow) : []
559
+
560
+ return EmailPreview.create({
561
+ ...this,
562
+ exampleRecipient: recipientRow,
563
+ smartVariables,
564
+ smartButtons
565
+ })
555
566
  }
556
567
  }
@@ -1,6 +1,6 @@
1
1
  import { column, Model } from "@simonbackx/simple-database";
2
2
  import { AnyDecoder } from "@simonbackx/simple-encoding";
3
- import { EmailRecipientFilterType, EmailTemplate as EmailTemplateStruct, EmailTemplateType } from "@stamhoofd/structures";
3
+ import { EmailTemplate as EmailTemplateStruct, EmailTemplateType } from "@stamhoofd/structures";
4
4
  import { v4 as uuidv4 } from "uuid";
5
5
 
6
6
 
@@ -55,6 +55,9 @@ export class Event extends Model {
55
55
  })
56
56
  updatedAt: Date
57
57
 
58
+ /**
59
+ * @deprecated
60
+ */
58
61
  getStructure(group?: Group|null) {
59
62
  return EventStruct.create({
60
63
  ...this,
@@ -62,10 +65,38 @@ export class Event extends Model {
62
65
  })
63
66
  }
64
67
 
68
+ /**
69
+ * @deprecated
70
+ */
65
71
  getPrivateStructure(group?: Group|null) {
66
72
  return EventStruct.create({
67
73
  ...this,
68
74
  group: group ? group.getPrivateStructure() : null
69
75
  })
70
76
  }
77
+
78
+ async syncGroupRequirements(group: Group|null) {
79
+ if (!group) {
80
+ return;
81
+ }
82
+
83
+ group.settings.requireDefaultAgeGroupIds = this.meta.defaultAgeGroupIds ?? []
84
+ group.settings.requireGroupIds = this.meta.groups?.map(g => g.id) ?? []
85
+
86
+ if (this.organizationId) {
87
+ // This is a not-national event, so require the organization
88
+ group.settings.requireOrganizationIds = [this.organizationId]
89
+ group.settings.requireOrganizationTags = []
90
+ group.settings.requirePlatformMembershipOn = null
91
+ } else {
92
+ group.settings.requireOrganizationTags = this.meta.organizationTagIds ?? []
93
+
94
+ // Everyone can register
95
+ group.settings.requireOrganizationIds = []
96
+
97
+ // But they need a valid platform membership
98
+ group.settings.requirePlatformMembershipOn = this.endDate
99
+ }
100
+ await group.save()
101
+ }
71
102
  }