@stamhoofd/models 2.116.0 → 2.117.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 (59) hide show
  1. package/dist/src/helpers/Handlebars.d.ts.map +1 -1
  2. package/dist/src/helpers/Handlebars.js +4 -0
  3. package/dist/src/helpers/Handlebars.js.map +1 -1
  4. package/dist/src/index.d.ts +0 -1
  5. package/dist/src/index.d.ts.map +1 -1
  6. package/dist/src/index.js +0 -1
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/migrations/1771510518-events-index-organization-id-start-date.sql +2 -0
  9. package/dist/src/migrations/1771918307-membership-active-filter-index.sql +2 -0
  10. package/dist/src/migrations/1772033555-balance-item-package-id.sql +3 -0
  11. package/dist/src/migrations/1772033715-balance-item-start-end-date.sql +3 -0
  12. package/dist/src/models/AuditLog.d.ts +1 -0
  13. package/dist/src/models/AuditLog.d.ts.map +1 -1
  14. package/dist/src/models/AuditLog.js +8 -0
  15. package/dist/src/models/AuditLog.js.map +1 -1
  16. package/dist/src/models/BalanceItem.d.ts +22 -2
  17. package/dist/src/models/BalanceItem.d.ts.map +1 -1
  18. package/dist/src/models/BalanceItem.js +32 -0
  19. package/dist/src/models/BalanceItem.js.map +1 -1
  20. package/dist/src/models/Invoice.d.ts +1 -4
  21. package/dist/src/models/Invoice.d.ts.map +1 -1
  22. package/dist/src/models/Invoice.js +0 -45
  23. package/dist/src/models/Invoice.js.map +1 -1
  24. package/dist/src/models/Organization.d.ts +19 -1
  25. package/dist/src/models/Organization.d.ts.map +1 -1
  26. package/dist/src/models/Organization.js +27 -3
  27. package/dist/src/models/Organization.js.map +1 -1
  28. package/dist/src/models/Registration.d.ts +1 -2
  29. package/dist/src/models/Registration.d.ts.map +1 -1
  30. package/dist/src/models/Registration.js +11 -87
  31. package/dist/src/models/Registration.js.map +1 -1
  32. package/dist/src/models/RegistrationPeriod.d.ts +1 -0
  33. package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
  34. package/dist/src/models/RegistrationPeriod.js +5 -0
  35. package/dist/src/models/RegistrationPeriod.js.map +1 -1
  36. package/dist/src/models/STPackage.d.ts +1 -5
  37. package/dist/src/models/STPackage.d.ts.map +1 -1
  38. package/dist/src/models/STPackage.js +0 -41
  39. package/dist/src/models/STPackage.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +2 -2
  42. package/src/helpers/Handlebars.ts +4 -0
  43. package/src/index.ts +0 -1
  44. package/src/migrations/1771510518-events-index-organization-id-start-date.sql +2 -0
  45. package/src/migrations/1771918307-membership-active-filter-index.sql +2 -0
  46. package/src/migrations/1772033555-balance-item-package-id.sql +3 -0
  47. package/src/migrations/1772033715-balance-item-start-end-date.sql +3 -0
  48. package/src/models/AuditLog.ts +10 -1
  49. package/src/models/BalanceItem.ts +32 -2
  50. package/src/models/Invoice.ts +0 -57
  51. package/src/models/Organization.ts +32 -3
  52. package/src/models/Registration.ts +20 -98
  53. package/src/models/RegistrationPeriod.ts +6 -0
  54. package/src/models/STPackage.ts +0 -50
  55. package/dist/src/helpers/GroupBuilder.d.ts +0 -9
  56. package/dist/src/helpers/GroupBuilder.d.ts.map +0 -1
  57. package/dist/src/helpers/GroupBuilder.js +0 -382
  58. package/dist/src/helpers/GroupBuilder.js.map +0 -1
  59. package/src/helpers/GroupBuilder.ts +0 -415
