@stamhoofd/models 2.122.0 → 2.122.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.
@@ -2,7 +2,7 @@ import { Factory } from '@simonbackx/simple-database';
2
2
  import type { BundleDiscount, GroupPriceDiscount, GroupType } from '@stamhoofd/structures';
3
3
  import { TranslatedString } from '@stamhoofd/structures';
4
4
  import { Group } from '../models/Group.js';
5
- import type { RegistrationPeriod } from '../models/index.js';
5
+ import { RegistrationPeriod } from '../models/index.js';
6
6
  import type { Organization } from '../models/Organization.js';
7
7
  declare class Options {
8
8
  organization?: Organization;
@@ -1 +1 @@
1
- {"version":3,"file":"GroupFactory.d.ts","sourceRoot":"","sources":["../../src/factories/GroupFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAgF,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGvI,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,cAAM,OAAO;IACT,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAAC;IACtF,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,qBAAa,YAAa,SAAQ,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;CAuEjC"}
1
+ {"version":3,"file":"GroupFactory.d.ts","sourceRoot":"","sources":["../../src/factories/GroupFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAgF,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGvI,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,cAAM,OAAO;IACT,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAAC;IACtF,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,qBAAa,YAAa,SAAQ,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;CA+EjC"}
@@ -2,6 +2,7 @@ import { Factory } from '@simonbackx/simple-database';
2
2
  import { BundleDiscountGroupPriceSettings, GroupPrice, GroupSettings, ReduceablePrice, TranslatedString } from '@stamhoofd/structures';
3
3
  import { SimpleError } from '@simonbackx/simple-errors';
4
4
  import { Group } from '../models/Group.js';
5
+ import { RegistrationPeriod } from '../models/index.js';
5
6
  import { OrganizationFactory } from './OrganizationFactory.js';
6
7
  class Options {
7
8
  organization;
@@ -24,6 +25,7 @@ export class GroupFactory extends Factory {
24
25
  const organization = this.options.organization ?? await new OrganizationFactory({}).create();
25
26
  const group = new Group();
26
27
  group.organizationId = organization.id;
28
+ let period = undefined;
27
29
  if (this.options.period) {
28
30
  if (STAMHOOFD.userMode === 'organization' && this.options.period.organizationId !== group.organizationId) {
29
31
  throw new SimpleError({
@@ -33,9 +35,14 @@ export class GroupFactory extends Factory {
33
35
  });
34
36
  }
35
37
  group.periodId = this.options.period.id;
38
+ period = this.options.period;
36
39
  }
37
40
  else {
38
41
  group.periodId = organization.periodId;
42
+ const organizationPeriod = await RegistrationPeriod.getByID(organization.periodId);
43
+ if (organizationPeriod) {
44
+ period = organizationPeriod;
45
+ }
39
46
  }
40
47
  group.waitingListId = this.options.waitingListId ?? null;
41
48
  group.settings = GroupSettings.create({
@@ -54,6 +61,7 @@ export class GroupFactory extends Factory {
54
61
  }),
55
62
  ],
56
63
  maxMembers: this.options.maxMembers === undefined ? null : this.options.maxMembers,
64
+ period: period ? period.getBaseStructure() : undefined,
57
65
  });
58
66
  if (this.options.bundleDiscount) {
59
67
  group.settings.prices[0].bundleDiscounts.set(this.options.bundleDiscount.id, BundleDiscountGroupPriceSettings.create({
@@ -1 +1 @@
1
- {"version":3,"file":"GroupFactory.js","sourceRoot":"","sources":["../../src/factories/GroupFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,gCAAgC,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEvI,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO;IACT,YAAY,CAAgB;IAC5B,KAAK,CAAU;IACf,YAAY,CAAU;IACtB,KAAK,CAAU;IACf,IAAI,CAAa;IACjB,UAAU,CAAiB;IAC3B,MAAM,CAAsB;IAC5B,aAAa,CAAU;IAEvB;;OAEG;IACH,cAAc,CAAkB;IAChC,eAAe,CAAuE;IACtF,IAAI,CAAoB;CAC3B;AAED,MAAM,OAAO,YAAa,SAAQ,OAAuB;IACrD,KAAK,CAAC,MAAM;QACR,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAE7F,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvG,MAAM,IAAI,WAAW,CAAC;oBAClB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,sCAAsC;oBAC/C,UAAU,EAAE,GAAG;iBAClB,CAAC,CAAC;YACP,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QAEzD,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChF,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrD,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACnD,qBAAqB,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACjE,mBAAmB,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC/D,MAAM,EAAE;gBACJ,UAAU,CAAC,MAAM,CAAC;oBACd,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;wBAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM;wBACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI;qBAClD,CAAC;oBACF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;iBACpC,CAAC;aACL;YACD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;SACrF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC9B,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,gCAAgC,CAAC,MAAM,CAAC;gBACjH,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI;aACzC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/B,IAAI,GAAqD,CAAC;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC9C,GAAG,GAAG,IAAI,GAAG,EAA+C,CAAC;gBAC7D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACvC,CAAC;YAED,KAAK,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,gCAAgC,CAAC,MAAM,CAAC;oBAC9F,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,eAAe;iBAClB,CAAC,CAAC,CAAC;YACR,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"GroupFactory.js","sourceRoot":"","sources":["../../src/factories/GroupFactory.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.122.0",
3
+ "version": "2.122.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@simonbackx/simple-database": "1.37.1",
45
- "@stamhoofd/test-utils": "2.122.0",
45
+ "@stamhoofd/test-utils": "2.122.2",
46
46
  "@types/luxon": "3.7.1",
47
47
  "@types/uuid": "8.3.4",
48
48
  "vitest": "4.1.8"
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "3c022b7d7801fb105acfaa401432a8d029abda61"
64
+ "gitHead": "e7ddea427a321328588b839e475266a6364152e3"
65
65
  }
@@ -4,7 +4,7 @@ import { BundleDiscountGroupPriceSettings, GroupPrice, GroupSettings, Reduceable
4
4
 
5
5
  import { SimpleError } from '@simonbackx/simple-errors';
6
6
  import { Group } from '../models/Group.js';
7
- import type { RegistrationPeriod } from '../models/index.js';
7
+ import { RegistrationPeriod } from '../models/index.js';
8
8
  import type { Organization } from '../models/Organization.js';
9
9
  import { OrganizationFactory } from './OrganizationFactory.js';
10
10
 
@@ -33,6 +33,8 @@ export class GroupFactory extends Factory<Options, Group> {
33
33
  const group = new Group();
34
34
  group.organizationId = organization.id;
35
35
 
36
+ let period: RegistrationPeriod | undefined = undefined;
37
+
36
38
  if (this.options.period) {
37
39
  if (STAMHOOFD.userMode === 'organization' && this.options.period.organizationId !== group.organizationId) {
38
40
  throw new SimpleError({
@@ -42,8 +44,13 @@ export class GroupFactory extends Factory<Options, Group> {
42
44
  });
43
45
  }
44
46
  group.periodId = this.options.period.id;
47
+ period = this.options.period;
45
48
  } else {
46
49
  group.periodId = organization.periodId;
50
+ const organizationPeriod = await RegistrationPeriod.getByID(organization.periodId);
51
+ if (organizationPeriod) {
52
+ period = organizationPeriod;
53
+ }
47
54
  }
48
55
 
49
56
  group.waitingListId = this.options.waitingListId ?? null;
@@ -64,6 +71,7 @@ export class GroupFactory extends Factory<Options, Group> {
64
71
  }),
65
72
  ],
66
73
  maxMembers: this.options.maxMembers === undefined ? null : this.options.maxMembers,
74
+ period: period ? period.getBaseStructure() : undefined,
67
75
  });
68
76
 
69
77
  if (this.options.bundleDiscount) {