@stamhoofd/models 2.25.2 → 2.27.2

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.
package/LICENSE CHANGED
@@ -1,4 +1,8 @@
1
- GNU AFFERO GENERAL PUBLIC LICENSE
1
+ This license applies to the entire repository except for subfolders that
2
+ have their own license file. In such cases, the license file in the
3
+ subfolder takes precedence.
4
+
5
+ GNU AFFERO GENERAL PUBLIC LICENSE
2
6
  Version 3, 19 November 2007
3
7
 
4
8
  Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
@@ -658,4 +662,4 @@ specific requirements.
658
662
  You should also get your employer (if you work as a programmer) or school,
659
663
  if any, to sign a "copyright disclaimer" for the program, if necessary.
660
664
  For more information on this, and how to apply and follow the GNU AGPL, see
661
- <https://www.gnu.org/licenses/>.
665
+ <https://www.gnu.org/licenses/>.
@@ -1 +1 @@
1
- {"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhI,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,sBAAsB,IAAI,4BAA4B,EAAc,MAAM,uBAAuB,CAAC;AAMvJ,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAmC,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1G,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG;IAC3C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,CAAC,YAAY,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,qBAAa,MAAO,SAAQ,KAAK;IAC7B,MAAM,CAAC,KAAK,SAAY;IAQxB,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IAQnC,SAAS,EAAE,MAAM,CAAA;IAMjB,QAAQ,EAAE,MAAM,CAAA;IAShB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IASvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAG3B,OAAO,EAAE,aAAa,CAAA;IAEtB;;OAEG;IAEH,kBAAkB,SAAI;IAYtB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,MAAM,CAAC,aAAa,2DAA2E;IAG/F,MAAM,CAAC,KAAK,uDAAiD;IAE7D;;OAEG;WACU,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAItF;;OAEG;WACU,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK;IAmCjE;;OAEG;WACU,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoC9F;;OAEG;WACU,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiClG;;MAEE;WACU,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAwCtG;;MAEE;WACU,YAAY,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgE/E;;OAEG;WACU,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAmBtF;;MAEE;WACU,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAoB9F,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,EAAE,eAAe,GAAE,IAAI,GAAG,OAAc;IASnG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC,GAAG,4BAA4B;IAYhJ,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM;WA6BhC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,UAAQ;YAqIhD,kBAAkB;IA4B1B,kBAAkB,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqFzE,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhI,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,sBAAsB,IAAI,4BAA4B,EAAc,MAAM,uBAAuB,CAAC;AAMvJ,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAmC,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1G,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG;IAC3C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,CAAC,YAAY,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,qBAAa,MAAO,SAAQ,KAAK;IAC7B,MAAM,CAAC,KAAK,SAAY;IAQxB,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IAQnC,SAAS,EAAE,MAAM,CAAA;IAMjB,QAAQ,EAAE,MAAM,CAAA;IAShB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IASvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAG3B,OAAO,EAAE,aAAa,CAAA;IAEtB;;OAEG;IAEH,kBAAkB,SAAI;IAYtB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,MAAM,CAAC,aAAa,2DAA2E;IAG/F,MAAM,CAAC,KAAK,uDAAiD;IAE7D;;OAEG;WACU,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAItF;;OAEG;WACU,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK;IAmCjE;;OAEG;WACU,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoC9F;;OAEG;WACU,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiClG;;MAEE;WACU,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAwCtG;;MAEE;WACU,YAAY,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgE/E;;OAEG;WACU,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAmBtF;;MAEE;WACU,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAoB9F,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,EAAE,eAAe,GAAE,IAAI,GAAG,OAAc;IASnG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC,GAAG,4BAA4B;IAYhJ,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM;WA6BhC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,UAAQ;YA8KhD,kBAAkB;IA4B1B,kBAAkB,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqFzE,iBAAiB;CAG1B"}
@@ -279,7 +279,9 @@ class Member extends simple_database_1.Model {
279
279
  }