@@ -1,382 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GroupBuilder = void 0;
4
- const structures_1 = require("@stamhoofd/structures");
5
- const index_js_1 = require("../models/index.js");
6
- class GroupBuilder {
7
- organization;
8
- constructor(organization) {
9
- this.organization = organization;
10
- }
11
- async build() {
12
- const oldGroups = await index_js_1.Group.getAll(this.organization.id, this.organization.periodId);
13
- if (oldGroups.length === 0) {
14
- // Setup default groups if possible
15
- if (this.organization.meta.type == structures_1.OrganizationType.Youth && this.organization.meta.umbrellaOrganization == structures_1.UmbrellaOrganization.ScoutsEnGidsenVlaanderen) {
16
- await this.createSGVGroups();
17
- }
18
- else if (this.organization.meta.type == structures_1.OrganizationType.Youth && this.organization.meta.umbrellaOrganization == structures_1.UmbrellaOrganization.ChiroNationaal) {
19
- await this.createChiroGroups();
20
- }
21
- }
22
- // Reload
23
- const groups = await index_js_1.Group.getAll(this.organization.id, this.organization.periodId);
24
- // Setup default root groups
25
- if (this.organization.meta.categories.length <= 2) {
26
- const sortedGroupIds = groups.map(g => structures_1.Group.create(Object.assign({}, g, { privateSettings: null }))).sort(structures_1.Group.defaultSort).map(g => g.id);
27
- const defaults = this.organization.meta.packages.useActivities ? structures_1.OrganizationTypeHelper.getDefaultGroupCategories(this.organization.meta.type, this.organization.meta.umbrellaOrganization ?? undefined) : structures_1.OrganizationTypeHelper.getDefaultGroupCategoriesWithoutActivities(this.organization.meta.type, this.organization.meta.umbrellaOrganization ?? undefined);
28
- if (sortedGroupIds.length > 0 && defaults.length == 0) {
29
- defaults.push(structures_1.GroupCategory.create({
30
- settings: structures_1.GroupCategorySettings.create({
31
- name: 'Leeftijdsgroepen',
32
- maximumRegistrations: 1,
33
- }),
34
- }));
35
- }
36
- this.organization.meta.categories = [structures_1.GroupCategory.create({ id: 'root' }), ...defaults];
37
- this.organization.meta.rootCategoryId = 'root';
38
- // Set category ID of the root category
39
- const filter = defaults.flatMap(d => d.categoryIds);
40
- this.organization.meta.rootCategory.categoryIds = defaults.map(d => d.id).filter(id => !filter.includes(id));
41
- if (defaults.length > 0) {
42
- defaults[0].groupIds.push(...sortedGroupIds);
43
- }
44
- await this.organization.save();
45
- }
46
- else {
47
- const newGroups = groups.filter(g => !oldGroups.find(gg => gg.id === g.id));
48
- const sortedGroupIds = newGroups.map(g => structures_1.Group.create(Object.assign({}, g, { privateSettings: null }))).sort(structures_1.Group.defaultSort).map(g => g.id);
49
- let root = this.organization.meta.rootCategory;
50
- if (root.categoryIds.length > 0) {
51
- for (const id of root.categoryIds) {
52
- const f = this.organization.meta.categories.find(c => c.id === id);
53
- if (f) {
54
- root = f;
55
- break;
56
- }
57
- }
58
- }
59
- if (newGroups.length > 0) {
60
- root.groupIds.push(...sortedGroupIds);
61
- await this.organization.save();
62
- }
63
- }
64
- }
65
- async createSGVGroups() {
66
- const createdGroups = [];
67
- const mixedType = this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyMale
68
- ? structures_1.GroupGenderType.OnlyMale
69
- : (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyFemale
70
- ? structures_1.GroupGenderType.OnlyFemale
71
- : structures_1.GroupGenderType.Mixed);
72
- const kapoenen = new index_js_1.Group();
73
- kapoenen.organizationId = this.organization.id;
74
- kapoenen.periodId = this.organization.periodId;
75
- kapoenen.settings = structures_1.GroupSettings.create({
76
- name: new structures_1.TranslatedString('Kapoenen'),
77
- genderType: mixedType,
78
- startDate: this.organization.meta.defaultStartDate,
79
- endDate: this.organization.meta.defaultEndDate,
80
- minAge: 6,
81
- maxAge: 7,
82
- });
83
- await kapoenen.save();
84
- createdGroups.push(kapoenen);
85
- const jin = new index_js_1.Group();
86
- jin.organizationId = this.organization.id;
87
- jin.periodId = this.organization.periodId;
88
- jin.settings = structures_1.GroupSettings.create({
89
- name: new structures_1.TranslatedString('Jin'),
90
- genderType: mixedType,
91
- startDate: this.organization.meta.defaultStartDate,
92
- endDate: this.organization.meta.defaultEndDate,
93
- minAge: 17,
94
- maxAge: 17,
95
- });
96
- await jin.save();
97
- createdGroups.push(jin);
98
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.Mixed) {
99
- const wouters = new index_js_1.Group();
100
- wouters.organizationId = this.organization.id;
101
- wouters.periodId = this.organization.periodId;
102
- wouters.settings = structures_1.GroupSettings.create({
103
- name: new structures_1.TranslatedString('Wouters'),
104
- genderType: structures_1.GroupGenderType.Mixed,
105
- startDate: this.organization.meta.defaultStartDate,
106
- endDate: this.organization.meta.defaultEndDate,
107
- minAge: 8,
108
- maxAge: 10,
109
- });
110
- await wouters.save();
111
- createdGroups.push(wouters);
112
- const jonggivers = new index_js_1.Group();
113
- jonggivers.organizationId = this.organization.id;
114
- jonggivers.periodId = this.organization.periodId;
115
- jonggivers.settings = structures_1.GroupSettings.create({
116
- name: new structures_1.TranslatedString('Jonggivers'),
117
- genderType: structures_1.GroupGenderType.Mixed,
118
- startDate: this.organization.meta.defaultStartDate,
119
- endDate: this.organization.meta.defaultEndDate,
120
- minAge: 11,
121
- maxAge: 13,
122
- });
123
- await jonggivers.save();
124
- createdGroups.push(jonggivers);
125
- const givers = new index_js_1.Group();
126
- givers.organizationId = this.organization.id;
127
- givers.periodId = this.organization.periodId;
128
- givers.settings = structures_1.GroupSettings.create({
129
- name: new structures_1.TranslatedString('Givers'),
130
- genderType: structures_1.GroupGenderType.Mixed,
131
- startDate: this.organization.meta.defaultStartDate,
132
- endDate: this.organization.meta.defaultEndDate,
133
- minAge: 14,
134
- maxAge: 16,
135
- });
136
- await givers.save();
137
- createdGroups.push(givers);
138
- }
139
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyFemale || this.organization.meta.genderType == structures_1.OrganizationGenderType.Separated) {
140
- const wouters = new index_js_1.Group();
141
- wouters.organizationId = this.organization.id;
142
- wouters.periodId = this.organization.periodId;
143
- wouters.settings = structures_1.GroupSettings.create({
144
- name: new structures_1.TranslatedString('Kabouters'),
145
- genderType: structures_1.GroupGenderType.OnlyFemale,
146
- startDate: this.organization.meta.defaultStartDate,
147
- endDate: this.organization.meta.defaultEndDate,
148
- minAge: 8,
149
- maxAge: 10,
150
- });
151
- await wouters.save();
152
- createdGroups.push(wouters);
153
- const jonggivers = new index_js_1.Group();
154
- jonggivers.organizationId = this.organization.id;
155
- jonggivers.periodId = this.organization.periodId;
156
- jonggivers.settings = structures_1.GroupSettings.create({
157
- name: new structures_1.TranslatedString('Jonggidsen'),
158
- genderType: structures_1.GroupGenderType.OnlyFemale,
159
- startDate: this.organization.meta.defaultStartDate,
160
- endDate: this.organization.meta.defaultEndDate,
161
- minAge: 11,
162
- maxAge: 13,
163
- });
164
- await jonggivers.save();
165
- createdGroups.push(jonggivers);
166
- const givers = new index_js_1.Group();
167
- givers.organizationId = this.organization.id;
168
- givers.periodId = this.organization.periodId;
169
- givers.settings = structures_1.GroupSettings.create({
170
- name: new structures_1.TranslatedString('Gidsen'),
171
- genderType: structures_1.GroupGenderType.OnlyFemale,
172
- startDate: this.organization.meta.defaultStartDate,
173
- endDate: this.organization.meta.defaultEndDate,
174
- minAge: 14,
175
- maxAge: 16,
176
- });
177
- await givers.save();
178
- createdGroups.push(givers);
179
- }
180
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyMale || this.organization.meta.genderType == structures_1.OrganizationGenderType.Separated) {
181
- const wouters = new index_js_1.Group();
182
- wouters.organizationId = this.organization.id;
183
- wouters.periodId = this.organization.periodId;
184
- wouters.settings = structures_1.GroupSettings.create({
185
- name: new structures_1.TranslatedString('Welpen'),
186
- genderType: structures_1.GroupGenderType.OnlyMale,
187
- startDate: this.organization.meta.defaultStartDate,
188
- endDate: this.organization.meta.defaultEndDate,
189
- minAge: 8,
190
- maxAge: 10,
191
- });
192
- await wouters.save();
193
- createdGroups.push(wouters);
194
- const jonggivers = new index_js_1.Group();
195
- jonggivers.organizationId = this.organization.id;
196
- jonggivers.periodId = this.organization.periodId;
197
- jonggivers.settings = structures_1.GroupSettings.create({
198
- name: new structures_1.TranslatedString('Jongverkenners'),
199
- genderType: structures_1.GroupGenderType.OnlyMale,
200
- startDate: this.organization.meta.defaultStartDate,
201
- endDate: this.organization.meta.defaultEndDate,
202
- minAge: 11,
203
- maxAge: 13,
204
- });
205
- await jonggivers.save();
206
- createdGroups.push(jonggivers);
207
- const givers = new index_js_1.Group();
208
- givers.organizationId = this.organization.id;
209
- givers.periodId = this.organization.periodId;
210
- givers.settings = structures_1.GroupSettings.create({
211
- name: new structures_1.TranslatedString('Verkenners'),
212
- genderType: structures_1.GroupGenderType.OnlyMale,
213
- startDate: this.organization.meta.defaultStartDate,
214
- endDate: this.organization.meta.defaultEndDate,
215
- minAge: 14,
216
- maxAge: 16,
217
- });
218
- await givers.save();
219
- createdGroups.push(givers);
220
- }
221
- return createdGroups;
222
- }
223
- async createChiroGroups() {
224
- const mixedType = this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyMale
225
- ? structures_1.GroupGenderType.OnlyMale
226
- : (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyFemale
227
- ? structures_1.GroupGenderType.OnlyFemale
228
- : structures_1.GroupGenderType.Mixed);
229
- const ribbels = new index_js_1.Group();
230
- ribbels.organizationId = this.organization.id;
231
- ribbels.periodId = this.organization.periodId;
232
- ribbels.settings = structures_1.GroupSettings.create({
233
- name: new structures_1.TranslatedString('Ribbels'),
234
- genderType: mixedType,
235
- startDate: this.organization.meta.defaultStartDate,
236
- endDate: this.organization.meta.defaultEndDate,
237
- minAge: 6,
238
- maxAge: 7,
239
- });
240
- await ribbels.save();
241
- const speelclub = new index_js_1.Group();
242
- speelclub.organizationId = this.organization.id;
243
- speelclub.periodId = this.organization.periodId;
244
- speelclub.settings = structures_1.GroupSettings.create({
245
- name: new structures_1.TranslatedString('Speelclub'),
246
- genderType: mixedType,
247
- startDate: this.organization.meta.defaultStartDate,
248
- endDate: this.organization.meta.defaultEndDate,
249
- minAge: 8,
250
- maxAge: 9,
251
- });
252
- await speelclub.save();
253
- const aspis = new index_js_1.Group();
254
- aspis.organizationId = this.organization.id;
255
- aspis.periodId = this.organization.periodId;
256
- aspis.settings = structures_1.GroupSettings.create({
257
- name: new structures_1.TranslatedString("Aspi's"),
258
- genderType: mixedType,
259
- startDate: this.organization.meta.defaultStartDate,
260
- endDate: this.organization.meta.defaultEndDate,
261
- minAge: 16,
262
- maxAge: 17,
263
- });
264
- await aspis.save();
265
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.Mixed) {
266
- const rakwis = new index_js_1.Group();
267
- rakwis.organizationId = this.organization.id;
268
- rakwis.periodId = this.organization.periodId;
269
- rakwis.settings = structures_1.GroupSettings.create({
270
- name: new structures_1.TranslatedString("Rakwi's"),
271
- genderType: structures_1.GroupGenderType.Mixed,
272
- startDate: this.organization.meta.defaultStartDate,
273
- endDate: this.organization.meta.defaultEndDate,
274
- minAge: 10,
275
- maxAge: 11,
276
- });
277
- await rakwis.save();
278
- const titos = new index_js_1.Group();
279
- titos.organizationId = this.organization.id;
280
- titos.periodId = this.organization.periodId;
281
- titos.settings = structures_1.GroupSettings.create({
282
- name: new structures_1.TranslatedString("Tito's"),
283
- genderType: structures_1.GroupGenderType.Mixed,
284
- startDate: this.organization.meta.defaultStartDate,
285
- endDate: this.organization.meta.defaultEndDate,
286
- minAge: 12,
287
- maxAge: 13,
288
- });
289
- await titos.save();
290
- const ketis = new index_js_1.Group();
291
- ketis.organizationId = this.organization.id;
292
- ketis.periodId = this.organization.periodId;
293
- ketis.settings = structures_1.GroupSettings.create({
294
- name: new structures_1.TranslatedString("Keti's"),
295
- genderType: structures_1.GroupGenderType.Mixed,
296
- startDate: this.organization.meta.defaultStartDate,
297
- endDate: this.organization.meta.defaultEndDate,
298
- minAge: 14,
299
- maxAge: 15,
300
- });
301
- await ketis.save();
302
- }
303
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyFemale || this.organization.meta.genderType == structures_1.OrganizationGenderType.Separated) {
304
- const rakwis = new index_js_1.Group();
305
- rakwis.organizationId = this.organization.id;
306
- rakwis.periodId = this.organization.periodId;
307
- rakwis.settings = structures_1.GroupSettings.create({
308
- name: new structures_1.TranslatedString('Kwiks'),
309
- genderType: structures_1.GroupGenderType.OnlyFemale,
310
- startDate: this.organization.meta.defaultStartDate,
311
- endDate: this.organization.meta.defaultEndDate,
312
- minAge: 10,
313
- maxAge: 11,
314
- });
315
- await rakwis.save();
316
- const titos = new index_js_1.Group();
317
- titos.organizationId = this.organization.id;
318
- titos.periodId = this.organization.periodId;
319
- titos.settings = structures_1.GroupSettings.create({
320
- name: new structures_1.TranslatedString('Toppers'),
321
- genderType: structures_1.GroupGenderType.OnlyFemale,
322
- startDate: this.organization.meta.defaultStartDate,
323
- endDate: this.organization.meta.defaultEndDate,
324
- minAge: 12,
325
- maxAge: 13,
326
- });
327
- await titos.save();
328
- const ketis = new index_js_1.Group();
329
- ketis.organizationId = this.organization.id;
330
- ketis.periodId = this.organization.periodId;
331
- ketis.settings = structures_1.GroupSettings.create({
332
- name: new structures_1.TranslatedString('Tiptiens'),
333
- genderType: structures_1.GroupGenderType.OnlyFemale,
334
- startDate: this.organization.meta.defaultStartDate,
335
- endDate: this.organization.meta.defaultEndDate,
336
- minAge: 14,
337
- maxAge: 15,
338
- });
339
- await ketis.save();
340
- }
341
- if (this.organization.meta.genderType == structures_1.OrganizationGenderType.OnlyMale || this.organization.meta.genderType == structures_1.OrganizationGenderType.Separated) {
342
- const rakwis = new index_js_1.Group();
343
- rakwis.organizationId = this.organization.id;
344
- rakwis.periodId = this.organization.periodId;
345
- rakwis.settings = structures_1.GroupSettings.create({
346
- name: new structures_1.TranslatedString('Rakkers'),
347
- genderType: structures_1.GroupGenderType.OnlyMale,
348
- startDate: this.organization.meta.defaultStartDate,
349
- endDate: this.organization.meta.defaultEndDate,
350
- minAge: 10,
351
- maxAge: 11,
352
- });
353
- await rakwis.save();
354
- const titos = new index_js_1.Group();
355
- titos.organizationId = this.organization.id;
356
- titos.periodId = this.organization.periodId;
357
- titos.settings = structures_1.GroupSettings.create({
358
- name: new structures_1.TranslatedString('Tippers'),
359
- genderType: structures_1.GroupGenderType.OnlyMale,
360
- startDate: this.organization.meta.defaultStartDate,
361
- endDate: this.organization.meta.defaultEndDate,
362
- minAge: 12,
363
- maxAge: 13,
364
- });
365
- await titos.save();
366
- const ketis = new index_js_1.Group();
367
- ketis.organizationId = this.organization.id;
368
- ketis.periodId = this.organization.periodId;
369
- ketis.settings = structures_1.GroupSettings.create({
370
- name: new structures_1.TranslatedString('Kerels'),
371
- genderType: structures_1.GroupGenderType.OnlyMale,
372
- startDate: this.organization.meta.defaultStartDate,
373
- endDate: this.organization.meta.defaultEndDate,
374
- minAge: 14,
375
- maxAge: 15,
376
- });
377
- await ketis.save();
378
- }
379
- }
380
- }
381
- exports.GroupBuilder = GroupBuilder;
382
- //# sourceMappingURL=GroupBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GroupBuilder.js","sourceRoot":"","sources":["../../../src/helpers/GroupBuilder.ts"],"names":[],"mappings":"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"}