placementt-core 1.400.1222 → 1.400.1223

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.
@@ -121,17 +121,20 @@ export declare const eventsCallables: {
121
121
  invited: z.ZodNumber;
122
122
  linked: z.ZodNumber;
123
123
  skipped: z.ZodNumber;
124
+ duplicates: z.ZodOptional<z.ZodNumber>;
124
125
  remaining: z.ZodNumber;
125
126
  }, "strip", z.ZodTypeAny, {
126
127
  skipped: number;
127
128
  linked: number;
128
129
  invited: number;
129
130
  remaining: number;
131
+ duplicates?: number | undefined;
130
132
  }, {
131
133
  skipped: number;
132
134
  linked: number;
133
135
  invited: number;
134
136
  remaining: number;
137
+ duplicates?: number | undefined;
135
138
  }>;
136
139
  };
137
140
  "events-getNonUserSchoolInvite": {
@@ -252,16 +255,47 @@ export declare const eventsCallables: {
252
255
  students?: number | undefined;
253
256
  }>]>;
254
257
  response: z.ZodObject<{
255
- code: z.ZodEnum<["updated", "emailed", "hasAccount"]>;
258
+ code: z.ZodEnum<["updated", "emailed", "hasAccount", "alreadySignedUp"]>;
256
259
  eventSchoolId: z.ZodOptional<z.ZodString>;
257
260
  }, "strip", z.ZodTypeAny, {
258
- code: "updated" | "emailed" | "hasAccount";
261
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
259
262
  eventSchoolId?: string | undefined;
260
263
  }, {
261
- code: "updated" | "emailed" | "hasAccount";
264
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
262
265
  eventSchoolId?: string | undefined;
263
266
  }>;
264
267
  };
268
+ "events-employerJoinEvent": {
269
+ request: z.ZodObject<{
270
+ eventId: z.ZodString;
271
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
272
+ providerContactId: z.ZodOptional<z.ZodString>;
273
+ capacity: z.ZodOptional<z.ZodNumber>;
274
+ proposedDates: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ eventId: string;
277
+ providerContactId?: string | undefined;
278
+ externalEventAttendeeId?: string | undefined;
279
+ capacity?: number | undefined;
280
+ proposedDates?: Record<string, unknown>[] | undefined;
281
+ }, {
282
+ eventId: string;
283
+ providerContactId?: string | undefined;
284
+ externalEventAttendeeId?: string | undefined;
285
+ capacity?: number | undefined;
286
+ proposedDates?: Record<string, unknown>[] | undefined;
287
+ }>;
288
+ response: z.ZodOptional<z.ZodObject<{
289
+ code: z.ZodEnum<["joined", "notFound", "notAccepting"]>;
290
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
291
+ }, "strip", z.ZodTypeAny, {
292
+ code: "notFound" | "joined" | "notAccepting";
293
+ externalEventAttendeeId?: string | undefined;
294
+ }, {
295
+ code: "notFound" | "joined" | "notAccepting";
296
+ externalEventAttendeeId?: string | undefined;
297
+ }>>;
298
+ };
265
299
  "events-removeEventSlotBooking": {
266
300
  request: z.ZodObject<{
267
301
  eventSchoolId: z.ZodString;
@@ -69,6 +69,9 @@ exports.eventsCallables = {
69
69
  invited: zod_1.z.number(),
70
70
  linked: zod_1.z.number(),
71
71
  skipped: zod_1.z.number(),
72
+ // Addresses left out because the same school is already on the event (by account,
73
+ // email domain or school name). Its existing invite is resent instead.
74
+ duplicates: zod_1.z.number().optional(),
72
75
  remaining: zod_1.z.number(),
73
76
  }),
74
77
  },