280
280
  static async updateMembershipsForId(id, silent = false) {
281
281
  return await queues_1.QueueHandler.schedule('updateMemberships-' + id, async function () {
282
- console.log('update memberships for id ', id);
282
+ if (!silent) {
283
+ console.log('update memberships for id ', id);
284
+ }
283
285
  const me = await Member.getWithRegistrations(id);
284
286
  if (!me) {
285
287
  if (!silent) {
@@ -301,6 +303,10 @@ class Member extends simple_database_1.Model {
301
303
  if (!defaultMembership) {
302
304
  return [];
303
305
  }
306
+ if (defaultMembership.periods.get(platform.periodId) === undefined) {
307
+ console.warn('Found default membership without period configuration', defaultMembership.id, platform.periodId);
308
+ return [];
309
+ }
304
310
  return [{
305
311
  registration: r,
306
312
  membership: defaultMembership,
@@ -329,14 +335,31 @@ class Member extends simple_database_1.Model {
329
335
  }
330
336
  if (activeMembershipsUndeletable.length) {
331
337
  // Skip automatic additions
332
- if (!silent) {
333
- console.log('Skipping automatic membership for: ' + me.id, ' - already has active memberships');
338
+ for (const m of activeMembershipsUndeletable) {
339
+ const beforePrice = m.price;
340
+ await m.calculatePrice(me);
341
+ if (beforePrice !== m.price) {
342
+ await m.save();
343
+ console.log('Updated price for membership: ' + me.id + ' - membership ' + m.id);
344
+ }
345
+ else if (!silent) {
346
+ console.log('Skipping automatic membership for: ' + me.id, ' - already has active memberships - no price change');
347
+ }
334
348
  }
335
349
  return;
336
350
  }
337
351
  // Add the cheapest available membership
338
- const cheapestMembership = defaultMemberships.sort(({ membership: a, registration: ar }, { membership: b, registration: br }) => {
339
- const diff = a.getPrice(platform.periodId, now).price - b.getPrice(platform.periodId, now).price;
352
+ const organizations = await _1.Organization.getByIDs(...utility_1.Formatter.uniqueArray(defaultMemberships.map(m => m.registration.organizationId)));
353
+ const defaultMembershipsWithOrganization = defaultMemberships.map(({ membership, registration }) => {
354
+ const organizationId = registration.organizationId;
355
+ const organization = organizations.find(o => o.id === organizationId);
356
+ return { membership, registration, organization };
357
+ });
358
+ const shouldApplyReducedPrice = me.details.shouldApplyReducedPrice;
359
+ const cheapestMembership = defaultMembershipsWithOrganization.sort(({ membership: a, registration: ar, organization: ao }, { membership: b, registration: br, organization: bo }) => {
360
+ const tagIdsA = ao?.meta.tags ?? [];
361
+ const tagIdsB = bo?.meta.tags ?? [];
362
+ const diff = a.getPrice(platform.periodId, now, tagIdsA, shouldApplyReducedPrice) - b.getPrice(platform.periodId, now, tagIdsB, shouldApplyReducedPrice);
340
363
  if (diff == 0) {
341
364
  return utility_1.Sorter.byDateValue(br.createdAt, ar.createdAt);
342
365
  }
@@ -346,11 +369,20 @@ class Member extends simple_database_1.Model {
346
369
  throw new Error("No membership found");
347
370
  }
348
371
  // Check if already have the same membership
349
- if (activeMemberships.find(m => m.membershipTypeId == cheapestMembership.membership.id)) {
350
- if (!silent) {
351
- console.log('Skipping automatic membership for: ' + me.id, ' - already has this membership');
372
+ for (const m of activeMemberships) {
373
+ if (m.membershipTypeId === cheapestMembership.membership.id) {
374
+ // Update the price of this active membership (could have changed)
375
+ const beforePrice = m.price;
376
+ await m.calculatePrice(me);
377
+ if (beforePrice !== m.price) {
378
+ await m.save();
379
+ console.log('Updated price for membership: ' + me.id + ' - membership ' + m.id);
380
+ }
381
+ else if (!silent) {
382
+ console.log('Skipping automatic membership for: ' + me.id, ' - already has this membership - no price change');
383
+ }
384
+ return;
352
385
  }
353
- return;
354
386
  }
355
387
  const periodConfig = cheapestMembership.membership.periods.get(platform.periodId);
356
388
  if (!periodConfig) {
@@ -380,7 +412,7 @@ class Member extends simple_database_1.Model {
380
412
  return;
381
413
  }
382
414
  }
383
- await membership.calculatePrice();
415
+ await membership.calculatePrice(me);
384
416
  await membership.save();
385
417
  // This reasoning allows us to replace an existing membership with a cheaper one (not date based ones, but type based ones)
386
418
  for (const toDelete of activeMemberships) {
@@ -1 +1 @@
1
- {"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Model } from "@simonbackx/simple-database";
2
2
  import { SQLSelect } from "@stamhoofd/sql";
3
+ import { Member } from "./Member";
3
4
  export declare class MemberPlatformMembership extends Model {
4
5
  static table: string;
5
6
  id: string;
@@ -21,7 +22,7 @@ export declare class MemberPlatformMembership extends Model {
21
22
  updatedAt: Date;
22
23
  canDelete(): boolean;
23
24
  delete(): Promise<void>;
24
- calculatePrice(): Promise<void>;
25
+ calculatePrice(member: Member): Promise<void>;
25
26
  /**
26
27
  * Experimental: needs to move to library
27
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembership.d.ts","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AAMpF,OAAO,EAAO,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,MAAM,CAAC,KAAK,SAAiC;IAQ7C,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,KAAK,SAAK;IAEV;;OAEG;IAEH,SAAS,UAAQ;IAKjB,SAAS,EAAE,IAAI,GAAC,IAAI,CAAO;IAY3B,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,SAAS;IAOT,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,cAAc;IAiDpB;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
1
+ {"version":3,"file":"MemberPlatformMembership.d.ts","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AAEpF,OAAO,EAAO,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,MAAM,CAAC,KAAK,SAAiC;IAQ7C,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,KAAK,SAAK;IAEV;;OAEG;IAEH,SAAS,UAAQ;IAKjB,SAAS,EAAE,IAAI,GAAC,IAAI,CAAO;IAY3B,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,SAAS;IAOT,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,cAAc,CAAC,MAAM,EAAE,MAAM;IAmEnC;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemberPlatformMembership = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const simple_database_1 = require("@simonbackx/simple-database");
6
- const uuid_1 = require("uuid");
7
- const Platform_1 = require("./Platform");
8
- const structures_1 = require("@stamhoofd/structures");
9
6
  const simple_errors_1 = require("@simonbackx/simple-errors");
10
- const utility_1 = require("@stamhoofd/utility");
11
7
  const sql_1 = require("@stamhoofd/sql");
8
+ const structures_1 = require("@stamhoofd/structures");
9
+ const utility_1 = require("@stamhoofd/utility");
10
+ const uuid_1 = require("uuid");
11
+ const Organization_1 = require("./Organization");
12
+ const Platform_1 = require("./Platform");
13
+ const BalanceItem_1 = require("./BalanceItem");
12
14
  class MemberPlatformMembership extends simple_database_1.Model {
13
15
  static table = "member_platform_memberships";
14
16
  // Columns
@@ -38,10 +40,7 @@ class MemberPlatformMembership extends simple_database_1.Model {
38
40
  delete() {
39
41
  throw new Error('Cannot delete a membership. Use the deletedAt column.');
40
42
  }
41
- async calculatePrice() {
42
- if (this.balanceItemId) {
43
- return;
44
- }
43
+ async calculatePrice(member) {
45
44
  const platform = await Platform_1.Platform.getShared();
46
45
  const membershipType = platform.config.membershipTypes.find(m => m.id == this.membershipTypeId);
47
46
  if (!membershipType) {
@@ -59,7 +58,18 @@ class MemberPlatformMembership extends simple_database_1.Model {
59
58
  human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar'
60
59
  });
61
60
  }
62
- const priceConfig = periodConfig.getPriceForDate(membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
61
+ const organization = await Organization_1.Organization.getByID(this.organizationId);
62
+ if (!organization) {
63
+ throw new simple_errors_1.SimpleError({
64
+ //todo
65
+ code: 'not_found',
66
+ message: 'Organization not found',
67
+ human: 'De organisatie is niet gevonden'
68
+ });
69
+ }
70
+ const tagIds = organization.meta.tags;
71
+ const shouldApplyReducedPrice = member.details.shouldApplyReducedPrice;
72
+ const priceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
63
73
  if (membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days) {
64
74
  // Make sure time is equal between start and end date
65
75
  let startBrussels = utility_1.Formatter.luxon(this.startDate);
@@ -70,14 +80,22 @@ class MemberPlatformMembership extends simple_database_1.Model {
70
80
  this.endDate = endBrussels.toJSDate();
71
81
  this.expireDate = null;
72
82
  const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
73
- this.price = priceConfig.pricePerDay * days + priceConfig.price;
83
+ this.price = priceConfig.calculatePrice(tagIds, shouldApplyReducedPrice, days);
74
84
  }
75
85
  else {
76
- this.price = priceConfig.price;
86
+ this.price = priceConfig.getBasePrice(tagIds, shouldApplyReducedPrice);
77
87
  this.startDate = periodConfig.startDate;
78
88
  this.endDate = periodConfig.endDate;
79
89
  this.expireDate = periodConfig.expireDate;
80
90
  }
91
+ if (this.balanceItemId) {
92
+ // Also update the balance item
93
+ const balanceItem = await BalanceItem_1.BalanceItem.getByID(this.balanceItemId);
94
+ if (balanceItem) {
95
+ balanceItem.unitPrice = this.price;
96
+ await balanceItem.save();
97
+ }
98
+ }
81
99
  }
82
100
  /**
83
101
  * Experimental: needs to move to library
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembership.js","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemberPlatformMembership.js","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Model } from '@simonbackx/simple-database';
2
- import { RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
2
+ import { RegistrationPeriodBase, RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
3
3
  export declare class RegistrationPeriod extends Model {
4
4
  static table: string;
5
5
  id: string;
@@ -10,6 +10,7 @@ export declare class RegistrationPeriod extends Model {
10
10
  locked: boolean;
11
11
  createdAt: Date;
12
12
  updatedAt: Date;
13
+ getBaseStructure(): RegistrationPeriodBase;
13
14
  getStructure(): RegistrationPeriodStruct;
14
15
  static getByDate(date: Date): Promise<RegistrationPeriod | null>;
15
16
  }
@@ -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,0BAA0B,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGnH,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,CAAA;IAGf,OAAO,EAAE,IAAI,CAAA;IAGb,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,MAAM,UAAQ;IAYd,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,YAAY;WAIC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAC,IAAI,CAAC;CAYvE"}
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,CAAA;IAGf,OAAO,EAAE,IAAI,CAAA;IAGb,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,MAAM,UAAQ;IAYd,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,gBAAgB;IAIhB,YAAY;WAIC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAC,IAAI,CAAC;CAYvE"}
@@ -16,6 +16,9 @@ class RegistrationPeriod extends simple_database_1.Model {
16
16
  locked = false;
17
17
  createdAt;
18
18
  updatedAt;
19
+ getBaseStructure() {
20
+ return structures_1.RegistrationPeriodBase.create(this);
21
+ }
19
22
  getStructure() {
20
23
  return structures_1.RegistrationPeriod.create(this);
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RegistrationPeriod.js","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":";;;;AAAA,iEAA4D;AAC5D,wCAAmD;AACnD,sDAAmH;AACnH,+BAAoC;AAEpC,MAAa,kBAAmB,SAAQ,uBAAK;IACzC,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC;IAOtC,EAAE,CAAU;IAGZ,cAAc,GAAkB,IAAI,CAAC;IAGrC,SAAS,CAAM;IAGf,OAAO,CAAM;IAGb,QAAQ,CAA6B;IAGrC,MAAM,GAAG,KAAK,CAAA;IAYd,SAAS,CAAM;IAUf,SAAS,CAAM;IAEf,YAAY;QACR,OAAO,+BAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChD,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,CAAA;IACjE,CAAC;;AA9DL,gDA+DC;AAvDG;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;qDACd;AAGf;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;mDAChB;AAGb;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;kDACd;AAYd;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;qDACa;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;qDACa"}
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,CAAM;IAGf,OAAO,CAAM;IAGb,QAAQ,CAA6B;IAGrC,MAAM,GAAG,KAAK,CAAA;IAYd,SAAS,CAAM;IAUf,SAAS,CAAM;IAEf,gBAAgB;QACZ,OAAO,mCAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,YAAY;QACR,OAAO,+BAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChD,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,CAAA;IACjE,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;qDACd;AAGf;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;mDAChB;AAGb;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;kDACd;AAYd;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;qDACa;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;qDACa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.25.2",
3
+ "version": "2.27.2",
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": "2eda2d1bc9aa4ea061b002d265a5615a87eeef8b"
32
+ "gitHead": "4c7804970b02fa339d884ace0105a6efc6dab179"
33
33
  }
@@ -425,7 +425,9 @@ export class Member extends Model {
425
425
 
426
426
  static async updateMembershipsForId(id: string, silent = false) {
427
427
  return await QueueHandler.schedule('updateMemberships-' + id, async function (this: undefined) {
428
- console.log('update memberships for id ', id);
428
+ if (!silent) {
429
+ console.log('update memberships for id ', id);
430
+ }
429
431
 
430
432
  const me = await Member.getWithRegistrations(id)
431
433
  if (!me) {
@@ -451,11 +453,17 @@ export class Member extends Model {
451
453
  return []
452
454
  }
453
455
 
456
+ if (defaultMembership.periods.get(platform.periodId) === undefined) {
457
+ console.warn('Found default membership without period configuration', defaultMembership.id, platform.periodId)
458
+ return []
459
+ }
460
+
454
461
  return [{
455
462
  registration: r,
456
463
  membership: defaultMembership,
457
464
  }]
458
- })
465
+ });
466
+
459
467
  // Get active memberships for this member that
460
468
  const memberships = await MemberPlatformMembership.where({memberId: me.id, periodId: platform.periodId })
461
469
  const now = new Date()
@@ -483,15 +491,37 @@ export class Member extends Model {
483
491
 
484
492
  if (activeMembershipsUndeletable.length) {
485
493
  // Skip automatic additions
486
- if (!silent) {
487
- console.log('Skipping automatic membership for: ' + me.id, ' - already has active memberships')
494
+ for (const m of activeMembershipsUndeletable) {
495
+ const beforePrice = m.price
496
+
497
+ await m.calculatePrice(me)
498
+
499
+ if (beforePrice !== m.price) {
500
+ await m.save()
501
+
502
+ console.log('Updated price for membership: ' + me.id + ' - membership ' + m.id)
503
+ } else if (!silent) {
504
+ console.log('Skipping automatic membership for: ' + me.id, ' - already has active memberships - no price change')
505
+ }
488
506
  }
489
507
  return
490
508
  }
491
509
 
492
510
  // Add the cheapest available membership
493
- const cheapestMembership = defaultMemberships.sort(({membership: a, registration: ar}, {membership: b, registration: br}) => {
494
- const diff = a.getPrice(platform.periodId, now)!.price - b.getPrice(platform.periodId, now)!.price
511
+ const organizations = await Organization.getByIDs(...Formatter.uniqueArray(defaultMemberships.map(m => m.registration.organizationId)));
512
+
513
+ const defaultMembershipsWithOrganization = defaultMemberships.map(({membership, registration}) => {
514
+ const organizationId = registration.organizationId;
515
+ const organization = organizations.find(o => o.id === organizationId);
516
+ return {membership, registration, organization}
517
+ });
518
+
519
+ const shouldApplyReducedPrice = me.details.shouldApplyReducedPrice;
520
+
521
+ const cheapestMembership = defaultMembershipsWithOrganization.sort(({membership: a, registration: ar, organization: ao}, {membership: b, registration: br, organization: bo}) => {
522
+ const tagIdsA = ao?.meta.tags ?? [];
523
+ const tagIdsB = bo?.meta.tags ?? [];
524
+ const diff = a.getPrice(platform.periodId, now, tagIdsA, shouldApplyReducedPrice)! - b.getPrice(platform.periodId, now, tagIdsB, shouldApplyReducedPrice)!
495
525
  if (diff == 0) {
496
526
  return Sorter.byDateValue(br.createdAt, ar.createdAt)
497
527
  }
@@ -502,11 +532,22 @@ export class Member extends Model {
502
532
  }
503
533
 
504
534
  // Check if already have the same membership
505
- if (activeMemberships.find(m => m.membershipTypeId == cheapestMembership.membership.id)) {
506
- if (!silent) {
507
- console.log('Skipping automatic membership for: ' + me.id, ' - already has this membership')
535
+ for (const m of activeMemberships) {
536
+ if (m.membershipTypeId === cheapestMembership.membership.id) {
537
+ // Update the price of this active membership (could have changed)
538
+ const beforePrice = m.price
539
+
540
+ await m.calculatePrice(me)
541
+
542
+ if (beforePrice !== m.price) {
543
+ await m.save()
544
+
545
+ console.log('Updated price for membership: ' + me.id + ' - membership ' + m.id)
546
+ } else if (!silent) {
547
+ console.log('Skipping automatic membership for: ' + me.id, ' - already has this membership - no price change')
548
+ }
549
+ return
508
550
  }
509
- return
510
551
  }
511
552
 
512
553
  const periodConfig = cheapestMembership.membership.periods.get(platform.periodId)
@@ -540,7 +581,7 @@ export class Member extends Model {
540
581
  }
541
582
  }
542
583
 
543
- await membership.calculatePrice()
584
+ await membership.calculatePrice(me)
544
585
  await membership.save()
545
586
 
546
587
  // This reasoning allows us to replace an existing membership with a cheaper one (not date based ones, but type based ones)
@@ -1,11 +1,14 @@
1
1
 
2
2
  import { column, Model, SQLResultNamespacedRow } from "@simonbackx/simple-database";
3
- import { v4 as uuidv4 } from "uuid";
4
- import { Platform } from "./Platform";
5
- import { PlatformMembershipTypeBehaviour } from "@stamhoofd/structures";
6
3
  import { SimpleError } from "@simonbackx/simple-errors";
7
- import { Formatter } from "@stamhoofd/utility";
8
4
  import { SQL, SQLSelect } from "@stamhoofd/sql";
5
+ import { PlatformMembershipTypeBehaviour } from "@stamhoofd/structures";
6
+ import { Formatter } from "@stamhoofd/utility";
7
+ import { v4 as uuidv4 } from "uuid";
8
+ import { Member } from "./Member";
9
+ import { Organization } from "./Organization";
10
+ import { Platform } from "./Platform";
11
+ import { BalanceItem } from "./BalanceItem";
9
12
 
10
13
  export class MemberPlatformMembership extends Model {
11
14
  static table = "member_platform_memberships";
@@ -89,11 +92,7 @@ export class MemberPlatformMembership extends Model {
89
92
  throw new Error('Cannot delete a membership. Use the deletedAt column.');
90
93
  }
91
94
 
92
- async calculatePrice() {
93
- if (this.balanceItemId) {
94
- return;
95
- }
96
-
95
+ async calculatePrice(member: Member) {
97
96
  const platform = await Platform.getShared();
98
97
  const membershipType = platform.config.membershipTypes.find(m => m.id == this.membershipTypeId);
99
98
 
@@ -115,7 +114,20 @@ export class MemberPlatformMembership extends Model {
115
114
  })
116
115
  }
117
116
 
118
- const priceConfig = periodConfig.getPriceForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
117
+ const organization = await Organization.getByID(this.organizationId);
118
+ if(!organization) {
119
+ throw new SimpleError({
120
+ //todo
121
+ code: 'not_found',
122
+ message: 'Organization not found',
123
+ human: 'De organisatie is niet gevonden'
124
+ })
125
+ }
126
+
127
+ const tagIds = organization.meta.tags;
128
+ const shouldApplyReducedPrice = member.details.shouldApplyReducedPrice;
129
+
130
+ const priceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
119
131
 
120
132
  if (membershipType.behaviour === PlatformMembershipTypeBehaviour.Days) {
121
133
  // Make sure time is equal between start and end date
@@ -129,13 +141,22 @@ export class MemberPlatformMembership extends Model {
129
141
  this.expireDate = null
130
142
 
131
143
  const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
132
- this.price = priceConfig.pricePerDay * days + priceConfig.price;
144
+ this.price = priceConfig.calculatePrice(tagIds, shouldApplyReducedPrice, days);
133
145
  } else {
134
- this.price = priceConfig.price;
146
+ this.price = priceConfig.getBasePrice(tagIds, shouldApplyReducedPrice);
135
147
  this.startDate = periodConfig.startDate;
136
148
  this.endDate = periodConfig.endDate;
137
149
  this.expireDate = periodConfig.expireDate;
138
150
  }
151
+
152
+ if (this.balanceItemId) {
153
+ // Also update the balance item
154
+ const balanceItem = await BalanceItem.getByID(this.balanceItemId);
155
+ if (balanceItem) {
156
+ balanceItem.unitPrice = this.price;
157
+ await balanceItem.save();
158
+ }
159
+ }
139
160
  }
140
161
 
141
162
  /**
@@ -1,6 +1,6 @@
1
1
  import { column, Model } from '@simonbackx/simple-database';
2
2
  import { SQL, SQLWhereSign } from '@stamhoofd/sql';
3
- import { RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
3
+ import { RegistrationPeriodBase, RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
4
4
  import { v4 as uuidv4 } from "uuid";
5
5
 
6
6
  export class RegistrationPeriod extends Model {
@@ -50,6 +50,10 @@ export class RegistrationPeriod extends Model {
50
50
  })
51
51
  updatedAt: Date
52
52
 
53
+ getBaseStructure() {
54
+ return RegistrationPeriodBase.create(this)
55
+ }
56
+
53
57
  getStructure() {
54
58
  return RegistrationPeriodStruct.create(this)
55
59
  }