@stamhoofd/models 2.124.1 → 2.125.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.
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `organizations`
2
+ ADD COLUMN `hasFutureEvents` tinyint(1) NOT NULL DEFAULT '1' AFTER `periodId`;
@@ -1,5 +1,6 @@
1
- import type { EmailRecipientFilterType, EmailRecipient as EmailRecipientStruct, EmailTemplateType, PaginatedResponse, StamhoofdFilter } from '@stamhoofd/structures';
1
+ import type { EmailRecipient as EmailRecipientStruct, EmailTemplateType, PaginatedResponse, StamhoofdFilter } from '@stamhoofd/structures';
2
2
  import { EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientsStatus, EmailStatus, Email as EmailStruct, EmailWithRecipients, LimitedFilteredRequest } from '@stamhoofd/structures';
3
+ import type { EmailRecipientFilterType } from '@stamhoofd/structures/email/EmailRecipientFilterType.js';
3
4
  import { SimpleErrors } from '@simonbackx/simple-errors';
4
5
  import type { EmailInterfaceRecipient } from '@stamhoofd/email';
5
6
  import type { QueueHandlerOptions } from '@stamhoofd/queues';
@@ -1 +1 @@
1
- {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/models/Email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/models/Email.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare class Organization extends QueryableModel {
17
17
  registerDomain: string | null;
18
18
  uri: string;
19
19
  periodId: string;
20
+ hasFutureEvents: boolean;
20
21
  /**
21
22
  * Public meta data
22
23
  */
@@ -42,6 +43,13 @@ export declare class Organization extends QueryableModel {
42
43
  * Makes sure empty name is replaced with organization name
43
44
  */
44
45
  get mappedTransferSettings(): TransferSettings;
46
+ static getFutureEventsCutoffDate(): Date;
47
+ updateFutureEvents(): Promise<void>;
48
+ /**
49
+ * Update the hasFutureEvents column for multiple organizations (or all organizations) in a single query,
50
+ * instead of fetching and saving every organization individually.
51
+ */
52
+ static updateFutureEventsForOrganizations(organizationIds: string[] | 'all'): Promise<void>;
45
53
  static getByURI(uri: string): Promise<Organization | undefined>;
46
54
  static getByEmail(email: string): Promise<Organization | undefined>;
47
55
  static getByRegisterDomain(host: string): Promise<Organization | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"Organization.d.ts","sourceRoot":"","sources":["../../src/models/Organization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Organization.d.ts","sourceRoot":"","sources":["../../src/models/Organization.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { column, Database } from '@simonbackx/simple-database';
4
4
  import { SimpleError } from '@simonbackx/simple-errors';
5
5
  import { I18n } from '@stamhoofd/backend-i18n/I18n';
6
6
  import { QueueHandler } from '@stamhoofd/queues';
7
- import { QueryableModel, SQL } from '@stamhoofd/sql';
7
+ import { QueryableModel, SQL, SQLWhereExists } from '@stamhoofd/sql';
8
8
  import { AccessRight, Address, Company, DNSRecordStatus, EmailTemplateType, getAppHost, GroupType, OrganizationMetaData, OrganizationPrivateMetaData, Organization as OrganizationStruct, PaymentMethod, PaymentProvider, Recipient, Replacement, STPackageType, TransferSettings } from '@stamhoofd/structures';
9
9
  import { Country } from '@stamhoofd/types/Country';
10
10
  import { Language } from '@stamhoofd/types/Language';
@@ -17,6 +17,7 @@ import { OrganizationRegistrationPeriod } from './OrganizationRegistrationPeriod
17
17
  import { Registration } from './Registration.js';
18
18
  import { StripeAccount } from './StripeAccount.js';
19
19
  import { Token } from './Token.js';
20
+ import { Event } from './Event.js';
20
21
  export class Organization extends QueryableModel {
21
22
  static table = 'organizations';
22
23
  // static cache = new ModelCache<Organization>();
@@ -31,6 +32,7 @@ export class Organization extends QueryableModel {
31
32
  // in uri.stamhoofd.be
32
33
  uri;
33
34
  periodId;
35
+ hasFutureEvents = true;
34
36
  /**
35
37
  * Public meta data
36
38
  */
@@ -60,6 +62,43 @@ export class Organization extends QueryableModel {
60
62
  get mappedTransferSettings() {
61
63
  return this.meta.transferSettings.fillMissing(TransferSettings.create({ creditor: this.name }));
62
64
  }
65
+ static getFutureEventsCutoffDate() {
66
+ return new Date(Date.now() - 1000 * 60 * 60 * 24 * 30 * 2);
67
+ }
68
+ async updateFutureEvents() {
69
+ const firstEvent = await Event.select('id')
70
+ .where(STAMHOOFD.userMode === 'platform'
71
+ ? SQL.where('organizationId', this.id).or('organizationId', null)
72
+ : SQL.where('organizationId', this.id))
73
+ .where('endDate', '>', Organization.getFutureEventsCutoffDate())
74
+ .first(false);
75
+ if (firstEvent) {
76
+ this.hasFutureEvents = true;
77
+ }
78
+ else {
79
+ this.hasFutureEvents = false;
80
+ }
81
+ }
82
+ /**
83
+ * Update the hasFutureEvents column for multiple organizations (or all organizations) in a single query,
84
+ * instead of fetching and saving every organization individually.
85
+ */
86
+ static async updateFutureEventsForOrganizations(organizationIds) {
87
+ if (organizationIds !== 'all' && organizationIds.length === 0) {
88
+ return;
89
+ }
90
+ const query = Organization.update()
91
+ .set('hasFutureEvents', new SQLWhereExists(SQL.select(SQL.scalar(1))
92
+ .from(Event.table)
93
+ .where(STAMHOOFD.userMode === 'platform'
94
+ ? SQL.where('organizationId', SQL.column(Organization.table, 'id')).or('organizationId', null)
95
+ : SQL.where('organizationId', SQL.column(Organization.table, 'id')))
96
+ .where('endDate', '>', Organization.getFutureEventsCutoffDate())));
97
+ if (organizationIds !== 'all') {
98
+ query.where('id', organizationIds);
99
+ }
100
+ await query.update();
101
+ }
63
102
  // Methods
64
103
  static async getByURI(uri) {
65
104
  const [rows] = await Database.select(`SELECT ${this.getDefaultSelect()} FROM ${this.table} WHERE \`uri\` = ? LIMIT 1`, [uri]);
@@ -186,6 +225,7 @@ export class Organization extends QueryableModel {
186
225
  uri: this.uri,
187
226
  website: this.website,
188
227
  createdAt: this.createdAt,
228
+ hasFutureEvents: this.hasFutureEvents,
189
229
  });
190
230
  }
191
231
  getBaseStructureWithPrivateMeta() {
@@ -200,6 +240,7 @@ export class Organization extends QueryableModel {
200
240
  uri: this.uri,
201
241
  website: this.website,
202
242
  createdAt: this.createdAt,
243
+ hasFutureEvents: this.hasFutureEvents,
203
244
  });
204
245
  }
205
246
  async updateDNSRecords() {
@@ -851,6 +892,9 @@ __decorate([
851
892
  __decorate([
852
893
  column({ type: 'string' })
853
894
  ], Organization.prototype, "periodId", void 0);
895
+ __decorate([
896
+ column({ type: 'boolean' })
897
+ ], Organization.prototype, "hasFutureEvents", void 0);
854
898
  __decorate([
855
899
  column({ type: 'json', decoder: OrganizationMetaData })
856
900
  ], Organization.prototype, "meta", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Organization.js","sourceRoot":"","sources":["../../src/models/Organization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Organization.js","sourceRoot":"","sources":["../../src/models/Organization.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.124.1",
3
+ "version": "2.125.0",
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.124.1",
45
+ "@stamhoofd/test-utils": "2.125.0",
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": "d520495d0c1a5f376b10a60ebbceec63b2228bd5"
64
+ "gitHead": "8fc26e2a47fee0ff97992a55f80a921880f33077"
65
65
  }
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `organizations`
2
+ ADD COLUMN `hasFutureEvents` tinyint(1) NOT NULL DEFAULT '1' AFTER `periodId`;
@@ -1,5 +1,5 @@
1
- import type { LimitedFilteredRequest} from '@stamhoofd/structures';
2
- import { BalanceItemType, EmailRecipientFilter, EmailRecipientFilterType, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailRecipientSubfilter, EmailStatus, OrganizationMetaData, PaginatedResponse } from '@stamhoofd/structures';
1
+ import type { LimitedFilteredRequest } from '@stamhoofd/structures';
2
+ import { BalanceItemType, EmailRecipientFilter, EmailRecipientsStatus, EmailRecipient as EmailRecipientStruct, EmailRecipientSubfilter, EmailStatus, OrganizationMetaData, PaginatedResponse } from '@stamhoofd/structures';
3
3
  import { Email } from './Email.js';
4
4
  import { EmailRecipient } from './EmailRecipient.js';
5
5
  import { EmailMocker } from '@stamhoofd/email';
@@ -9,6 +9,7 @@ import { Platform } from './Platform.js';
9
9
  import { BalanceItemFactory, MemberFactory, UserFactory } from '../factories/index.js';
10
10
  import { CachedBalance } from './CachedBalance.js';
11
11
  import { Formatter } from '@stamhoofd/utility';
12
+ import { EmailRecipientFilterType } from '@stamhoofd/structures/email/EmailRecipientFilterType.js';
12
13
 
13
14
  async function buildEmail(data: {
14
15
  recipients: EmailRecipientStruct[];
@@ -1,8 +1,8 @@
1
1
  import { column } from '@simonbackx/simple-database';
2
- import type { BaseOrganization, EmailRecipientFilterType, EmailRecipient as EmailRecipientStruct, EmailTemplateType, PaginatedResponse, StamhoofdFilter, User as UserStruct } from '@stamhoofd/structures';
2
+ import type { BaseOrganization, EmailRecipient as EmailRecipientStruct, EmailTemplateType, PaginatedResponse, StamhoofdFilter, User as UserStruct } from '@stamhoofd/structures';
3
3
  import { EmailAttachment, EmailPreview, EmailRecipientFilter, EmailRecipientsStatus, EmailStatus, Email as EmailStruct, EmailWithRecipients, getExampleRecipient, isSoftEmailRecipientError, LimitedFilteredRequest, SortItemDirection } from '@stamhoofd/structures';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
-
5
+ import type { EmailRecipientFilterType } from '@stamhoofd/structures/email/EmailRecipientFilterType.js';
6
6
  import { AnyDecoder, ArrayDecoder } from '@simonbackx/simple-encoding';
7
7
  import { isSimpleError, isSimpleErrors, SimpleError, SimpleErrors } from '@simonbackx/simple-errors';
8
8
  import { I18n } from '@stamhoofd/backend-i18n/I18n';
@@ -0,0 +1,119 @@
1
+ import { Database } from '@simonbackx/simple-database';
2
+ import { EventFactory } from '../factories/EventFactory.js';
3
+ import { OrganizationFactory } from '../factories/OrganizationFactory.js';
4
+ import { Organization } from './Organization.js';
5
+ import { TestUtils } from '@stamhoofd/test-utils';
6
+
7
+ async function getHasFutureEvents(organization: Organization): Promise<boolean> {
8
+ const fetched = await Organization.getByID(organization.id, true);
9
+ return fetched.hasFutureEvents;
10
+ }
11
+
12
+ describe('Organization.updateFutureEventsForOrganizations', () => {
13
+ // The shared test setup never clears the events table, so make sure each test
14
+ // starts without leftover events (a global event would otherwise poison every test).
15
+ beforeEach(async () => {
16
+ await Database.delete('DELETE FROM `events`');
17
+ });
18
+ test('Marks an organization without events as not having future events', async () => {
19
+ const organization = await new OrganizationFactory({}).create();
20
+
21
+ await Organization.updateFutureEventsForOrganizations([organization.id]);
22
+
23
+ expect(await getHasFutureEvents(organization)).toBe(false);
24
+ });
25
+
26
+ test('Marks an organization with a future event as having future events', async () => {
27
+ const organization = await new OrganizationFactory({}).create();
28
+ organization.hasFutureEvents = false;
29
+ await organization.save();
30
+
31
+ await new EventFactory({
32
+ organization,
33
+ endDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
34
+ }).create();
35
+
36
+ await Organization.updateFutureEventsForOrganizations([organization.id]);
37
+
38
+ expect(await getHasFutureEvents(organization)).toBe(true);
39
+ });
40
+
41
+ test('Does not count events that ended more than 2 months ago', async () => {
42
+ const organization = await new OrganizationFactory({}).create();
43
+
44
+ await new EventFactory({
45
+ organization,
46
+ endDate: new Date(Date.now() - 2 * 31 * 24 * 60 * 60 * 1000),
47
+ }).create();
48
+
49
+ await Organization.updateFutureEventsForOrganizations([organization.id]);
50
+
51
+ expect(await getHasFutureEvents(organization)).toBe(false);
52
+ });
53
+
54
+ test('A global event (without an organization) counts towards every organization in platform mode', async () => {
55
+ TestUtils.setEnvironment('userMode', 'platform');
56
+ const organizationA = await new OrganizationFactory({}).create();
57
+ const organizationB = await new OrganizationFactory({}).create();
58
+ organizationA.hasFutureEvents = false;
59
+ organizationB.hasFutureEvents = false;
60
+ await organizationA.save();
61
+ await organizationB.save();
62
+
63
+ await new EventFactory({
64
+ endDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
65
+ }).create();
66
+
67
+ await Organization.updateFutureEventsForOrganizations('all');
68
+
69
+ expect(await getHasFutureEvents(organizationA)).toBe(true);
70
+ expect(await getHasFutureEvents(organizationB)).toBe(true);
71
+ });
72
+
73
+ test('A global event (without an organization) does not count towards every organization in organization mode', async () => {
74
+ TestUtils.setEnvironment('userMode', 'organization');
75
+ const organizationA = await new OrganizationFactory({}).create();
76
+ const organizationB = await new OrganizationFactory({}).create();
77
+ organizationA.hasFutureEvents = false;
78
+ organizationB.hasFutureEvents = false;
79
+ await organizationA.save();
80
+ await organizationB.save();
81
+
82
+ await new EventFactory({
83
+ endDate: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
84
+ }).create();
85
+
86
+ await Organization.updateFutureEventsForOrganizations('all');
87
+
88
+ expect(await getHasFutureEvents(organizationA)).toBe(false);
89
+ expect(await getHasFutureEvents(organizationB)).toBe(false);
90
+ });
91
+
92
+ test('Only updates the requested organizations', async () => {
93
+ const organizationA = await new OrganizationFactory({}).create();
94
+ const organizationB = await new OrganizationFactory({}).create();
95
+
96
+ await Organization.updateFutureEventsForOrganizations([organizationA.id]);
97
+
98
+ expect(await getHasFutureEvents(organizationA)).toBe(false);
99
+ expect(await getHasFutureEvents(organizationB)).toBe(true);
100
+ });
101
+
102
+ test('Updates all', async () => {
103
+ const organizationA = await new OrganizationFactory({}).create();
104
+ const organizationB = await new OrganizationFactory({}).create();
105
+
106
+ await Organization.updateFutureEventsForOrganizations('all');
107
+
108
+ expect(await getHasFutureEvents(organizationA)).toBe(false);
109
+ expect(await getHasFutureEvents(organizationB)).toBe(false);
110
+ });
111
+
112
+ test('Does nothing when passed an empty list', async () => {
113
+ const organization = await new OrganizationFactory({}).create();
114
+
115
+ await expect(Organization.updateFutureEventsForOrganizations([])).resolves.toBeUndefined();
116
+
117
+ expect(await getHasFutureEvents(organization)).toBe(true);
118
+ });
119
+ });
@@ -5,7 +5,7 @@ import { SimpleError } from '@simonbackx/simple-errors';
5
5
  import { I18n } from '@stamhoofd/backend-i18n/I18n';
6
6
  import type { EmailInterfaceRecipient } from '@stamhoofd/email';
7
7
  import { QueueHandler } from '@stamhoofd/queues';
8
- import { QueryableModel, SQL } from '@stamhoofd/sql';
8
+ import { QueryableModel, SQL, SQLWhereExists } from '@stamhoofd/sql';
9
9
  import type { AppType, OrganizationEmail, PrivatePaymentConfiguration } from '@stamhoofd/structures';
10
10
  import { AccessRight, Address, appToUri, Company, DNSRecordStatus, EmailTemplateType, getAppHost, GroupType, OrganizationMetaData, OrganizationPrivateMetaData, Organization as OrganizationStruct, PaymentMethod, PaymentProvider, Recipient, Replacement, STPackageType, TransferSettings } from '@stamhoofd/structures';
11
11
  import type { PaymentMandate } from '@stamhoofd/structures/PaymentMandate.js';
@@ -21,6 +21,7 @@ import { Registration } from './Registration.js';
21
21
  import { StripeAccount } from './StripeAccount.js';
22
22
  import { Token } from './Token.js';
23
23
  import type { User } from './User.js';
24
+ import { Event } from './Event.js';
24
25
 
25
26
  export class Organization extends QueryableModel {
26
27
  static table = 'organizations';
@@ -53,6 +54,9 @@ export class Organization extends QueryableModel {
53
54
  @column({ type: 'string' })
54
55
  periodId: string;
55
56
 
57
+ @column({ type: 'boolean' })
58
+ hasFutureEvents: boolean = true;
59
+
56
60
  /**
57
61
  * Public meta data
58
62
  */
@@ -120,6 +124,58 @@ export class Organization extends QueryableModel {
120
124
  return this.meta.transferSettings.fillMissing(TransferSettings.create({ creditor: this.name }));
121
125
  }
122
126
 
127
+ static getFutureEventsCutoffDate(): Date {
128
+ return new Date(Date.now() - 1000 * 60 * 60 * 24 * 30 * 2);
129
+ }
130
+
131
+ async updateFutureEvents() {
132
+ const firstEvent = await Event.select('id')
133
+ .where(
134
+ STAMHOOFD.userMode === 'platform'
135
+ ? SQL.where('organizationId', this.id).or('organizationId', null)
136
+ : SQL.where('organizationId', this.id),
137
+
138
+ )
139
+ .where('endDate', '>', Organization.getFutureEventsCutoffDate())
140
+ .first(false);
141
+ if (firstEvent) {
142
+ this.hasFutureEvents = true;
143
+ } else {
144
+ this.hasFutureEvents = false;
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Update the hasFutureEvents column for multiple organizations (or all organizations) in a single query,
150
+ * instead of fetching and saving every organization individually.
151
+ */
152
+ static async updateFutureEventsForOrganizations(organizationIds: string[] | 'all') {
153
+ if (organizationIds !== 'all' && organizationIds.length === 0) {
154
+ return;
155
+ }
156
+
157
+ const query = Organization.update()
158
+ .set(
159
+ 'hasFutureEvents',
160
+ new SQLWhereExists(
161
+ SQL.select(SQL.scalar(1))
162
+ .from(Event.table)
163
+ .where(
164
+ STAMHOOFD.userMode === 'platform'
165
+ ? SQL.where('organizationId', SQL.column(Organization.table, 'id')).or('organizationId', null)
166
+ : SQL.where('organizationId', SQL.column(Organization.table, 'id')),
167
+ )
168
+ .where('endDate', '>', Organization.getFutureEventsCutoffDate()),
169
+ ),
170
+ );
171
+
172
+ if (organizationIds !== 'all') {
173
+ query.where('id', organizationIds);
174
+ }
175
+
176
+ await query.update();
177
+ }
178
+
123
179
  // Methods
124
180
  static async getByURI(uri: string): Promise<Organization | undefined> {
125
181
  const [rows] = await Database.select(
@@ -279,6 +335,7 @@ export class Organization extends QueryableModel {
279
335
  uri: this.uri,
280
336
  website: this.website,
281
337
  createdAt: this.createdAt,
338
+ hasFutureEvents: this.hasFutureEvents,
282
339
  });
283
340
  }
284
341
 
@@ -294,6 +351,7 @@ export class Organization extends QueryableModel {
294
351
  uri: this.uri,
295
352
  website: this.website,
296
353
  createdAt: this.createdAt,
354
+ hasFutureEvents: this.hasFutureEvents,
297
355
  });
298
356
  }
299
357