@stamhoofd/models 2.122.1 → 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
|
|
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,
|
|
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;
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
|
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) {
|