@@ -100,7 +103,9 @@ exports.eventsCallables = {
100
103
  // and email are then required, and the response carries the new eventSchoolId, or
101
104
  // "emailed" when that address already has an invite (its link is emailed, not returned), or
102
105
  // "hasAccount" when it belongs to a school already in the hub, which is invited through its
103
- // account instead and accepts after logging in.
106
+ // account instead and accepts after logging in, or "alreadySignedUp" when the same school is
107
+ // already on the event under another address (matched by account, email domain or school
108
+ // name): no record is made and the link is emailed to whoever registered it.
104
109
  zod_1.z.object({
105
110
  action: zod_1.z.literal("accept"),
106
111
  eventSchoolId: zod_1.z.string().min(1).optional(),
@@ -128,10 +133,28 @@ exports.eventsCallables = {
128
133
  }),
129
134
  ]),
130
135
  response: zod_1.z.object({
131
- code: zod_1.z.enum(["updated", "emailed", "hasAccount"]),
136
+ code: zod_1.z.enum(["updated", "emailed", "hasAccount", "alreadySignedUp"]),
132
137
  eventSchoolId: zod_1.z.string().optional(),
133
138
  }),
134
139
  },
140
+ // Public: an employer joining an event. With externalEventAttendeeId it's the invited attendee
141
+ // from the email link (the id is the credential) accepting. Without, it's a self sign-up from
142
+ // the public event link for the providerContactId the employer just gave: the attendee is made
143
+ // "providerAvailable" and its id returned, so the page can show the invite tasks (forms,
144
+ // uploads, files to review) straight after. An employer already on the event gets its id back.
145
+ "events-employerJoinEvent": {
146
+ request: zod_1.z.object({
147
+ eventId: zod_1.z.string().min(1),
148
+ externalEventAttendeeId: zod_1.z.string().min(1).optional(),
149
+ providerContactId: zod_1.z.string().min(1).optional(),
150
+ capacity: zod_1.z.number().optional(),
151
+ proposedDates: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())).optional(),
152
+ }),
153
+ response: zod_1.z.object({
154
+ code: zod_1.z.enum(["joined", "notFound", "notAccepting"]),
155
+ externalEventAttendeeId: zod_1.z.string().optional(),
156
+ }).optional(),
157
+ },
135
158
  // Hub staff only. Frees the school's places in one slot.
136
159
  "events-removeEventSlotBooking": {
137
160
  request: zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/callables/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/callables/events.ts"],"names":[],"mappings":"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"}
@@ -3319,17 +3319,20 @@ export declare const allCallables: {
3319
3319
  invited: z.ZodNumber;
3320
3320
  linked: z.ZodNumber;
3321
3321
  skipped: z.ZodNumber;
3322
+ duplicates: z.ZodOptional<z.ZodNumber>;
3322
3323
  remaining: z.ZodNumber;
3323
3324
  }, "strip", z.ZodTypeAny, {
3324
3325
  skipped: number;
3325
3326
  linked: number;
3326
3327
  invited: number;
3327
3328
  remaining: number;
3329
+ duplicates?: number | undefined;
3328
3330
  }, {
3329
3331
  skipped: number;
3330
3332
  linked: number;
3331
3333
  invited: number;
3332
3334
  remaining: number;
3335
+ duplicates?: number | undefined;
3333
3336
  }>;
3334
3337
  };
3335
3338
  "events-getNonUserSchoolInvite": {
@@ -3450,16 +3453,47 @@ export declare const allCallables: {
3450
3453
  students?: number | undefined;
3451
3454
  }>]>;
3452
3455
  response: z.ZodObject<{
3453
- code: z.ZodEnum<["updated", "emailed", "hasAccount"]>;
3456
+ code: z.ZodEnum<["updated", "emailed", "hasAccount", "alreadySignedUp"]>;
3454
3457
  eventSchoolId: z.ZodOptional<z.ZodString>;
3455
3458
  }, "strip", z.ZodTypeAny, {
3456
- code: "updated" | "emailed" | "hasAccount";
3459
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
3457
3460
  eventSchoolId?: string | undefined;
3458
3461
  }, {
3459
- code: "updated" | "emailed" | "hasAccount";
3462
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
3460
3463
  eventSchoolId?: string | undefined;
3461
3464
  }>;
