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/lib/typeDefinitions.d.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
|
export type Products = "institutes" | "providers" | "students" | "admin";
|
|
4
5
|
export type StudentPlacementData = {
|
|
5
6
|
title: string;
|
|
@@ -30,6 +31,7 @@ export type StudentPlacementData = {
|
|
|
30
31
|
["address-line2"]: string;
|
|
31
32
|
locality: string;
|
|
32
33
|
postal_code: string;
|
|
34
|
+
what3Words?: string;
|
|
33
35
|
country: string;
|
|
34
36
|
cohort?: string;
|
|
35
37
|
leadTimes: string[];
|
|
@@ -37,9 +39,9 @@ export type StudentPlacementData = {
|
|
|
37
39
|
mapConsent: true | "institute" | false;
|
|
38
40
|
mapConsentDate?: string;
|
|
39
41
|
placementId?: string;
|
|
40
|
-
|
|
42
|
+
providerContactId?: string;
|
|
41
43
|
geoHash?: string;
|
|
42
|
-
statusType: "draft" | "submitted" | "active" | "completed" | "withdrawn";
|
|
44
|
+
statusType: "draft" | "submitted" | "active" | "completed" | "withdrawn" | "requested";
|
|
43
45
|
questions: PlacementQuestions;
|
|
44
46
|
staffRoles: string[];
|
|
45
47
|
sector: string;
|
|
@@ -47,6 +49,7 @@ export type StudentPlacementData = {
|
|
|
47
49
|
importedProviderForms?: boolean;
|
|
48
50
|
analytics: string[];
|
|
49
51
|
units: string;
|
|
52
|
+
schoolId?: string;
|
|
50
53
|
active: boolean;
|
|
51
54
|
completed: boolean;
|
|
52
55
|
personalAnalytics?: string[];
|
|
@@ -57,20 +60,26 @@ export type StudentPlacementData = {
|
|
|
57
60
|
draft: boolean;
|
|
58
61
|
activeDates: string[];
|
|
59
62
|
insurance: boolean | "awaitingReview";
|
|
63
|
+
insuranceSkippedReason?: string;
|
|
60
64
|
riskAssessment?: boolean | "awaitingReview";
|
|
61
|
-
riskAssessmentType?: "file" | "form";
|
|
65
|
+
riskAssessmentType?: "file" | "form" | "skipped";
|
|
62
66
|
riskAssessmentData?: {
|
|
63
67
|
[key: string]: unknown;
|
|
64
|
-
}[];
|
|
68
|
+
}[] | string;
|
|
65
69
|
dbsCheck?: boolean | "awaitingReview";
|
|
66
|
-
dbsCheckType?: "file" | "form";
|
|
70
|
+
dbsCheckType?: "file" | "form" | "skipped";
|
|
67
71
|
dbsCheckData?: {
|
|
68
72
|
[key: string]: unknown;
|
|
69
|
-
}[];
|
|
73
|
+
}[] | string;
|
|
70
74
|
contactType?: "email" | "website" | "phone" | "post";
|
|
71
75
|
webpage?: string;
|
|
72
76
|
providerLogs?: string[];
|
|
73
77
|
studentsLogs?: string[];
|
|
78
|
+
notes?: {
|
|
79
|
+
providers?: Descendant[];
|
|
80
|
+
institutes?: Descendant[];
|
|
81
|
+
students?: Descendant[];
|
|
82
|
+
};
|
|
74
83
|
staffLogs?: [];
|
|
75
84
|
feedback: {
|
|
76
85
|
students: {
|
|
@@ -93,8 +102,10 @@ export type StudentPlacementData = {
|
|
|
93
102
|
};
|
|
94
103
|
};
|
|
95
104
|
onboarding: (OnboardingDocs & {
|
|
105
|
+
deadline?: string;
|
|
96
106
|
completed: {
|
|
97
|
-
submitted:
|
|
107
|
+
submitted: boolean;
|
|
108
|
+
submittedDate?: string;
|
|
98
109
|
accepted?: boolean;
|
|
99
110
|
filesViewed?: string[];
|
|
100
111
|
formsCompleted?: {
|
|
@@ -104,7 +115,16 @@ export type StudentPlacementData = {
|
|
|
104
115
|
[key: number]: string[];
|
|
105
116
|
};
|
|
106
117
|
};
|
|
107
|
-
}) | false;
|
|
118
|
+
}) | false | null;
|
|
119
|
+
studentForename?: string;
|
|
120
|
+
studentSurname?: string;
|
|
121
|
+
studentEmail?: string;
|
|
122
|
+
skillsTargetsValues?: {
|
|
123
|
+
[key: string]: {
|
|
124
|
+
provider: number[];
|
|
125
|
+
student: number[];
|
|
126
|
+
};
|
|
127
|
+
};
|
|
108
128
|
};
|
|
109
129
|
export type PlacementQuestions = {
|
|
110
130
|
title: string;
|
|
@@ -135,27 +155,15 @@ export type PlacementQuestions = {
|
|
|
135
155
|
pay?: number;
|
|
136
156
|
payFrequency: "total" | "hourly" | "daily" | "weekly" | "monthly" | "annually";
|
|
137
157
|
};
|
|
138
|
-
export type SavedPlacement = {
|
|
139
|
-
placementId: string;
|
|
140
|
-
savedByProduct: Products;
|
|
141
|
-
savedByUserType: "Organisation" | "Student";
|
|
142
|
-
savedById: string;
|
|
143
|
-
status?: "Accepted" | "Blocked" | "providerReview";
|
|
144
|
-
listed: boolean;
|
|
145
|
-
concurrentPlacements?: number;
|
|
146
|
-
id: string;
|
|
147
|
-
};
|
|
148
|
-
export type PlacementListingStages = "basic" | "address" | "students" | "responsibilities" | "applications" | "onboarding" | "review" | "complete";
|
|
149
158
|
export type PlacementListing = {
|
|
150
159
|
title: string;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
providerId?: string;
|
|
160
|
+
providerId: string;
|
|
161
|
+
providerContactId: string;
|
|
154
162
|
name: string;
|
|
155
163
|
providerEmail: string;
|
|
156
164
|
providerPhone: string;
|
|
157
|
-
id
|
|
158
|
-
|
|
165
|
+
id?: string;
|
|
166
|
+
created?: string;
|
|
159
167
|
contactForename: string;
|
|
160
168
|
contactSurname: string;
|
|
161
169
|
["address-line1"]: string;
|
|
@@ -163,71 +171,50 @@ export type PlacementListing = {
|
|
|
163
171
|
locality: string;
|
|
164
172
|
postal_code: string;
|
|
165
173
|
country: string;
|
|
166
|
-
|
|
174
|
+
what3Words?: string;
|
|
167
175
|
geoHash?: string;
|
|
168
|
-
status: "listed" | "unlisted" | "deleted" | "draft";
|
|
169
176
|
questions: PlacementQuestions;
|
|
170
177
|
savedBy?: {
|
|
171
178
|
[key: string]: {
|
|
179
|
+
MATschools?: string[];
|
|
172
180
|
exists: true;
|
|
181
|
+
cohorts?: {
|
|
182
|
+
[key: string]: {
|
|
183
|
+
exists: boolean;
|
|
184
|
+
listed: boolean;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
173
187
|
providerConsent: boolean;
|
|
174
|
-
providerConsentDate?:
|
|
175
|
-
|
|
188
|
+
providerConsentDate?: string;
|
|
189
|
+
savedByUserType: "Organisation" | "Student";
|
|
190
|
+
status: "uploaded" | "approved" | "rejected" | "providerReviewed" | "blocked";
|
|
176
191
|
};
|
|
177
192
|
};
|
|
178
193
|
mapConsent?: boolean;
|
|
179
|
-
|
|
194
|
+
mapConsentDate?: string;
|
|
180
195
|
uploadedBy: "student" | "institute" | "provider";
|
|
181
|
-
riskAssessmentType?: "file" | "form";
|
|
196
|
+
riskAssessmentType?: "file" | "form" | "skipped";
|
|
197
|
+
concurrentPlacements?: number;
|
|
182
198
|
riskAssessmentData?: {
|
|
183
199
|
[key: string]: unknown;
|
|
184
|
-
}[];
|
|
185
|
-
dbsCheckType?: "file" | "form";
|
|
200
|
+
}[] | string;
|
|
201
|
+
dbsCheckType?: "file" | "form" | "skipped";
|
|
186
202
|
dbsCheckData?: {
|
|
187
203
|
[key: string]: unknown;
|
|
188
|
-
}[];
|
|
204
|
+
}[] | string;
|
|
189
205
|
contactType?: "email" | "website" | "phone" | "post";
|
|
190
206
|
webpage?: string;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
placementDates?: {
|
|
194
|
-
start: string;
|
|
195
|
-
end: string;
|
|
196
|
-
}[];
|
|
197
|
-
applicationType?: "simple" | "complex";
|
|
198
|
-
applicantWorkflowId?: string;
|
|
199
|
-
applicantWorkflow?: ApplicantStage[];
|
|
200
|
-
onboarding: OnboardingDocs | false;
|
|
201
|
-
maxApplicants?: number;
|
|
202
|
-
maxStudents?: number;
|
|
203
|
-
primaryContactId: string;
|
|
207
|
+
sector?: string;
|
|
208
|
+
subsector?: string;
|
|
204
209
|
};
|
|
205
210
|
export type OnboardingDocs = {
|
|
206
|
-
deadline?: string;
|
|
207
211
|
message?: string;
|
|
208
|
-
deadlineType?: "date" | "days";
|
|
209
212
|
forms?: string[];
|
|
210
213
|
files?: string[];
|
|
211
|
-
formDetails?: {
|
|
212
|
-
[key: string]: {
|
|
213
|
-
name: string;
|
|
214
|
-
id: string;
|
|
215
|
-
description?: string;
|
|
216
|
-
product: Products;
|
|
217
|
-
oId: string;
|
|
218
|
-
form: CustomFormSchema;
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
214
|
requiredFiles?: {
|
|
222
215
|
fileName: string;
|
|
223
216
|
fileType: string;
|
|
224
217
|
}[];
|
|
225
|
-
viewableFiles?: {
|
|
226
|
-
[key: string]: FileItem;
|
|
227
|
-
};
|
|
228
|
-
};
|
|
229
|
-
export type PlacementTemplate = PlacementListing & {
|
|
230
|
-
templateName: string;
|
|
231
218
|
};
|
|
232
219
|
export type OrganisationAddressStages = "address" | "contacts" | "misc" | "review" | "complete";
|
|
233
220
|
export type OrganisationAddress = Address & {
|
|
@@ -265,6 +252,8 @@ export type OrganisationAddress = Address & {
|
|
|
265
252
|
primaryContactId?: string;
|
|
266
253
|
default?: boolean;
|
|
267
254
|
flags?: ("addressMissing" | "noPrimaryContact")[];
|
|
255
|
+
color?: string;
|
|
256
|
+
image?: string | false;
|
|
268
257
|
};
|
|
269
258
|
export type Address = {
|
|
270
259
|
id?: string;
|
|
@@ -274,12 +263,14 @@ export type Address = {
|
|
|
274
263
|
postal_code: string;
|
|
275
264
|
country: string;
|
|
276
265
|
geoHash?: string;
|
|
266
|
+
what3Words?: string;
|
|
277
267
|
};
|
|
278
|
-
export type FlagCodes = "inactive" | "noParentEmailWarning" | "noParentEmailError" | "overdue" | "noInsurance" | "providerRejection" | "nearingStart" | "awaitingInsurance" | "noRiskAssessment" | "awaitingRiskAssessment" | "parentEmailFailed" | "providerEmailFailed" | "userEmailFailed" | "noDbsCheck" | "awaitingDbsCheck" | "completeOnboarding" | "reviewOnboarding" | "requestedVisibleAddresses" | "requestedVisiblePlacementListings";
|
|
268
|
+
export type FlagCodes = "inactive" | "noParentEmailWarning" | "noParentEmailError" | "overdue" | "noInsurance" | "providerRejection" | "nearingStart" | "awaitingInsurance" | "noRiskAssessment" | "awaitingRiskAssessment" | "parentEmailFailed" | "providerEmailFailed" | "userEmailFailed" | "noDbsCheck" | "awaitingDbsCheck" | "completeOnboarding" | "reviewOnboarding" | "requestedVisibleAddresses" | "requestedVisiblePlacementListings" | "addOnboarding" | "studentNotAccepted" | "reminder";
|
|
279
269
|
export type UserData = {
|
|
280
270
|
details: {
|
|
281
271
|
forename: string;
|
|
282
272
|
surname: string;
|
|
273
|
+
pronouns?: string;
|
|
283
274
|
parentEmail?: string;
|
|
284
275
|
year?: string;
|
|
285
276
|
};
|
|
@@ -313,18 +304,20 @@ export type UserData = {
|
|
|
313
304
|
units?: string;
|
|
314
305
|
activationCode: number;
|
|
315
306
|
cohort?: string;
|
|
307
|
+
schoolId?: string;
|
|
316
308
|
cohortData?: CohortData;
|
|
317
309
|
dismissedTasks?: string[];
|
|
318
310
|
dismissedTutorials?: string[];
|
|
319
311
|
dismissedTips?: string[];
|
|
312
|
+
dismissedUpdateDate?: string;
|
|
320
313
|
viewCohorts?: "all" | "some" | "none";
|
|
321
|
-
|
|
322
|
-
studentFilterValues?: string;
|
|
314
|
+
viewStudents?: "all" | "some" | "none";
|
|
315
|
+
studentFilterValues?: string[];
|
|
323
316
|
studentFilter?: string;
|
|
324
|
-
visibleCohorts?: string;
|
|
317
|
+
visibleCohorts?: string[];
|
|
325
318
|
readUpdates?: string[];
|
|
326
319
|
contactProviderConsent?: boolean;
|
|
327
|
-
|
|
320
|
+
contactProviderConsentDate?: boolean;
|
|
328
321
|
referrals?: number;
|
|
329
322
|
shareNameWithReferralLeaderboardConsent?: boolean;
|
|
330
323
|
shareNameWithReferralLeaderboardConsentDate?: boolean;
|
|
@@ -333,9 +326,23 @@ export type UserData = {
|
|
|
333
326
|
monthAdded?: number;
|
|
334
327
|
placementsCharged?: boolean;
|
|
335
328
|
visibleAddresses?: string[];
|
|
329
|
+
visibleSchools?: string[];
|
|
336
330
|
visibleListings?: string[];
|
|
337
331
|
requestedVisibleAddresses?: string[];
|
|
338
332
|
requestedVisibleListings?: string[];
|
|
333
|
+
packageData?: BillingPackage;
|
|
334
|
+
viewAddresses?: "all" | "request" | "none" | "some";
|
|
335
|
+
viewSchools?: "all" | "request" | "none" | "some";
|
|
336
|
+
viewPlacementListings?: "all" | "request" | "none";
|
|
337
|
+
viewPlacementGroups?: "all" | "request" | "none";
|
|
338
|
+
skillsTargets?: string[];
|
|
339
|
+
skillsTargetsValues?: {
|
|
340
|
+
[key: string]: {
|
|
341
|
+
provider: number[];
|
|
342
|
+
student: number[];
|
|
343
|
+
};
|
|
344
|
+
};
|
|
345
|
+
alumniConversationUid?: string;
|
|
339
346
|
};
|
|
340
347
|
export type AnalyticsItem = {
|
|
341
348
|
units?: "placements" | "weeks" | "days" | "hours";
|
|
@@ -424,6 +431,12 @@ export type StaffUserPermissions = UserGroupData & {
|
|
|
424
431
|
deleteCohorts?: boolean;
|
|
425
432
|
editRequests?: boolean;
|
|
426
433
|
deleteRequests?: boolean;
|
|
434
|
+
addEmailTemplates?: boolean;
|
|
435
|
+
editEmailTemplates?: boolean;
|
|
436
|
+
deleteEmailTemplates?: boolean;
|
|
437
|
+
addActivity?: boolean;
|
|
438
|
+
editActivity?: boolean;
|
|
439
|
+
deleteActivity?: boolean;
|
|
427
440
|
};
|
|
428
441
|
export type ProviderUserPermissions = {
|
|
429
442
|
viewStaff: boolean;
|
|
@@ -448,6 +461,9 @@ export type ProviderUserPermissions = {
|
|
|
448
461
|
viewPlacementGroups?: "all" | "request" | "none";
|
|
449
462
|
viewAddresses?: "all" | "request" | "none";
|
|
450
463
|
processApplicants?: boolean;
|
|
464
|
+
addSchools?: boolean;
|
|
465
|
+
editSchools?: boolean;
|
|
466
|
+
deleteSchools?: boolean;
|
|
451
467
|
addAddresses?: boolean;
|
|
452
468
|
editAddresses?: boolean;
|
|
453
469
|
deleteAddresses?: boolean;
|
|
@@ -519,49 +535,39 @@ export type ProviderPlacementData = {
|
|
|
519
535
|
id?: string;
|
|
520
536
|
};
|
|
521
537
|
export type ProviderData = {
|
|
522
|
-
staff: number;
|
|
523
|
-
staffFields: string[];
|
|
524
|
-
staffActive: number;
|
|
525
|
-
admin: string;
|
|
526
538
|
name: string;
|
|
527
|
-
insurance: boolean;
|
|
528
539
|
regNumber?: string;
|
|
529
|
-
insuranceExpiry: string;
|
|
530
|
-
mapConsent?: boolean | "unlisted";
|
|
531
|
-
mapConsentDate?: string;
|
|
532
|
-
staffGuidance?: {
|
|
533
|
-
[key: number]: string;
|
|
534
|
-
};
|
|
535
|
-
about?: string;
|
|
536
540
|
sector: string;
|
|
537
|
-
defAddress: string;
|
|
538
541
|
subsector: string;
|
|
539
542
|
website?: string;
|
|
543
|
+
created?: string;
|
|
544
|
+
uploadedBy?: "institute" | "provider" | "student";
|
|
545
|
+
} & Address;
|
|
546
|
+
export type ProviderContactData = {
|
|
547
|
+
sector: string;
|
|
548
|
+
name: string;
|
|
549
|
+
subsector: string;
|
|
550
|
+
providerPhone?: string;
|
|
551
|
+
providerEmail: string;
|
|
552
|
+
contactForename: string;
|
|
553
|
+
contactSurname: string;
|
|
554
|
+
website?: string;
|
|
555
|
+
created: string;
|
|
556
|
+
providerId: string;
|
|
557
|
+
insurance: boolean | "awaitingReview";
|
|
558
|
+
insuranceSkippedReason?: string;
|
|
559
|
+
insuranceExpiry?: string;
|
|
540
560
|
savedBy?: {
|
|
541
561
|
[key: string]: {
|
|
542
562
|
exists: true;
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
563
|
+
activities?: string[];
|
|
564
|
+
providerConsent?: boolean;
|
|
565
|
+
providerConsentDate?: string;
|
|
566
|
+
MATschools?: string[];
|
|
567
|
+
status: "uploaded" | "approved" | "rejected" | "providerReviewed" | "blocked";
|
|
546
568
|
};
|
|
547
569
|
};
|
|
548
|
-
|
|
549
|
-
hasStaff?: boolean;
|
|
550
|
-
multipleAddresses?: boolean;
|
|
551
|
-
};
|
|
552
|
-
registrationRequests?: boolean | string;
|
|
553
|
-
registrationRequestsDate?: string;
|
|
554
|
-
information: {
|
|
555
|
-
description?: string;
|
|
556
|
-
staff?: string;
|
|
557
|
-
locations?: number;
|
|
558
|
-
};
|
|
559
|
-
discount?: string;
|
|
560
|
-
package?: string;
|
|
561
|
-
splitBilling?: boolean;
|
|
562
|
-
adminBillingContactId: string;
|
|
563
|
-
addOnPackages?: string[];
|
|
564
|
-
};
|
|
570
|
+
} & Address;
|
|
565
571
|
export type InstituteData = {
|
|
566
572
|
students: number;
|
|
567
573
|
staff: number;
|
|
@@ -571,6 +577,9 @@ export type InstituteData = {
|
|
|
571
577
|
staffActive: number;
|
|
572
578
|
admin: string;
|
|
573
579
|
name: string;
|
|
580
|
+
monthAdded: number;
|
|
581
|
+
platformFee: number;
|
|
582
|
+
color?: string;
|
|
574
583
|
verifiedProviders?: string[];
|
|
575
584
|
awaitingProviderInsurance?: string[];
|
|
576
585
|
verifiedRiskAssessments?: string[];
|
|
@@ -590,11 +599,35 @@ export type InstituteData = {
|
|
|
590
599
|
};
|
|
591
600
|
externalProviderUploads?: boolean;
|
|
592
601
|
discount?: string;
|
|
593
|
-
package
|
|
602
|
+
package: string;
|
|
594
603
|
splitBilling?: boolean;
|
|
595
604
|
adminBillingContactId?: string;
|
|
596
605
|
addOnPackages?: string[];
|
|
606
|
+
authorisedMISSystem?: {
|
|
607
|
+
name: "arbor";
|
|
608
|
+
data: {
|
|
609
|
+
url: string;
|
|
610
|
+
};
|
|
611
|
+
};
|
|
612
|
+
acceptingAlumni?: boolean;
|
|
613
|
+
approveAlumni?: boolean;
|
|
614
|
+
shareAlumni?: boolean;
|
|
615
|
+
approveAlumniMessages?: boolean;
|
|
616
|
+
anonymiseAlumniConvoStudents?: boolean;
|
|
617
|
+
alumniConversations?: boolean;
|
|
597
618
|
} & Address;
|
|
619
|
+
export type ExternalActivity = {
|
|
620
|
+
title?: string;
|
|
621
|
+
description: string;
|
|
622
|
+
position?: number;
|
|
623
|
+
image?: string;
|
|
624
|
+
color: string;
|
|
625
|
+
public?: boolean;
|
|
626
|
+
oId?: string;
|
|
627
|
+
alumni?: boolean;
|
|
628
|
+
provider?: boolean;
|
|
629
|
+
permanent?: boolean;
|
|
630
|
+
};
|
|
598
631
|
export type NotificationObject = {
|
|
599
632
|
buttonURL: string;
|
|
600
633
|
created: Timestamp;
|
|
@@ -677,6 +710,7 @@ export type Contact = {
|
|
|
677
710
|
"address-line1": string;
|
|
678
711
|
"address-line2": string;
|
|
679
712
|
locality: string;
|
|
713
|
+
what3Words?: string;
|
|
680
714
|
postal_code: string;
|
|
681
715
|
country: string;
|
|
682
716
|
created: string;
|
|
@@ -697,7 +731,9 @@ export type CohortData = {
|
|
|
697
731
|
customWorkflow?: boolean;
|
|
698
732
|
oId: string;
|
|
699
733
|
product: Products;
|
|
734
|
+
schoolId?: string;
|
|
700
735
|
designatedStaff?: string;
|
|
736
|
+
autoArchiveDate?: string;
|
|
701
737
|
logType?: "basic" | "custom";
|
|
702
738
|
logs?: {
|
|
703
739
|
students?: string;
|
|
@@ -716,8 +752,10 @@ export type CohortData = {
|
|
|
716
752
|
};
|
|
717
753
|
providerFeedbackSent?: Timestamp;
|
|
718
754
|
studentsFeedbackSent?: Timestamp;
|
|
719
|
-
|
|
720
|
-
|
|
755
|
+
emailTemplates?: {
|
|
756
|
+
[key in keyof typeof emailTemplates]: string;
|
|
757
|
+
};
|
|
758
|
+
skillsTargets?: string[];
|
|
721
759
|
};
|
|
722
760
|
export type ArrowObject = {
|
|
723
761
|
start: number | string;
|
|
@@ -748,6 +786,7 @@ export type PlacementReviewDetails = {
|
|
|
748
786
|
["address-line2"]: string;
|
|
749
787
|
locality: string;
|
|
750
788
|
postal_code: string;
|
|
789
|
+
what3Words?: string;
|
|
751
790
|
country: string;
|
|
752
791
|
key: string;
|
|
753
792
|
oId: string;
|
|
@@ -769,34 +808,44 @@ export type PlacementReviewDetails = {
|
|
|
769
808
|
riskAssessmentType: "form" | "file";
|
|
770
809
|
riskAssessmentData?: {
|
|
771
810
|
[key: string]: unknown;
|
|
772
|
-
};
|
|
811
|
+
} | string;
|
|
773
812
|
dbsCheck: boolean | "awaitingReview";
|
|
774
813
|
dbsCheckType: "form" | "file";
|
|
775
814
|
dbsCheckData?: {
|
|
776
815
|
[key: string]: unknown;
|
|
777
|
-
};
|
|
816
|
+
} | string;
|
|
778
817
|
};
|
|
779
818
|
};
|
|
780
819
|
requireELI?: boolean;
|
|
781
820
|
requireRA?: boolean;
|
|
782
821
|
requireDBS?: boolean;
|
|
783
822
|
importedProviderForms: boolean;
|
|
784
|
-
currentStage: WorkflowStage
|
|
823
|
+
currentStage: WorkflowStage & {
|
|
824
|
+
files: {
|
|
825
|
+
[fileId: string]: {
|
|
826
|
+
name: string;
|
|
827
|
+
url: string;
|
|
828
|
+
};
|
|
829
|
+
};
|
|
830
|
+
};
|
|
785
831
|
placementId?: string;
|
|
832
|
+
providerContactId: string;
|
|
786
833
|
incompleteItems: {
|
|
787
834
|
[key: number]: string[];
|
|
788
835
|
};
|
|
789
836
|
riskAssessmentData?: {
|
|
790
837
|
[key: string]: unknown;
|
|
791
|
-
}[];
|
|
838
|
+
}[] | string;
|
|
792
839
|
dbsCheckData?: {
|
|
793
840
|
[key: string]: unknown;
|
|
794
|
-
}[];
|
|
841
|
+
}[] | string;
|
|
795
842
|
feedbackText?: Descendant[];
|
|
796
843
|
feedback: CustomFormSchema;
|
|
797
844
|
providerFeedback?: {
|
|
798
845
|
[key: string]: unknown;
|
|
799
846
|
};
|
|
847
|
+
primaryColor?: string;
|
|
848
|
+
primaryImage?: string;
|
|
800
849
|
};
|
|
801
850
|
export type BlogCategories = "students" | "providers" | "institutes" | "placementt";
|
|
802
851
|
export type Blog = {
|
|
@@ -872,6 +921,7 @@ export type Application = {
|
|
|
872
921
|
uid: string;
|
|
873
922
|
applicantWorkflowId: string;
|
|
874
923
|
listingId: string;
|
|
924
|
+
addressId: string;
|
|
875
925
|
providerId: string;
|
|
876
926
|
reqUserType: "Students" | "Staff";
|
|
877
927
|
completedSections: {
|
|
@@ -931,6 +981,8 @@ export type Event = {
|
|
|
931
981
|
export type BillingPackage = {
|
|
932
982
|
name: string;
|
|
933
983
|
staffUnitCost: number;
|
|
984
|
+
platformFee: number;
|
|
985
|
+
platformFeeFrequency: "yearly" | "monthly";
|
|
934
986
|
studentUnitCost: number;
|
|
935
987
|
placementUnitCost: number;
|
|
936
988
|
product: Products;
|
|
@@ -940,3 +992,162 @@ export type BillingPackage = {
|
|
|
940
992
|
};
|
|
941
993
|
description: string;
|
|
942
994
|
};
|
|
995
|
+
export type EmailTemplate = {
|
|
996
|
+
name: string;
|
|
997
|
+
created: Timestamp;
|
|
998
|
+
subject: string;
|
|
999
|
+
emailTemplate: string;
|
|
1000
|
+
bodyText: Descendant[];
|
|
1001
|
+
color?: string;
|
|
1002
|
+
product: Products;
|
|
1003
|
+
oId: string;
|
|
1004
|
+
public?: boolean;
|
|
1005
|
+
};
|
|
1006
|
+
export type EmailTemplateConfig = {
|
|
1007
|
+
description: string;
|
|
1008
|
+
params: string[];
|
|
1009
|
+
button?: {
|
|
1010
|
+
text: string;
|
|
1011
|
+
link: string;
|
|
1012
|
+
};
|
|
1013
|
+
type: "workflow" | "feedback";
|
|
1014
|
+
};
|
|
1015
|
+
export type Reminder = {
|
|
1016
|
+
collection: "users" | "placements" | "placementListings";
|
|
1017
|
+
documentId: string;
|
|
1018
|
+
product: Products;
|
|
1019
|
+
oId: string;
|
|
1020
|
+
created: Timestamp;
|
|
1021
|
+
title: string;
|
|
1022
|
+
description?: string;
|
|
1023
|
+
dueDate: string;
|
|
1024
|
+
status: "upcoming" | "dismissed";
|
|
1025
|
+
};
|
|
1026
|
+
export type Sorts = {
|
|
1027
|
+
[label: string]: {
|
|
1028
|
+
value: string;
|
|
1029
|
+
direction: "asc" | "desc";
|
|
1030
|
+
};
|
|
1031
|
+
} | undefined;
|
|
1032
|
+
export type SchoolData = OrganisationAddress & {
|
|
1033
|
+
billingEmail?: string;
|
|
1034
|
+
billingContactId?: string;
|
|
1035
|
+
authorisedMISSystem?: {
|
|
1036
|
+
name: "arbor";
|
|
1037
|
+
data: {
|
|
1038
|
+
url: string;
|
|
1039
|
+
};
|
|
1040
|
+
};
|
|
1041
|
+
monthAdded: number;
|
|
1042
|
+
acceptingAlumni?: boolean;
|
|
1043
|
+
approveAlumni?: boolean;
|
|
1044
|
+
shareAlumni?: boolean;
|
|
1045
|
+
approveAlumniMessages?: boolean;
|
|
1046
|
+
anonymiseAlumniConvoStudents?: boolean;
|
|
1047
|
+
alumniConversations?: boolean;
|
|
1048
|
+
};
|
|
1049
|
+
export type ExternalEvent = {
|
|
1050
|
+
name: string;
|
|
1051
|
+
description: string;
|
|
1052
|
+
created: string;
|
|
1053
|
+
activityId?: string;
|
|
1054
|
+
oId: string;
|
|
1055
|
+
submissionClose: string;
|
|
1056
|
+
schoolId?: string;
|
|
1057
|
+
startDate?: string;
|
|
1058
|
+
endDate?: string;
|
|
1059
|
+
startTime?: string;
|
|
1060
|
+
endTime?: string;
|
|
1061
|
+
allDay?: boolean;
|
|
1062
|
+
recurring?: boolean;
|
|
1063
|
+
recurringFrequency: "daily" | "weekly" | "fortnightly" | "monthlyOnDate";
|
|
1064
|
+
recurringUntil?: string;
|
|
1065
|
+
students?: number;
|
|
1066
|
+
maxExternalAttendees?: number;
|
|
1067
|
+
stage: "basicDetails" | "date" | "invites" | "review" | "created";
|
|
1068
|
+
alumni: {
|
|
1069
|
+
shareable?: boolean;
|
|
1070
|
+
filters: {
|
|
1071
|
+
[key: string]: unknown;
|
|
1072
|
+
};
|
|
1073
|
+
};
|
|
1074
|
+
employers: {
|
|
1075
|
+
shareable?: boolean;
|
|
1076
|
+
filters: {
|
|
1077
|
+
[key: string]: unknown;
|
|
1078
|
+
};
|
|
1079
|
+
};
|
|
1080
|
+
} & Address;
|
|
1081
|
+
export type Alumni = {
|
|
1082
|
+
forename: string;
|
|
1083
|
+
surname: string;
|
|
1084
|
+
email: string;
|
|
1085
|
+
startYear: string;
|
|
1086
|
+
endYear: string;
|
|
1087
|
+
activities: string[];
|
|
1088
|
+
oId: string;
|
|
1089
|
+
schoolId?: string;
|
|
1090
|
+
dateAdded?: string;
|
|
1091
|
+
currentEnrolment: "university" | "apprenticeship" | "employment";
|
|
1092
|
+
status: "inactive" | "awaitingStaff" | "active";
|
|
1093
|
+
sector: string;
|
|
1094
|
+
subsector: string;
|
|
1095
|
+
enrolmentHistory: {}[];
|
|
1096
|
+
visibleToStudents?: boolean;
|
|
1097
|
+
enableConversations?: boolean;
|
|
1098
|
+
linkCode: string;
|
|
1099
|
+
linkCodeExpiry: string;
|
|
1100
|
+
};
|
|
1101
|
+
export type ExternalStudentAccount = {
|
|
1102
|
+
oId: string;
|
|
1103
|
+
schoolId?: string;
|
|
1104
|
+
forename?: string;
|
|
1105
|
+
surname?: string;
|
|
1106
|
+
email: string;
|
|
1107
|
+
created?: string;
|
|
1108
|
+
};
|
|
1109
|
+
export type AlumniConversation = {
|
|
1110
|
+
alumniId: string;
|
|
1111
|
+
externalStudentId: string;
|
|
1112
|
+
alumniSharable?: boolean;
|
|
1113
|
+
oId: string;
|
|
1114
|
+
schoolId?: string;
|
|
1115
|
+
studentSharable?: boolean;
|
|
1116
|
+
messages: {
|
|
1117
|
+
[key: string]: {
|
|
1118
|
+
sentBy: "alumni" | "student";
|
|
1119
|
+
sentAt: string;
|
|
1120
|
+
message: string;
|
|
1121
|
+
delivered: "blocked" | "pending" | true;
|
|
1122
|
+
};
|
|
1123
|
+
};
|
|
1124
|
+
open: boolean;
|
|
1125
|
+
reported?: boolean;
|
|
1126
|
+
delivered: "blocked" | "pending" | true;
|
|
1127
|
+
report?: {
|
|
1128
|
+
reportedBy: "alumni" | "student";
|
|
1129
|
+
message: string;
|
|
1130
|
+
createdDateTime: string;
|
|
1131
|
+
resolvedDateTime: string;
|
|
1132
|
+
};
|
|
1133
|
+
};
|
|
1134
|
+
export type AlumniConvoUser = {
|
|
1135
|
+
forename: string;
|
|
1136
|
+
surname: string;
|
|
1137
|
+
email: string;
|
|
1138
|
+
dateAdded: string;
|
|
1139
|
+
oId: string;
|
|
1140
|
+
schoolId?: string;
|
|
1141
|
+
linkCode: string;
|
|
1142
|
+
linkCodeExpiry: string;
|
|
1143
|
+
};
|
|
1144
|
+
export type Update = {
|
|
1145
|
+
title: string;
|
|
1146
|
+
description: Descendant[];
|
|
1147
|
+
userType: "Staff" | "Students";
|
|
1148
|
+
product: Products;
|
|
1149
|
+
buttonText?: string;
|
|
1150
|
+
buttonLink?: string;
|
|
1151
|
+
date: string;
|
|
1152
|
+
imageData?: boolean;
|
|
1153
|
+
};
|