placementt-core 11.0.533 → 11.0.892
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.
- package/lib/constants.d.ts +13 -1
- package/lib/constants.js +86 -1
- package/lib/constants.js.map +1 -1
- package/lib/features/analytics/useAnalytics.d.ts +2 -0
- package/lib/features/analytics/useAnalytics.js +22 -19
- package/lib/features/analytics/useAnalytics.js.map +1 -1
- package/lib/features/global/downtime/useDowntime.d.ts +1 -0
- package/lib/features/global/downtime/useDowntime.js +9 -7
- package/lib/features/global/downtime/useDowntime.js.map +1 -1
- package/lib/features/global/users/useUserFunctions.js +1 -1
- package/lib/features/global/users/useUserFunctions.js.map +1 -1
- package/lib/features/jobs/jobsSlice.d.ts +10 -2
- package/lib/features/jobs/jobsSlice.js +5 -2
- package/lib/features/jobs/jobsSlice.js.map +1 -1
- package/lib/features/placements/studentPlacements/activePlacement.d.ts +5 -1
- package/lib/features/placements/studentPlacements/activePlacement.js +7 -3
- package/lib/features/placements/studentPlacements/activePlacement.js.map +1 -1
- package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.d.ts +3 -2
- package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.js +4 -1
- package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.js.map +1 -1
- package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.d.ts +2 -2
- package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.js +1 -1
- package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.js.map +1 -1
- package/lib/features/placements/studentPlacements/useStudentPlacements.d.ts +2 -12
- package/lib/features/placements/studentPlacements/useStudentPlacements.js +1 -26
- package/lib/features/placements/studentPlacements/useStudentPlacements.js.map +1 -1
- package/lib/features/updates/useUpdates.d.ts +1 -0
- package/lib/features/updates/useUpdates.js +13 -12
- package/lib/features/updates/useUpdates.js.map +1 -1
- package/lib/firebase/firebase.d.ts +5 -3
- package/lib/firebase/firebase.js +23 -12
- package/lib/firebase/firebase.js.map +1 -1
- package/lib/firebase/firebaseConfig.js.map +1 -1
- package/lib/firebase/firebaseQuery.d.ts +6 -2
- package/lib/firebase/firebaseQuery.js +11 -3
- package/lib/firebase/firebaseQuery.js.map +1 -1
- package/lib/firebase/readDatabase.d.ts +2 -4
- package/lib/firebase/readDatabase.js +30 -5
- package/lib/firebase/readDatabase.js.map +1 -1
- package/lib/firebase/writeDatabase.d.ts +6 -2
- package/lib/firebase/writeDatabase.js +2 -1
- package/lib/firebase/writeDatabase.js.map +1 -1
- package/lib/hooks.d.ts +277 -192
- package/lib/hooks.js +1437 -704
- package/lib/hooks.js.map +1 -1
- package/lib/reduxHooks.d.ts +122 -5
- package/lib/reduxHooks.js +132 -29
- package/lib/reduxHooks.js.map +1 -1
- package/lib/tasksAndTips.d.ts +19 -7
- package/lib/tasksAndTips.js +637 -164
- package/lib/tasksAndTips.js.map +1 -1
- package/lib/typeDefinitions.d.ts +321 -110
- package/lib/util.d.ts +15 -3
- package/lib/util.js +47 -10
- package/lib/util.js.map +1 -1
- package/package.json +7 -4
- package/src/constants.ts +91 -3
- package/src/features/analytics/useAnalytics.tsx +25 -17
- package/src/features/global/downtime/useDowntime.tsx +11 -7
- package/src/features/global/users/useUserFunctions.tsx +1 -1
- package/src/features/jobs/jobsSlice.ts +9 -3
- package/src/features/placements/studentPlacements/activePlacement.ts +8 -3
- package/src/features/placements/studentPlacements/completedStudentPlacementsSlice.ts +5 -2
- package/src/features/placements/studentPlacements/upcomingStudentPlacementsSlice.ts +2 -2
- package/src/features/placements/studentPlacements/useStudentPlacements.tsx +4 -28
- package/src/features/updates/useUpdates.tsx +14 -12
- package/src/firebase/firebase.tsx +26 -15
- package/src/firebase/firebaseConfig.tsx +1 -1
- package/src/firebase/firebaseQuery.tsx +11 -3
- package/src/firebase/readDatabase.tsx +34 -6
- package/src/firebase/writeDatabase.tsx +3 -1
- package/src/hooks.tsx +1804 -935
- package/src/reduxHooks.ts +144 -32
- package/src/tasksAndTips.ts +689 -166
- package/src/typeDefinitions.ts +373 -109
- package/src/util.ts +63 -18
package/src/typeDefinitions.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {DocumentData, DocumentReference, Timestamp} from "firebase/firestore";
|
|
2
2
|
import {Descendant} from "slate";
|
|
3
|
+
import {emailTemplates} from "./constants";
|
|
3
4
|
|
|
4
5
|
export type Products = "institutes"|"providers"|"students"|"admin";
|
|
5
6
|
|
|
@@ -32,6 +33,7 @@ export type StudentPlacementData = {
|
|
|
32
33
|
["address-line2"]: string,
|
|
33
34
|
locality: string,
|
|
34
35
|
postal_code: string,
|
|
36
|
+
what3Words?: string,
|
|
35
37
|
country: string,
|
|
36
38
|
cohort?: string,
|
|
37
39
|
leadTimes: string[],
|
|
@@ -39,9 +41,9 @@ export type StudentPlacementData = {
|
|
|
39
41
|
mapConsent: true | "institute" | false,
|
|
40
42
|
mapConsentDate?: string,
|
|
41
43
|
placementId?: string,
|
|
42
|
-
|
|
44
|
+
providerContactId?: string,
|
|
43
45
|
geoHash?: string,
|
|
44
|
-
statusType: "draft"|"submitted"|"active"|"completed"|"withdrawn",
|
|
46
|
+
statusType: "draft"|"submitted"|"active"|"completed"|"withdrawn"|"requested",
|
|
45
47
|
questions: PlacementQuestions,
|
|
46
48
|
staffRoles: string[],
|
|
47
49
|
sector: string,
|
|
@@ -49,6 +51,7 @@ export type StudentPlacementData = {
|
|
|
49
51
|
importedProviderForms?: boolean,
|
|
50
52
|
analytics: string[],
|
|
51
53
|
units: string,
|
|
54
|
+
schoolId?: string,
|
|
52
55
|
active: boolean,
|
|
53
56
|
completed: boolean,
|
|
54
57
|
personalAnalytics?: string[],
|
|
@@ -59,16 +62,22 @@ export type StudentPlacementData = {
|
|
|
59
62
|
draft: boolean,
|
|
60
63
|
activeDates: string[],
|
|
61
64
|
insurance: boolean|"awaitingReview",
|
|
65
|
+
insuranceSkippedReason?: string,
|
|
62
66
|
riskAssessment?: boolean|"awaitingReview",
|
|
63
|
-
riskAssessmentType?: "file"|"form",
|
|
64
|
-
riskAssessmentData?: {[key:string]: unknown}[],
|
|
67
|
+
riskAssessmentType?: "file"|"form"|"skipped",
|
|
68
|
+
riskAssessmentData?: {[key:string]: unknown}[]|string,
|
|
65
69
|
dbsCheck?: boolean|"awaitingReview",
|
|
66
|
-
dbsCheckType?: "file"|"form",
|
|
67
|
-
dbsCheckData?: {[key:string]: unknown}[],
|
|
70
|
+
dbsCheckType?: "file"|"form"|"skipped",
|
|
71
|
+
dbsCheckData?: {[key:string]: unknown}[]|string,
|
|
68
72
|
contactType?: "email"|"website"|"phone"|"post",
|
|
69
73
|
webpage?: string,
|
|
70
74
|
providerLogs?: string[],
|
|
71
75
|
studentsLogs?: string[],
|
|
76
|
+
notes?: {
|
|
77
|
+
providers?: Descendant[],
|
|
78
|
+
institutes?: Descendant[],
|
|
79
|
+
students?: Descendant[]
|
|
80
|
+
}
|
|
72
81
|
staffLogs?: [],
|
|
73
82
|
feedback: {
|
|
74
83
|
students: {
|
|
@@ -85,13 +94,22 @@ export type StudentPlacementData = {
|
|
|
85
94
|
},
|
|
86
95
|
},
|
|
87
96
|
onboarding: (OnboardingDocs&{
|
|
97
|
+
deadline?: string,
|
|
88
98
|
completed: {
|
|
89
|
-
submitted:
|
|
99
|
+
submitted: boolean,
|
|
100
|
+
submittedDate?: string,
|
|
90
101
|
accepted?: boolean,
|
|
91
102
|
filesViewed?: string[],
|
|
92
103
|
formsCompleted?: {[key: string]: unknown},
|
|
93
104
|
filesUploaded?: {[key: number]: string[]},
|
|
94
|
-
}})|false,
|
|
105
|
+
}})|false|null,
|
|
106
|
+
studentForename?: string,
|
|
107
|
+
studentSurname?: string,
|
|
108
|
+
studentEmail?: string,
|
|
109
|
+
skillsTargetsValues?: {[key: string]: {
|
|
110
|
+
provider: number[],
|
|
111
|
+
student: number[],
|
|
112
|
+
}}
|
|
95
113
|
}
|
|
96
114
|
|
|
97
115
|
export type PlacementQuestions = {
|
|
@@ -124,29 +142,32 @@ export type PlacementQuestions = {
|
|
|
124
142
|
payFrequency: "total"|"hourly"|"daily"|"weekly"|"monthly"|"annually",
|
|
125
143
|
}
|
|
126
144
|
|
|
127
|
-
export type SavedPlacement = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
145
|
+
// export type SavedPlacement = {
|
|
146
|
+
// placementId: string,
|
|
147
|
+
// savedByProduct: Products,
|
|
148
|
+
// savedByUserType: "Organisation"|"Student",
|
|
149
|
+
// savedById: string,
|
|
150
|
+
// schoolId?: string,
|
|
151
|
+
// status?: "Accepted" | "Blocked" | "providerReview";
|
|
152
|
+
// listed: boolean,
|
|
153
|
+
// concurrentPlacements?: number,
|
|
154
|
+
// id: string
|
|
155
|
+
// }
|
|
137
156
|
|
|
138
|
-
export type PlacementListingStages = "basic"|"address"|"students"|"responsibilities"|"applications"|"onboarding"|"review"|"complete";
|
|
157
|
+
// export type PlacementListingStages = "basic"|"address"|"students"|"responsibilities"|"applications"|"onboarding"|"review"|"complete";
|
|
139
158
|
|
|
140
159
|
export type PlacementListing = {
|
|
141
160
|
title: string,
|
|
142
|
-
uid: string,
|
|
143
|
-
template?: string,
|
|
144
|
-
providerId
|
|
161
|
+
// uid: string,
|
|
162
|
+
// template?: string,
|
|
163
|
+
providerId: string,
|
|
164
|
+
providerContactId: string,
|
|
145
165
|
name: string,
|
|
146
166
|
providerEmail: string,
|
|
147
167
|
providerPhone: string,
|
|
148
|
-
id
|
|
149
|
-
|
|
168
|
+
id?:string,
|
|
169
|
+
created?: string,
|
|
170
|
+
// studentType: "secondary" | "higher" | "undergraduate" | "postgraduate"
|
|
150
171
|
contactForename: string,
|
|
151
172
|
contactSurname: string,
|
|
152
173
|
["address-line1"]: string,
|
|
@@ -154,56 +175,53 @@ export type PlacementListing = {
|
|
|
154
175
|
locality: string,
|
|
155
176
|
postal_code: string,
|
|
156
177
|
country: string,
|
|
157
|
-
|
|
178
|
+
what3Words?: string,
|
|
158
179
|
geoHash?: string,
|
|
159
|
-
status: "listed"|"unlisted"|"deleted"|"draft",
|
|
180
|
+
// status: "listed"|"unlisted"|"deleted"|"draft",
|
|
160
181
|
questions: PlacementQuestions,
|
|
161
|
-
savedBy?: {[key:string]: {
|
|
182
|
+
savedBy?: {[key:string]: { // LIST OF SCHOOLS THAT HAVE SAVED THIS
|
|
183
|
+
MATschools?: string[],
|
|
162
184
|
exists: true,
|
|
185
|
+
cohorts?: {[key: string]: {
|
|
186
|
+
exists: boolean,
|
|
187
|
+
listed: boolean
|
|
188
|
+
}}
|
|
163
189
|
providerConsent: boolean,
|
|
164
|
-
providerConsentDate?:
|
|
165
|
-
|
|
190
|
+
providerConsentDate?: string,
|
|
191
|
+
savedByUserType: "Organisation"|"Student",
|
|
192
|
+
status: "uploaded"|"approved"|"rejected"|"providerReviewed"|"blocked"}},
|
|
166
193
|
mapConsent?: boolean,
|
|
167
|
-
|
|
194
|
+
mapConsentDate?: string,
|
|
168
195
|
uploadedBy: "student"|"institute"|"provider",
|
|
169
|
-
riskAssessmentType?: "file"|"form",
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
196
|
+
riskAssessmentType?: "file"|"form"|"skipped",
|
|
197
|
+
concurrentPlacements?: number,
|
|
198
|
+
riskAssessmentData?: {[key:string]: unknown}[]|string,
|
|
199
|
+
dbsCheckType?: "file"|"form"|"skipped",
|
|
200
|
+
dbsCheckData?: {[key:string]: unknown}[]|string,
|
|
173
201
|
contactType?: "email"|"website"|"phone"|"post",
|
|
174
202
|
webpage?: string,
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
203
|
+
sector?: string,
|
|
204
|
+
subsector?: string,
|
|
205
|
+
// stage: PlacementListingStages,
|
|
206
|
+
// placementDateType?: "any"|"range"|"defined",
|
|
207
|
+
// placementDates?: {start: string, end: string}[],
|
|
208
|
+
// applicationType?: "simple"|"complex",
|
|
209
|
+
// applicantWorkflowId?: string,
|
|
210
|
+
// applicantWorkflow?: ApplicantStage[],
|
|
211
|
+
// onboarding: (OnboardingDocs&{deadline: number})|false,
|
|
212
|
+
// maxApplicants?: number,
|
|
213
|
+
// maxStudents?: number,
|
|
214
|
+
// primaryContactId: string,
|
|
185
215
|
}
|
|
186
216
|
|
|
187
217
|
export type OnboardingDocs = {
|
|
188
|
-
deadline?: string,
|
|
189
218
|
message?: string,
|
|
190
|
-
deadlineType?: "date"|"days"
|
|
191
219
|
forms?: string[],
|
|
192
220
|
files?: string[],
|
|
193
|
-
formDetails?: {[key: string]:
|
|
194
|
-
{
|
|
195
|
-
name: string,
|
|
196
|
-
id: string,
|
|
197
|
-
description?: string,
|
|
198
|
-
product: Products,
|
|
199
|
-
oId: string,
|
|
200
|
-
form: CustomFormSchema
|
|
201
|
-
}},
|
|
202
221
|
requiredFiles?: {fileName: string, fileType: string}[]
|
|
203
|
-
viewableFiles?: {[key: string]: FileItem},
|
|
204
222
|
}
|
|
205
223
|
|
|
206
|
-
export type PlacementTemplate = PlacementListing&{templateName: string};
|
|
224
|
+
// export type PlacementTemplate = PlacementListing&{templateName: string};
|
|
207
225
|
|
|
208
226
|
export type OrganisationAddressStages = "address"|"contacts"|"misc"|"review"|"complete";
|
|
209
227
|
|
|
@@ -241,7 +259,9 @@ export type OrganisationAddress = Address & {
|
|
|
241
259
|
},
|
|
242
260
|
primaryContactId?: string,
|
|
243
261
|
default?: boolean,
|
|
244
|
-
flags?: ("addressMissing" | "noPrimaryContact")[]
|
|
262
|
+
flags?: ("addressMissing" | "noPrimaryContact")[],
|
|
263
|
+
color?: string;
|
|
264
|
+
image?: string|false;
|
|
245
265
|
};
|
|
246
266
|
|
|
247
267
|
export type Address = {
|
|
@@ -251,7 +271,8 @@ export type Address = {
|
|
|
251
271
|
locality: string,
|
|
252
272
|
postal_code: string,
|
|
253
273
|
country: string,
|
|
254
|
-
geoHash?: string
|
|
274
|
+
geoHash?: string,
|
|
275
|
+
what3Words?: string
|
|
255
276
|
};
|
|
256
277
|
|
|
257
278
|
export type FlagCodes =
|
|
@@ -273,13 +294,17 @@ export type FlagCodes =
|
|
|
273
294
|
"completeOnboarding"|
|
|
274
295
|
"reviewOnboarding"|
|
|
275
296
|
"requestedVisibleAddresses"|
|
|
276
|
-
"requestedVisiblePlacementListings"
|
|
297
|
+
"requestedVisiblePlacementListings"|
|
|
298
|
+
"addOnboarding"|
|
|
299
|
+
"studentNotAccepted"|
|
|
300
|
+
"reminder"
|
|
277
301
|
|
|
278
302
|
|
|
279
303
|
export type UserData = {
|
|
280
304
|
details: {
|
|
281
305
|
forename: string,
|
|
282
306
|
surname: string,
|
|
307
|
+
pronouns?: string,
|
|
283
308
|
parentEmail?: string,
|
|
284
309
|
year?: string
|
|
285
310
|
},
|
|
@@ -307,18 +332,20 @@ export type UserData = {
|
|
|
307
332
|
units?: string,
|
|
308
333
|
activationCode: number,
|
|
309
334
|
cohort?: string,
|
|
335
|
+
schoolId?: string,
|
|
310
336
|
cohortData?: CohortData,
|
|
311
337
|
dismissedTasks?: string[],
|
|
312
338
|
dismissedTutorials?: string[],
|
|
313
339
|
dismissedTips?: string[],
|
|
340
|
+
dismissedUpdateDate?: string, // A specific date from which all previous updates have been seen.
|
|
314
341
|
viewCohorts?: "all"|"some"|"none",
|
|
315
|
-
|
|
316
|
-
studentFilterValues?: string,
|
|
317
|
-
studentFilter?: string
|
|
318
|
-
visibleCohorts?: string,
|
|
342
|
+
viewStudents?: "all"|"some"|"none",
|
|
343
|
+
studentFilterValues?: string[], // comma delimited list of values, such as "a, b, c, d"
|
|
344
|
+
studentFilter?: string // Field on which students can be filtered
|
|
345
|
+
visibleCohorts?: string[], // comma delimited list of values
|
|
319
346
|
readUpdates?: string[],
|
|
320
347
|
contactProviderConsent?: boolean,
|
|
321
|
-
|
|
348
|
+
contactProviderConsentDate?: boolean
|
|
322
349
|
referrals?: number,
|
|
323
350
|
shareNameWithReferralLeaderboardConsent?: boolean,
|
|
324
351
|
shareNameWithReferralLeaderboardConsentDate?: boolean,
|
|
@@ -327,9 +354,21 @@ export type UserData = {
|
|
|
327
354
|
monthAdded?: number,
|
|
328
355
|
placementsCharged?: boolean,
|
|
329
356
|
visibleAddresses?: string[],
|
|
357
|
+
visibleSchools?: string[],
|
|
330
358
|
visibleListings?: string[],
|
|
331
359
|
requestedVisibleAddresses?: string[],
|
|
332
|
-
requestedVisibleListings?: string[]
|
|
360
|
+
requestedVisibleListings?: string[],
|
|
361
|
+
packageData?: BillingPackage,
|
|
362
|
+
viewAddresses?: "all"|"request"|"none"|"some",
|
|
363
|
+
viewSchools?: "all"|"request"|"none"|"some",
|
|
364
|
+
viewPlacementListings?: "all"|"request"|"none",
|
|
365
|
+
viewPlacementGroups?: "all"|"request"|"none",
|
|
366
|
+
skillsTargets?: string[],
|
|
367
|
+
skillsTargetsValues?: {[key: string]: {
|
|
368
|
+
provider: number[],
|
|
369
|
+
student: number[],
|
|
370
|
+
}},
|
|
371
|
+
alumniConversationUid?: string
|
|
333
372
|
};
|
|
334
373
|
|
|
335
374
|
export type AnalyticsItem = {
|
|
@@ -402,7 +441,13 @@ export type StaffUserPermissions =
|
|
|
402
441
|
editCohorts?: boolean,
|
|
403
442
|
deleteCohorts?: boolean,
|
|
404
443
|
editRequests?: boolean,
|
|
405
|
-
deleteRequests?: boolean
|
|
444
|
+
deleteRequests?: boolean,
|
|
445
|
+
addEmailTemplates?: boolean,
|
|
446
|
+
editEmailTemplates?: boolean,
|
|
447
|
+
deleteEmailTemplates?: boolean,
|
|
448
|
+
addActivity?: boolean,
|
|
449
|
+
editActivity?: boolean,
|
|
450
|
+
deleteActivity?: boolean,
|
|
406
451
|
}
|
|
407
452
|
|
|
408
453
|
export type ProviderUserPermissions = {
|
|
@@ -428,6 +473,9 @@ export type ProviderUserPermissions = {
|
|
|
428
473
|
viewPlacementGroups?: "all"|"request"|"none",
|
|
429
474
|
viewAddresses?: "all"|"request"|"none",
|
|
430
475
|
processApplicants?: boolean,
|
|
476
|
+
addSchools?: boolean,
|
|
477
|
+
editSchools?: boolean,
|
|
478
|
+
deleteSchools?: boolean,
|
|
431
479
|
addAddresses?: boolean,
|
|
432
480
|
editAddresses?: boolean,
|
|
433
481
|
deleteAddresses?: boolean,
|
|
@@ -492,44 +540,65 @@ export type ProviderPlacementData = {
|
|
|
492
540
|
|
|
493
541
|
|
|
494
542
|
export type ProviderData = {
|
|
495
|
-
staff: number,
|
|
496
|
-
staffFields: string[],
|
|
497
|
-
staffActive: number,
|
|
498
|
-
admin: string,
|
|
543
|
+
// staff: number,
|
|
544
|
+
// staffFields: string[],
|
|
545
|
+
// staffActive: number,
|
|
546
|
+
// admin: string,
|
|
499
547
|
name: string,
|
|
500
|
-
insurance: boolean,
|
|
548
|
+
// insurance: boolean|"awaitingReview",
|
|
549
|
+
// insuranceSkippedReason?: string,
|
|
501
550
|
regNumber?: string,
|
|
502
|
-
insuranceExpiry: string,
|
|
503
|
-
mapConsent?: boolean|"unlisted",
|
|
504
|
-
mapConsentDate?: string,
|
|
505
|
-
staffGuidance?: {[key:number]: string},
|
|
506
|
-
about?: string,
|
|
551
|
+
// insuranceExpiry: string,
|
|
552
|
+
// mapConsent?: boolean|"unlisted",
|
|
553
|
+
// mapConsentDate?: string,
|
|
554
|
+
// staffGuidance?: {[key:number]: string},
|
|
555
|
+
// about?: string,
|
|
507
556
|
sector: string,
|
|
508
|
-
defAddress: string,
|
|
557
|
+
// defAddress: string,
|
|
558
|
+
subsector: string,
|
|
559
|
+
website?: string,
|
|
560
|
+
created?: string
|
|
561
|
+
uploadedBy?: "institute"|"provider"|"student"
|
|
562
|
+
// onboarding?: {
|
|
563
|
+
// hasStaff?: boolean,
|
|
564
|
+
// multipleAddresses?: boolean,
|
|
565
|
+
// }
|
|
566
|
+
// registrationRequests?: boolean|string,
|
|
567
|
+
// registrationRequestsDate?: string,
|
|
568
|
+
// information: {
|
|
569
|
+
// description?: string,
|
|
570
|
+
// staff?: string,
|
|
571
|
+
// locations?: number,
|
|
572
|
+
// },
|
|
573
|
+
// discount?: string,
|
|
574
|
+
// package: string,
|
|
575
|
+
// splitBilling?: boolean,
|
|
576
|
+
// adminBillingContactId: string,
|
|
577
|
+
// addOnPackages?: string[],
|
|
578
|
+
}&Address
|
|
579
|
+
|
|
580
|
+
export type ProviderContactData = {
|
|
581
|
+
sector: string,
|
|
582
|
+
name: string,
|
|
509
583
|
subsector: string,
|
|
584
|
+
providerPhone?: string,
|
|
585
|
+
providerEmail: string,
|
|
586
|
+
contactForename: string,
|
|
587
|
+
contactSurname: string,
|
|
510
588
|
website?: string,
|
|
589
|
+
created: string,
|
|
590
|
+
providerId: string,
|
|
591
|
+
insurance: boolean|"awaitingReview",
|
|
592
|
+
insuranceSkippedReason?: string,
|
|
593
|
+
insuranceExpiry?: string,
|
|
511
594
|
savedBy?: {[key:string]: {
|
|
512
595
|
exists: true,
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
}
|
|
520
|
-
registrationRequests?: boolean|string,
|
|
521
|
-
registrationRequestsDate?: string,
|
|
522
|
-
information: {
|
|
523
|
-
description?: string,
|
|
524
|
-
staff?: string,
|
|
525
|
-
locations?: number,
|
|
526
|
-
},
|
|
527
|
-
discount?: string,
|
|
528
|
-
package?: string,
|
|
529
|
-
splitBilling?: boolean,
|
|
530
|
-
adminBillingContactId: string,
|
|
531
|
-
addOnPackages?: string[],
|
|
532
|
-
}
|
|
596
|
+
activities?: string[], // IDs of consented activities.
|
|
597
|
+
providerConsent?: boolean,
|
|
598
|
+
providerConsentDate?: string,
|
|
599
|
+
MATschools?: string[],
|
|
600
|
+
status: "uploaded"|"approved"|"rejected"|"providerReviewed"|"blocked"}},
|
|
601
|
+
}&Address
|
|
533
602
|
|
|
534
603
|
export type InstituteData = {
|
|
535
604
|
students: number,
|
|
@@ -539,7 +608,10 @@ export type InstituteData = {
|
|
|
539
608
|
studentsActive: number,
|
|
540
609
|
staffActive: number,
|
|
541
610
|
admin: string,
|
|
542
|
-
name: string
|
|
611
|
+
name: string,
|
|
612
|
+
monthAdded: number,
|
|
613
|
+
platformFee: number,
|
|
614
|
+
color?: string,
|
|
543
615
|
verifiedProviders?: string[],
|
|
544
616
|
awaitingProviderInsurance?: string[],
|
|
545
617
|
verifiedRiskAssessments?: string[],
|
|
@@ -551,12 +623,37 @@ export type InstituteData = {
|
|
|
551
623
|
cohortRequests: {[oId: string]: {[cohortId: string]: string[]}},
|
|
552
624
|
externalProviderUploads?: boolean,
|
|
553
625
|
discount?: string,
|
|
554
|
-
package
|
|
626
|
+
package: string,
|
|
555
627
|
splitBilling?: boolean,
|
|
556
628
|
adminBillingContactId?: string,
|
|
557
|
-
addOnPackages?: string[]
|
|
629
|
+
addOnPackages?: string[],
|
|
630
|
+
authorisedMISSystem?: {
|
|
631
|
+
name: "arbor",
|
|
632
|
+
data: {
|
|
633
|
+
url: string
|
|
634
|
+
}
|
|
635
|
+
},
|
|
636
|
+
acceptingAlumni?: boolean,
|
|
637
|
+
approveAlumni?: boolean,
|
|
638
|
+
shareAlumni?: boolean
|
|
639
|
+
approveAlumniMessages?: boolean,
|
|
640
|
+
anonymiseAlumniConvoStudents?: boolean,
|
|
641
|
+
alumniConversations?: boolean
|
|
558
642
|
}&Address;
|
|
559
643
|
|
|
644
|
+
export type ExternalActivity = {
|
|
645
|
+
title?: string,
|
|
646
|
+
description: string,
|
|
647
|
+
position?: number,
|
|
648
|
+
image?: string,
|
|
649
|
+
color: string,
|
|
650
|
+
public?: boolean,
|
|
651
|
+
oId?: string,
|
|
652
|
+
alumni?: boolean,
|
|
653
|
+
provider?: boolean,
|
|
654
|
+
permanent?: boolean
|
|
655
|
+
}
|
|
656
|
+
|
|
560
657
|
export type NotificationObject = {
|
|
561
658
|
buttonURL: string,
|
|
562
659
|
created: Timestamp,
|
|
@@ -647,6 +744,7 @@ export type Contact = {
|
|
|
647
744
|
"address-line1": string,
|
|
648
745
|
"address-line2": string,
|
|
649
746
|
locality: string,
|
|
747
|
+
what3Words?: string,
|
|
650
748
|
postal_code: string,
|
|
651
749
|
country: string,
|
|
652
750
|
created: string,
|
|
@@ -669,7 +767,9 @@ export type CohortData = {
|
|
|
669
767
|
customWorkflow?: boolean,
|
|
670
768
|
oId: string,
|
|
671
769
|
product: Products,
|
|
770
|
+
schoolId?: string,
|
|
672
771
|
designatedStaff?: string,
|
|
772
|
+
autoArchiveDate?: string,
|
|
673
773
|
logType?: "basic"|"custom",
|
|
674
774
|
logs?: {
|
|
675
775
|
students?: string,
|
|
@@ -688,8 +788,8 @@ export type CohortData = {
|
|
|
688
788
|
},
|
|
689
789
|
providerFeedbackSent?: Timestamp,
|
|
690
790
|
studentsFeedbackSent?: Timestamp,
|
|
691
|
-
|
|
692
|
-
|
|
791
|
+
emailTemplates?: {[key in keyof typeof emailTemplates]: string},
|
|
792
|
+
skillsTargets?: string[]
|
|
693
793
|
}
|
|
694
794
|
|
|
695
795
|
export type ArrowObject = {
|
|
@@ -723,6 +823,7 @@ export type PlacementReviewDetails = {
|
|
|
723
823
|
["address-line2"]: string,
|
|
724
824
|
locality: string,
|
|
725
825
|
postal_code: string,
|
|
826
|
+
what3Words?: string,
|
|
726
827
|
country: string,
|
|
727
828
|
key: string,
|
|
728
829
|
oId: string,
|
|
@@ -742,24 +843,27 @@ export type PlacementReviewDetails = {
|
|
|
742
843
|
questions: PlacementQuestions,
|
|
743
844
|
riskAssessment: boolean|"awaitingReview",
|
|
744
845
|
riskAssessmentType: "form"|"file",
|
|
745
|
-
riskAssessmentData?: {[key: string]: unknown},
|
|
846
|
+
riskAssessmentData?: {[key: string]: unknown}|string,
|
|
746
847
|
dbsCheck: boolean|"awaitingReview",
|
|
747
848
|
dbsCheckType: "form"|"file",
|
|
748
|
-
dbsCheckData?: {[key: string]: unknown},
|
|
849
|
+
dbsCheckData?: {[key: string]: unknown}|string,
|
|
749
850
|
}
|
|
750
851
|
},
|
|
751
852
|
requireELI?: boolean,
|
|
752
853
|
requireRA?: boolean,
|
|
753
854
|
requireDBS?: boolean,
|
|
754
855
|
importedProviderForms: boolean,
|
|
755
|
-
currentStage: WorkflowStage,
|
|
856
|
+
currentStage: WorkflowStage&{files: {[fileId: string]: {name: string, url: string}}},
|
|
756
857
|
placementId?: string,
|
|
858
|
+
providerContactId: string,
|
|
757
859
|
incompleteItems: {[key: number]: string[]},
|
|
758
|
-
riskAssessmentData?: {[key: string]: unknown}[],
|
|
759
|
-
dbsCheckData?: {[key: string]: unknown}[],
|
|
860
|
+
riskAssessmentData?: {[key: string]: unknown}[]|string,
|
|
861
|
+
dbsCheckData?: {[key: string]: unknown}[]|string,
|
|
760
862
|
feedbackText?: Descendant[],
|
|
761
863
|
feedback: CustomFormSchema,
|
|
762
|
-
providerFeedback?: {[key: string]: unknown}
|
|
864
|
+
providerFeedback?: {[key: string]: unknown},
|
|
865
|
+
primaryColor?: string,
|
|
866
|
+
primaryImage?: string
|
|
763
867
|
}
|
|
764
868
|
|
|
765
869
|
export type BlogCategories = "students"|"providers"|"institutes"|"placementt"
|
|
@@ -829,6 +933,7 @@ export type Application = {
|
|
|
829
933
|
uid: string,
|
|
830
934
|
applicantWorkflowId: string,
|
|
831
935
|
listingId: string,
|
|
936
|
+
addressId: string,
|
|
832
937
|
providerId: string,
|
|
833
938
|
reqUserType: "Students"|"Staff",
|
|
834
939
|
completedSections: {[stage: number]: {
|
|
@@ -884,6 +989,8 @@ export type Event = {
|
|
|
884
989
|
export type BillingPackage = {
|
|
885
990
|
name: string,
|
|
886
991
|
staffUnitCost: number,
|
|
992
|
+
platformFee: number,
|
|
993
|
+
platformFeeFrequency: "yearly"|"monthly",
|
|
887
994
|
studentUnitCost: number,
|
|
888
995
|
placementUnitCost: number,
|
|
889
996
|
product: Products,
|
|
@@ -892,8 +999,165 @@ export type BillingPackage = {
|
|
|
892
999
|
description: string
|
|
893
1000
|
}
|
|
894
1001
|
|
|
1002
|
+
export type EmailTemplate = {
|
|
1003
|
+
name: string,
|
|
1004
|
+
created: Timestamp,
|
|
1005
|
+
subject: string,
|
|
1006
|
+
emailTemplate: string,
|
|
1007
|
+
bodyText: Descendant[],
|
|
1008
|
+
color?: string,
|
|
1009
|
+
product: Products,
|
|
1010
|
+
oId: string,
|
|
1011
|
+
public?: boolean,
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
export type EmailTemplateConfig = {
|
|
1016
|
+
description: string,
|
|
1017
|
+
params: string[],
|
|
1018
|
+
button?: {text: string, link: string},
|
|
1019
|
+
type: "workflow"|"feedback"
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
export type Reminder = {
|
|
1024
|
+
collection: "users"|"placements"|"placementListings",
|
|
1025
|
+
documentId: string,
|
|
1026
|
+
product: Products,
|
|
1027
|
+
oId: string,
|
|
1028
|
+
created: Timestamp,
|
|
1029
|
+
title: string,
|
|
1030
|
+
description?: string,
|
|
1031
|
+
dueDate: string,
|
|
1032
|
+
status: "upcoming"|"dismissed"
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
export type Sorts = {[label: string]: {
|
|
1036
|
+
value: string
|
|
1037
|
+
direction: "asc"|"desc"
|
|
1038
|
+
}}|undefined
|
|
1039
|
+
|
|
1040
|
+
export type SchoolData = OrganisationAddress&{
|
|
1041
|
+
billingEmail?: string,
|
|
1042
|
+
billingContactId?: string,
|
|
1043
|
+
authorisedMISSystem?: {
|
|
1044
|
+
name: "arbor",
|
|
1045
|
+
data: {
|
|
1046
|
+
url: string
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
monthAdded: number,
|
|
1050
|
+
acceptingAlumni?: boolean,
|
|
1051
|
+
approveAlumni?: boolean,
|
|
1052
|
+
shareAlumni?: boolean
|
|
1053
|
+
approveAlumniMessages?: boolean,
|
|
1054
|
+
anonymiseAlumniConvoStudents?: boolean,
|
|
1055
|
+
alumniConversations?: boolean
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
|
|
1059
|
+
export type ExternalEvent = {
|
|
1060
|
+
name: string,
|
|
1061
|
+
description: string,
|
|
1062
|
+
created: string,
|
|
1063
|
+
activityId?: string,
|
|
1064
|
+
oId: string,
|
|
1065
|
+
submissionClose: string,
|
|
1066
|
+
schoolId?: string,
|
|
1067
|
+
startDate?: string,
|
|
1068
|
+
endDate?: string,
|
|
1069
|
+
startTime?: string,
|
|
1070
|
+
endTime?: string,
|
|
1071
|
+
allDay?: boolean,
|
|
1072
|
+
recurring?: boolean,
|
|
1073
|
+
recurringFrequency: "daily"|"weekly"|"fortnightly"|"monthlyOnDate",
|
|
1074
|
+
recurringUntil?: string,
|
|
1075
|
+
students?: number,
|
|
1076
|
+
maxExternalAttendees?: number,
|
|
1077
|
+
stage: "basicDetails"|"date"|"invites"|"review"|"created",
|
|
1078
|
+
alumni: {
|
|
1079
|
+
shareable?: boolean,
|
|
1080
|
+
filters: {[key: string]: unknown}
|
|
1081
|
+
}
|
|
1082
|
+
employers: {
|
|
1083
|
+
shareable?: boolean,
|
|
1084
|
+
filters: {[key: string]: unknown}
|
|
1085
|
+
}
|
|
1086
|
+
}&Address
|
|
1087
|
+
|
|
895
1088
|
|
|
1089
|
+
export type Alumni = {
|
|
1090
|
+
forename: string,
|
|
1091
|
+
surname: string,
|
|
1092
|
+
email: string,
|
|
1093
|
+
startYear: string,
|
|
1094
|
+
endYear: string,
|
|
1095
|
+
activities: string[],
|
|
1096
|
+
oId: string,
|
|
1097
|
+
schoolId?: string,
|
|
1098
|
+
dateAdded?: string,
|
|
1099
|
+
currentEnrolment: "university"|"apprenticeship"|"employment",
|
|
1100
|
+
status: "inactive"|"awaitingStaff"|"active"
|
|
1101
|
+
sector: string,
|
|
1102
|
+
subsector: string,
|
|
1103
|
+
enrolmentHistory: {}[],
|
|
1104
|
+
visibleToStudents?: boolean,
|
|
1105
|
+
enableConversations?: boolean,
|
|
1106
|
+
linkCode: string,
|
|
1107
|
+
linkCodeExpiry: string
|
|
1108
|
+
}
|
|
896
1109
|
|
|
1110
|
+
export type ExternalStudentAccount = {
|
|
1111
|
+
oId: string,
|
|
1112
|
+
schoolId?: string,
|
|
1113
|
+
forename?: string,
|
|
1114
|
+
surname?: string,
|
|
1115
|
+
email: string,
|
|
1116
|
+
created?: string
|
|
1117
|
+
}
|
|
897
1118
|
|
|
1119
|
+
export type AlumniConversation = {
|
|
1120
|
+
alumniId: string,
|
|
1121
|
+
externalStudentId: string,
|
|
1122
|
+
alumniSharable?: boolean,
|
|
1123
|
+
oId: string,
|
|
1124
|
+
schoolId?: string,
|
|
1125
|
+
studentSharable?: boolean,
|
|
1126
|
+
messages: {[key: string]: {
|
|
1127
|
+
sentBy: "alumni"|"student",
|
|
1128
|
+
sentAt: string,
|
|
1129
|
+
message: string,
|
|
1130
|
+
delivered: "blocked"|"pending"|true,
|
|
1131
|
+
}},
|
|
1132
|
+
open: boolean,
|
|
1133
|
+
reported?: boolean,
|
|
1134
|
+
delivered: "blocked"|"pending"|true,
|
|
1135
|
+
report?: {
|
|
1136
|
+
reportedBy: "alumni"|"student"
|
|
1137
|
+
message: string,
|
|
1138
|
+
createdDateTime: string,
|
|
1139
|
+
resolvedDateTime: string,
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
898
1142
|
|
|
1143
|
+
export type AlumniConvoUser = {
|
|
1144
|
+
forename: string,
|
|
1145
|
+
surname: string,
|
|
1146
|
+
email: string,
|
|
1147
|
+
dateAdded: string,
|
|
1148
|
+
oId: string,
|
|
1149
|
+
schoolId?: string,
|
|
1150
|
+
linkCode: string,
|
|
1151
|
+
linkCodeExpiry: string
|
|
1152
|
+
}
|
|
899
1153
|
|
|
1154
|
+
export type Update = {
|
|
1155
|
+
title: string,
|
|
1156
|
+
description: Descendant[],
|
|
1157
|
+
userType: "Staff"|"Students",
|
|
1158
|
+
product: Products,
|
|
1159
|
+
buttonText?: string,
|
|
1160
|
+
buttonLink?: string,
|
|
1161
|
+
date: string,
|
|
1162
|
+
imageData?: boolean
|
|
1163
|
+
}
|