3462
3465
  };
3466
+ "events-employerJoinEvent": {
3467
+ request: z.ZodObject<{
3468
+ eventId: z.ZodString;
3469
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
3470
+ providerContactId: z.ZodOptional<z.ZodString>;
3471
+ capacity: z.ZodOptional<z.ZodNumber>;
3472
+ proposedDates: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
3473
+ }, "strip", z.ZodTypeAny, {
3474
+ eventId: string;
3475
+ providerContactId?: string | undefined;
3476
+ externalEventAttendeeId?: string | undefined;
3477
+ capacity?: number | undefined;
3478
+ proposedDates?: Record<string, unknown>[] | undefined;
3479
+ }, {
3480
+ eventId: string;
3481
+ providerContactId?: string | undefined;
3482
+ externalEventAttendeeId?: string | undefined;
3483
+ capacity?: number | undefined;
3484
+ proposedDates?: Record<string, unknown>[] | undefined;
3485
+ }>;
3486
+ response: z.ZodOptional<z.ZodObject<{
3487
+ code: z.ZodEnum<["joined", "notFound", "notAccepting"]>;
3488
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
3489
+ }, "strip", z.ZodTypeAny, {
3490
+ code: "notFound" | "joined" | "notAccepting";
3491
+ externalEventAttendeeId?: string | undefined;
3492
+ }, {
3493
+ code: "notFound" | "joined" | "notAccepting";
3494
+ externalEventAttendeeId?: string | undefined;
3495
+ }>>;
3496
+ };
3463
3497
  "events-removeEventSlotBooking": {
3464
3498
  request: z.ZodObject<{
3465
3499
  eventSchoolId: z.ZodString;
@@ -3711,17 +3745,20 @@ export declare const callableGroups: {
3711
3745
  invited: z.ZodNumber;
3712
3746
  linked: z.ZodNumber;
3713
3747
  skipped: z.ZodNumber;
3748
+ duplicates: z.ZodOptional<z.ZodNumber>;
3714
3749
  remaining: z.ZodNumber;
3715
3750
  }, "strip", z.ZodTypeAny, {
3716
3751
  skipped: number;
3717
3752
  linked: number;
3718
3753
  invited: number;
3719
3754
  remaining: number;
3755
+ duplicates?: number | undefined;
3720
3756
  }, {
3721
3757
  skipped: number;
3722
3758
  linked: number;
3723
3759
  invited: number;
3724
3760
  remaining: number;
3761
+ duplicates?: number | undefined;
3725
3762
  }>;
3726
3763
  };
3727
3764
  "events-getNonUserSchoolInvite": {
@@ -3842,16 +3879,47 @@ export declare const callableGroups: {
3842
3879
  students?: number | undefined;
3843
3880
  }>]>;
3844
3881
  response: z.ZodObject<{
3845
- code: z.ZodEnum<["updated", "emailed", "hasAccount"]>;
3882
+ code: z.ZodEnum<["updated", "emailed", "hasAccount", "alreadySignedUp"]>;
3846
3883
  eventSchoolId: z.ZodOptional<z.ZodString>;
3847
3884
  }, "strip", z.ZodTypeAny, {
3848
- code: "updated" | "emailed" | "hasAccount";
3885
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
3849
3886
  eventSchoolId?: string | undefined;
3850
3887
  }, {
3851
- code: "updated" | "emailed" | "hasAccount";
3888
+ code: "updated" | "emailed" | "hasAccount" | "alreadySignedUp";
3852
3889
  eventSchoolId?: string | undefined;
3853
3890
  }>;
3854
3891
  };
3892
+ "events-employerJoinEvent": {
3893
+ request: z.ZodObject<{
3894
+ eventId: z.ZodString;
3895
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
3896
+ providerContactId: z.ZodOptional<z.ZodString>;
3897
+ capacity: z.ZodOptional<z.ZodNumber>;
3898
+ proposedDates: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
3899
+ }, "strip", z.ZodTypeAny, {
3900
+ eventId: string;
3901
+ providerContactId?: string | undefined;
3902
+ externalEventAttendeeId?: string | undefined;
3903
+ capacity?: number | undefined;
3904
+ proposedDates?: Record<string, unknown>[] | undefined;
3905
+ }, {
3906
+ eventId: string;
3907
+ providerContactId?: string | undefined;
3908
+ externalEventAttendeeId?: string | undefined;
3909
+ capacity?: number | undefined;
3910
+ proposedDates?: Record<string, unknown>[] | undefined;
3911
+ }>;
3912
+ response: z.ZodOptional<z.ZodObject<{
3913
+ code: z.ZodEnum<["joined", "notFound", "notAccepting"]>;
3914
+ externalEventAttendeeId: z.ZodOptional<z.ZodString>;
3915
+ }, "strip", z.ZodTypeAny, {
3916
+ code: "notFound" | "joined" | "notAccepting";
3917
+ externalEventAttendeeId?: string | undefined;
3918
+ }, {
3919
+ code: "notFound" | "joined" | "notAccepting";
3920
+ externalEventAttendeeId?: string | undefined;
3921
+ }>>;
3922
+ };
3855
3923
  "events-removeEventSlotBooking": {
3856
3924
  request: z.ZodObject<{
3857
3925
  eventSchoolId: z.ZodString;
@@ -1467,6 +1467,9 @@ export type CustomFormSchemaField = {
1467
1467
  max?: number;
1468
1468
  minRows?: number;
1469
1469
  options?: string[];
1470
+ multiple?: boolean;
1471
+ maxSelections?: number;
1472
+ inputType?: "email" | "tel";
1470
1473
  levels?: number;
1471
1474
  };
1472
1475
  };
@@ -3385,6 +3388,7 @@ export type ExternalEventAttendee = {
3385
3388
  schoolId?: string;
3386
3389
  eventId: string;
3387
3390
  providerContactId: string;
3391
+ source?: "link";
3388
3392
  finished?: boolean;
3389
3393
  students?: string[];
3390
3394
  schools?: {
@@ -3486,6 +3490,7 @@ export type ExternalEventCareersSchool = {
3486
3490
  schoolName?: string;
3487
3491
  staffName?: string;
3488
3492
  };
3493
+ source?: "link" | "email" | "hub";
3489
3494
  eventId: string;
3490
3495
  status: "invited" | "available" | "finalConfirmationSent" | "confirmed" | "feedbackSent" | "declined" | "removed" | "visibleTo" | "creator";
3491
3496
  slots?: {
@@ -1 +1 @@
1
- {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AAiwIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AAtqED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AAklEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AAywIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AA3qED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AAulEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.1222",
5
+ "version": "1.400.1223",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -68,6 +68,9 @@ export const eventsCallables = {
68
68
  invited: z.number(),
69
69
  linked: z.number(),
70
70
  skipped: z.number(),
71
+ // Addresses left out because the same school is already on the event (by account,
72
+ // email domain or school name). Its existing invite is resent instead.
73
+ duplicates: z.number().optional(),
71
74
  remaining: z.number(),
72
75
  }),
73
76
  },
@@ -99,7 +102,9 @@ export const eventsCallables = {
99
102
  // and email are then required, and the response carries the new eventSchoolId, or
100
103
  // "emailed" when that address already has an invite (its link is emailed, not returned), or
101
104
  // "hasAccount" when it belongs to a school already in the hub, which is invited through its
102
- // account instead and accepts after logging in.
105
+ // account instead and accepts after logging in, or "alreadySignedUp" when the same school is
106
+ // already on the event under another address (matched by account, email domain or school
107
+ // name): no record is made and the link is emailed to whoever registered it.
103
108
  z.object({
104
109
  action: z.literal("accept"),
105
110
  eventSchoolId: z.string().min(1).optional(),
@@ -127,10 +132,28 @@ export const eventsCallables = {
127
132
  }),
128
133
  ]),
129
134
  response: z.object({
130
- code: z.enum(["updated", "emailed", "hasAccount"]),
135
+ code: z.enum(["updated", "emailed", "hasAccount", "alreadySignedUp"]),
131
136
  eventSchoolId: z.string().optional(),
132
137
  }),
133
138
  },
139
+ // Public: an employer joining an event. With externalEventAttendeeId it's the invited attendee
140
+ // from the email link (the id is the credential) accepting. Without, it's a self sign-up from
141
+ // the public event link for the providerContactId the employer just gave: the attendee is made
142
+ // "providerAvailable" and its id returned, so the page can show the invite tasks (forms,
143
+ // uploads, files to review) straight after. An employer already on the event gets its id back.
144
+ "events-employerJoinEvent": {
145
+ request: z.object({
146
+ eventId: z.string().min(1),
147
+ externalEventAttendeeId: z.string().min(1).optional(),
148
+ providerContactId: z.string().min(1).optional(),
149
+ capacity: z.number().optional(),
150
+ proposedDates: z.array(z.record(z.string(), z.unknown())).optional(),
151
+ }),
152
+ response: z.object({
153
+ code: z.enum(["joined", "notFound", "notAccepting"]),
154
+ externalEventAttendeeId: z.string().optional(),
155
+ }).optional(),
156
+ },
134
157
  // Hub staff only. Frees the school's places in one slot.
135
158
  "events-removeEventSlotBooking": {
136
159
  request: z.object({
@@ -1494,6 +1494,9 @@ export type CustomFormSchemaField = {
1494
1494
  max?: number /* type: number */
1495
1495
  minRows?: number /* type: long */
1496
1496
  options?: string[] // from dropdown only
1497
+ multiple?: boolean // type: dropdown. Pick any number of options; the answer is a string[].
1498
+ maxSelections?: number // type: dropdown with multiple. Most options that can be picked, e.g. "select up to 3".
1499
+ inputType?: "email"|"tel" // type: short. Validates and labels the answer as an email address or phone number.
1497
1500
  levels?: number // For ratings, number of stars.
1498
1501
  }
1499
1502
  }
@@ -3389,6 +3392,7 @@ export type ExternalEventAttendee = {
3389
3392
  schoolId?: string,
3390
3393
  eventId: string,
3391
3394
  providerContactId: string,
3395
+ source?: "link", // Set when the employer signed itself up from the event's public link. Unset when invited.
3392
3396
  finished?: boolean,
3393
3397
  students?: string[],
3394
3398
  schools?: {[key: string]: number}, // NOTE ID with number of students
@@ -3478,6 +3482,10 @@ export type ExternalEventCareersSchool = {
3478
3482
  schoolName?: string,
3479
3483
  staffName?: string,
3480
3484
  },
3485
+ // How the school was added: "link" when it signed itself up from the hub's shareable link,
3486
+ // "email" when the hub invited it by email address, "hub" when the hub invited its account.
3487
+ // Unset on older records, which are "email" with nonUserSchool and "hub" without.
3488
+ source?: "link"|"email"|"hub",
3481
3489
  eventId: string,
3482
3490
  status: "invited"|"available"|"finalConfirmationSent"|"confirmed"|"feedbackSent"|"declined"|"removed"|"visibleTo"|"creator", // "removed": taken off the event by the hub. Hidden from the school, kept for the hub.
3483
3491
  slots?: {[slotId: string]: number}, // Timed slot bookings, with students per slot (1 when the event counts schools)