placementt-core 1.400.704 → 1.400.706
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/typeDefinitions.d.ts +1 -0
- package/lib/util.d.ts +6 -1
- package/lib/util.js +198 -4
- package/lib/util.js.map +1 -1
- package/package.json +1 -1
- package/src/typeDefinitions.ts +1 -0
- package/src/util.ts +239 -4
package/lib/typeDefinitions.d.ts
CHANGED
package/lib/util.d.ts
CHANGED
|
@@ -136,5 +136,10 @@ type CustomerFlag = {
|
|
|
136
136
|
export type CustomerFlags = {
|
|
137
137
|
[flagGroup: string]: CustomerFlag;
|
|
138
138
|
};
|
|
139
|
-
export declare const fetchCustomerFlags: (user: UserData, oId: string, institute: InstituteData, admin: UserData) => Promise<CustomerFlags>;
|
|
139
|
+
export declare const fetchCustomerFlags: (user: UserData, oId: string, institute: InstituteData, admin: UserData, minSeverity?: CustomerFlag["severity"]) => Promise<CustomerFlags>;
|
|
140
|
+
export type OnboardingTaskResult = {
|
|
141
|
+
title: string;
|
|
142
|
+
completed: boolean;
|
|
143
|
+
};
|
|
144
|
+
export declare const fetchOnboardingChecklist: (user: UserData, oId: string, institute: InstituteData, admin: UserData) => Promise<OnboardingTaskResult[]>;
|
|
140
145
|
export {};
|
package/lib/util.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.fetchCustomerFlags = exports.convertDataViwerSelectionToBackend = exports.generateAcademicYears = exports.calculateOverallEngagementScore = exports.calculateYearScore = exports.getWeightsForOES = exports.getMostRecentAlumniMessage = exports.getBookedPlacementDates = exports.getPlacementFlagCodes = void 0;
|
|
6
|
+
exports.fetchOnboardingChecklist = exports.fetchCustomerFlags = exports.convertDataViwerSelectionToBackend = exports.generateAcademicYears = exports.calculateOverallEngagementScore = exports.calculateYearScore = exports.getWeightsForOES = exports.getMostRecentAlumniMessage = exports.getBookedPlacementDates = exports.getPlacementFlagCodes = void 0;
|
|
7
7
|
exports.objectsEqualNew = objectsEqualNew;
|
|
8
8
|
exports.buildEmailHTML = buildEmailHTML;
|
|
9
9
|
exports.getMonthsBetweenDates = getMonthsBetweenDates;
|
|
@@ -1064,6 +1064,17 @@ const convertDataViwerSelectionToBackend = (s) => {
|
|
|
1064
1064
|
return Object.keys(s);
|
|
1065
1065
|
};
|
|
1066
1066
|
exports.convertDataViwerSelectionToBackend = convertDataViwerSelectionToBackend;
|
|
1067
|
+
const severityOrder = ["info", "warning", "error"];
|
|
1068
|
+
const filterChecksBySeverity = (groups, minSeverity) => {
|
|
1069
|
+
const minIndex = severityOrder.indexOf(minSeverity);
|
|
1070
|
+
const filtered = {};
|
|
1071
|
+
for (const [group, checks] of Object.entries(groups)) {
|
|
1072
|
+
const kept = checks.filter(c => severityOrder.indexOf(c.severity) >= minIndex);
|
|
1073
|
+
if (kept.length)
|
|
1074
|
+
filtered[group] = kept;
|
|
1075
|
+
}
|
|
1076
|
+
return filtered;
|
|
1077
|
+
};
|
|
1067
1078
|
const runCheckGroup = async (firebaseQuery, user, oId, institute, admin, groups) => {
|
|
1068
1079
|
const flags = {};
|
|
1069
1080
|
await Promise.all(Object.entries(groups).map(async ([groupName, checks]) => {
|
|
@@ -1082,10 +1093,11 @@ const runCheckGroup = async (firebaseQuery, user, oId, institute, admin, groups)
|
|
|
1082
1093
|
}));
|
|
1083
1094
|
return flags;
|
|
1084
1095
|
};
|
|
1085
|
-
const fetchCustomerFlags = async (user, oId, institute, admin) => {
|
|
1096
|
+
const fetchCustomerFlags = async (user, oId, institute, admin, minSeverity) => {
|
|
1086
1097
|
var _a;
|
|
1087
1098
|
const firebaseQuery = new firebaseQuery_1.default();
|
|
1088
|
-
const
|
|
1099
|
+
const applyFilter = (groups) => minSeverity ? filterChecksBySeverity(groups, minSeverity) : groups;
|
|
1100
|
+
const packageChecks = applyFilter((_a = customerChecks[institute.package]) !== null && _a !== void 0 ? _a : {});
|
|
1089
1101
|
const packageFlags = await runCheckGroup(firebaseQuery, user, oId, institute, admin, packageChecks);
|
|
1090
1102
|
const featureKeys = ["docCheck", "workExperience", "employerEvents"];
|
|
1091
1103
|
const featureFlags = {};
|
|
@@ -1093,7 +1105,9 @@ const fetchCustomerFlags = async (user, oId, institute, admin) => {
|
|
|
1093
1105
|
var _a;
|
|
1094
1106
|
if (!institute[feature])
|
|
1095
1107
|
return;
|
|
1096
|
-
const featureGroups = (_a = customerChecks[feature]) !== null && _a !== void 0 ? _a : {};
|
|
1108
|
+
const featureGroups = applyFilter((_a = customerChecks[feature]) !== null && _a !== void 0 ? _a : {});
|
|
1109
|
+
if (!Object.keys(featureGroups).length)
|
|
1110
|
+
return;
|
|
1097
1111
|
const result = await runCheckGroup(firebaseQuery, user, oId, institute, admin, featureGroups);
|
|
1098
1112
|
Object.assign(featureFlags, result);
|
|
1099
1113
|
}));
|
|
@@ -1218,4 +1232,184 @@ const customerChecks = {
|
|
|
1218
1232
|
],
|
|
1219
1233
|
},
|
|
1220
1234
|
};
|
|
1235
|
+
const fetchOnboardingChecklist = async (user, oId, institute, admin) => {
|
|
1236
|
+
var _a, _b;
|
|
1237
|
+
const firebaseQuery = new firebaseQuery_1.default();
|
|
1238
|
+
const results = [];
|
|
1239
|
+
const runGroup = (checks) => Promise.all(checks.map(async (check) => ({
|
|
1240
|
+
title: check.title,
|
|
1241
|
+
completed: await check.callback({ firebaseQuery, user, oId, institute, admin }),
|
|
1242
|
+
})));
|
|
1243
|
+
results.push(...await runGroup((_a = onboardingChecks[institute.package]) !== null && _a !== void 0 ? _a : []));
|
|
1244
|
+
const featureKeys = ["workExperience", "employerEvents"];
|
|
1245
|
+
for (const feature of featureKeys) {
|
|
1246
|
+
if (!institute[feature])
|
|
1247
|
+
continue;
|
|
1248
|
+
results.push(...await runGroup((_b = onboardingChecks[feature]) !== null && _b !== void 0 ? _b : []));
|
|
1249
|
+
}
|
|
1250
|
+
return results;
|
|
1251
|
+
};
|
|
1252
|
+
exports.fetchOnboardingChecklist = fetchOnboardingChecklist;
|
|
1253
|
+
const onboardingChecks = {
|
|
1254
|
+
// ── Package tasks ────────────────────────────────────────────────────────
|
|
1255
|
+
"careersSchool": [
|
|
1256
|
+
{
|
|
1257
|
+
title: "Sent Welcome Email",
|
|
1258
|
+
callback: async ({ firebaseQuery, institute }) => {
|
|
1259
|
+
const count = await firebaseQuery.getCount(["users", institute.admin, "comms"]);
|
|
1260
|
+
return count > 0;
|
|
1261
|
+
},
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
title: "Viewed Network",
|
|
1265
|
+
callback: async ({ admin }) => {
|
|
1266
|
+
var _a;
|
|
1267
|
+
return Boolean((_a = admin.dismissedTutorials) === null || _a === void 0 ? void 0 : _a.includes("instituteStaffPlacements"));
|
|
1268
|
+
},
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
title: "View Employer Opportunity",
|
|
1272
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1273
|
+
const count = await firebaseQuery.getCount(["externalEventRequests"], [(0, firestore_1.where)(`viewedBy.${oId}`, "==", true)]);
|
|
1274
|
+
return count > 0;
|
|
1275
|
+
},
|
|
1276
|
+
},
|
|
1277
|
+
{
|
|
1278
|
+
title: "Created Event",
|
|
1279
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1280
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1281
|
+
return count > 0;
|
|
1282
|
+
},
|
|
1283
|
+
},
|
|
1284
|
+
{
|
|
1285
|
+
title: "Invited Employers to Event",
|
|
1286
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1287
|
+
const count = await firebaseQuery.getCount(["externalEventAttendees"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1288
|
+
return count > 0;
|
|
1289
|
+
},
|
|
1290
|
+
},
|
|
1291
|
+
],
|
|
1292
|
+
"careersHub": [
|
|
1293
|
+
{
|
|
1294
|
+
title: "Staff member added",
|
|
1295
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1296
|
+
const count = await firebaseQuery.getCount(["users"], [(0, firestore_1.where)("product", "==", "institutes"), (0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("userType", "==", "Staff")]);
|
|
1297
|
+
return count > 0;
|
|
1298
|
+
},
|
|
1299
|
+
},
|
|
1300
|
+
{
|
|
1301
|
+
title: "Network invite sent to employer",
|
|
1302
|
+
callback: async ({ institute }) => Boolean(institute.careersHubLinks && Object.keys(institute.careersHubLinks).length > 0),
|
|
1303
|
+
},
|
|
1304
|
+
],
|
|
1305
|
+
"institutes-one": [],
|
|
1306
|
+
"institutes-two": [
|
|
1307
|
+
{
|
|
1308
|
+
title: "Staff members added",
|
|
1309
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1310
|
+
const count = await firebaseQuery.getCount(["users"], [(0, firestore_1.where)("product", "==", "institutes"), (0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("userType", "==", "Staff")]);
|
|
1311
|
+
return count > 0;
|
|
1312
|
+
},
|
|
1313
|
+
},
|
|
1314
|
+
{
|
|
1315
|
+
title: "Schools Added",
|
|
1316
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1317
|
+
const count = await firebaseQuery.getCount(["institutes"], [(0, firestore_1.where)(`trustLinks.${oId}.exists`, "==", true)]);
|
|
1318
|
+
return count > 0;
|
|
1319
|
+
},
|
|
1320
|
+
},
|
|
1321
|
+
{
|
|
1322
|
+
title: "Schools Approved",
|
|
1323
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1324
|
+
const count = await firebaseQuery.getCount(["institutes"], [(0, firestore_1.where)(`trustLinks.${oId}.status`, "==", "approved")]);
|
|
1325
|
+
return count > 0;
|
|
1326
|
+
},
|
|
1327
|
+
},
|
|
1328
|
+
],
|
|
1329
|
+
// ── Feature tasks (run when feature flag is enabled) ─────────────────────
|
|
1330
|
+
"workExperience": [
|
|
1331
|
+
{
|
|
1332
|
+
title: "Cohort created",
|
|
1333
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1334
|
+
const count = await firebaseQuery.getCount(["cohorts"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1335
|
+
return count > 0;
|
|
1336
|
+
},
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
title: "Students Uploaded",
|
|
1340
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1341
|
+
const count = await firebaseQuery.getCount(["users"], [(0, firestore_1.where)("product", "==", "institutes"), (0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("userType", "==", "Students")]);
|
|
1342
|
+
return count > 0;
|
|
1343
|
+
},
|
|
1344
|
+
},
|
|
1345
|
+
{
|
|
1346
|
+
title: "Workflow Created",
|
|
1347
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1348
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [(0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("stage", "==", "created"), (0, firestore_1.where)("startPlacements", ">", (0, util_1.convertDate)(new Date(), "dbstring"))]));
|
|
1349
|
+
return Object.values(cohorts).filter((c) => (c === null || c === void 0 ? void 0 : c.workflow) && c.workflow.length > 0).length > 0;
|
|
1350
|
+
},
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
title: "Students Activated",
|
|
1354
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1355
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [(0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("stage", "==", "created"), (0, firestore_1.where)("startPlacements", ">", (0, util_1.convertDate)(new Date(), "dbstring"))]));
|
|
1356
|
+
const hasActiveStudents = (await Promise.all(Object.keys(cohorts).map(async (c) => (await firebaseQuery.getCount(["users"], [
|
|
1357
|
+
(0, firestore_1.where)("oId", "==", oId),
|
|
1358
|
+
(0, firestore_1.where)("userType", "==", "Students"),
|
|
1359
|
+
(0, firestore_1.where)("cohort", "==", c),
|
|
1360
|
+
(0, firestore_1.where)("status", "==", "active"),
|
|
1361
|
+
])) > 0))).some(Boolean);
|
|
1362
|
+
return hasActiveStudents;
|
|
1363
|
+
},
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
title: "Has Placements",
|
|
1367
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1368
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [(0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("stage", "==", "created"), (0, firestore_1.where)("startPlacements", ">", (0, util_1.convertDate)(new Date(), "dbstring"))]));
|
|
1369
|
+
const hasPlacements = (await Promise.all(Object.keys(cohorts).map(async (c) => (await firebaseQuery.getCount(["placements"], [
|
|
1370
|
+
(0, firestore_1.where)("oId", "==", oId),
|
|
1371
|
+
(0, firestore_1.where)("cohort", "==", c),
|
|
1372
|
+
])) > 0))).some(Boolean);
|
|
1373
|
+
return hasPlacements;
|
|
1374
|
+
},
|
|
1375
|
+
},
|
|
1376
|
+
],
|
|
1377
|
+
"employerEvents": [
|
|
1378
|
+
{
|
|
1379
|
+
title: "Employer event created",
|
|
1380
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1381
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1382
|
+
return count > 0;
|
|
1383
|
+
},
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
title: "Has Event In Future",
|
|
1387
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1388
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [(0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("startDate", ">", (0, util_1.convertDate)(new Date(), "dbstring"))]);
|
|
1389
|
+
return count > 0;
|
|
1390
|
+
},
|
|
1391
|
+
},
|
|
1392
|
+
{
|
|
1393
|
+
title: "Employers Invited To Event",
|
|
1394
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1395
|
+
const count = await firebaseQuery.getCount(["externalEventAttendees"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1396
|
+
return count > 0;
|
|
1397
|
+
},
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
title: "Students Invited To Event",
|
|
1401
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1402
|
+
const count = await firebaseQuery.getCount(["externalEventStudents"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1403
|
+
return count > 0;
|
|
1404
|
+
},
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
title: "Activated Parent Database",
|
|
1408
|
+
callback: async ({ firebaseQuery, oId }) => {
|
|
1409
|
+
const count = await firebaseQuery.getCount(["parents"], [(0, firestore_1.where)("oId", "==", oId)]);
|
|
1410
|
+
return count > 0;
|
|
1411
|
+
},
|
|
1412
|
+
},
|
|
1413
|
+
],
|
|
1414
|
+
};
|
|
1221
1415
|
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/typeDefinitions.ts
CHANGED
package/src/util.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {where} from "firebase/firestore";
|
|
2
2
|
import FirebaseQuery from "./firebase/firebaseQuery";
|
|
3
|
-
import {AlumniConversation, DataViewerSelectionBackend, DataViewerSelectionWeb, EmailTemplateConfig, ExternalEvent, ExternalEventAttendee, ExternalEventCareersSchool, ExternalEventStudent, FlagCodes, InstituteData, ProviderContactData, StudentPlacementData, UserData, WorkflowStage, YearScoreData} from "./typeDefinitions";
|
|
3
|
+
import {AlumniConversation, CohortData, DataViewerSelectionBackend, DataViewerSelectionWeb, EmailTemplateConfig, ExternalEvent, ExternalEventAttendee, ExternalEventCareersSchool, ExternalEventStudent, FlagCodes, InstituteData, ProviderContactData, StudentPlacementData, UserData, WorkflowStage, YearScoreData} from "./typeDefinitions";
|
|
4
4
|
import {capitalise, convertDate, getDateDiff} from "./firebase/util";
|
|
5
5
|
import {Descendant} from "slate";
|
|
6
6
|
import {PRIMARY_COLOUR} from "./constants";
|
|
@@ -1295,6 +1295,18 @@ export type CustomerFlags = {
|
|
|
1295
1295
|
|
|
1296
1296
|
|
|
1297
1297
|
|
|
1298
|
+
const severityOrder: CustomerFlag["severity"][] = ["info", "warning", "error"];
|
|
1299
|
+
|
|
1300
|
+
const filterChecksBySeverity = (groups: {[flagGroup: string]: CheckItem[]}, minSeverity: CustomerFlag["severity"]): {[flagGroup: string]: CheckItem[]} => {
|
|
1301
|
+
const minIndex = severityOrder.indexOf(minSeverity);
|
|
1302
|
+
const filtered: {[flagGroup: string]: CheckItem[]} = {};
|
|
1303
|
+
for (const [group, checks] of Object.entries(groups)) {
|
|
1304
|
+
const kept = checks.filter(c => severityOrder.indexOf(c.severity) >= minIndex);
|
|
1305
|
+
if (kept.length) filtered[group] = kept;
|
|
1306
|
+
}
|
|
1307
|
+
return filtered;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1298
1310
|
const runCheckGroup = async (firebaseQuery: FirebaseQuery, user: UserData, oId: string, institute: InstituteData, admin: UserData, groups: {[flagGroup: string]: CheckItem[]}): Promise<CustomerFlags> => {
|
|
1299
1311
|
const flags: CustomerFlags = {};
|
|
1300
1312
|
|
|
@@ -1318,9 +1330,13 @@ const runCheckGroup = async (firebaseQuery: FirebaseQuery, user: UserData, oId:
|
|
|
1318
1330
|
return flags;
|
|
1319
1331
|
};
|
|
1320
1332
|
|
|
1321
|
-
export const fetchCustomerFlags = async (user: UserData, oId: string, institute: InstituteData, admin: UserData): Promise<CustomerFlags> => {
|
|
1333
|
+
export const fetchCustomerFlags = async (user: UserData, oId: string, institute: InstituteData, admin: UserData, minSeverity?: CustomerFlag["severity"]): Promise<CustomerFlags> => {
|
|
1322
1334
|
const firebaseQuery = new FirebaseQuery();
|
|
1323
|
-
|
|
1335
|
+
|
|
1336
|
+
const applyFilter = (groups: {[flagGroup: string]: CheckItem[]}) =>
|
|
1337
|
+
minSeverity ? filterChecksBySeverity(groups, minSeverity) : groups;
|
|
1338
|
+
|
|
1339
|
+
const packageChecks = applyFilter(customerChecks[institute.package] ?? {});
|
|
1324
1340
|
const packageFlags = await runCheckGroup(firebaseQuery, user, oId, institute, admin, packageChecks);
|
|
1325
1341
|
|
|
1326
1342
|
const featureKeys = ["docCheck", "workExperience", "employerEvents"] as const;
|
|
@@ -1329,7 +1345,8 @@ export const fetchCustomerFlags = async (user: UserData, oId: string, institute:
|
|
|
1329
1345
|
await Promise.all(
|
|
1330
1346
|
featureKeys.map(async (feature) => {
|
|
1331
1347
|
if (!institute[feature]) return;
|
|
1332
|
-
const featureGroups = customerChecks[feature] ?? {};
|
|
1348
|
+
const featureGroups = applyFilter(customerChecks[feature] ?? {});
|
|
1349
|
+
if (!Object.keys(featureGroups).length) return;
|
|
1333
1350
|
const result = await runCheckGroup(firebaseQuery, user, oId, institute, admin, featureGroups);
|
|
1334
1351
|
Object.assign(featureFlags, result);
|
|
1335
1352
|
})
|
|
@@ -1459,3 +1476,221 @@ const customerChecks: CustomerChecks = {
|
|
|
1459
1476
|
],
|
|
1460
1477
|
},
|
|
1461
1478
|
};
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
type OnboardingCheckItem = {
|
|
1483
|
+
title: string,
|
|
1484
|
+
callback: ({firebaseQuery, user, oId, institute, admin}: {firebaseQuery: FirebaseQuery, user: UserData, oId: string, institute: InstituteData, admin: UserData}) => Promise<boolean>,
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
type OnboardingChecklistMap = {
|
|
1488
|
+
[key: string]: OnboardingCheckItem[]
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
export type OnboardingTaskResult = {
|
|
1492
|
+
title: string,
|
|
1493
|
+
completed: boolean,
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
export const fetchOnboardingChecklist = async (user: UserData, oId: string, institute: InstituteData, admin: UserData): Promise<OnboardingTaskResult[]> => {
|
|
1497
|
+
const firebaseQuery = new FirebaseQuery();
|
|
1498
|
+
const results: OnboardingTaskResult[] = [];
|
|
1499
|
+
|
|
1500
|
+
const runGroup = (checks: OnboardingCheckItem[]) =>
|
|
1501
|
+
Promise.all(checks.map(async (check) => ({
|
|
1502
|
+
title: check.title,
|
|
1503
|
+
completed: await check.callback({firebaseQuery, user, oId, institute, admin}),
|
|
1504
|
+
})));
|
|
1505
|
+
|
|
1506
|
+
results.push(...await runGroup(onboardingChecks[institute.package] ?? []));
|
|
1507
|
+
|
|
1508
|
+
const featureKeys = ["workExperience", "employerEvents"] as const;
|
|
1509
|
+
for (const feature of featureKeys) {
|
|
1510
|
+
if (!institute[feature]) continue;
|
|
1511
|
+
results.push(...await runGroup(onboardingChecks[feature] ?? []));
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
return results;
|
|
1515
|
+
};
|
|
1516
|
+
|
|
1517
|
+
const onboardingChecks: OnboardingChecklistMap = {
|
|
1518
|
+
// ── Package tasks ────────────────────────────────────────────────────────
|
|
1519
|
+
"careersSchool": [
|
|
1520
|
+
{
|
|
1521
|
+
title: "Sent Welcome Email",
|
|
1522
|
+
callback: async ({firebaseQuery, institute}) => {
|
|
1523
|
+
const count = await firebaseQuery.getCount(["users", institute.admin, "comms"]);
|
|
1524
|
+
return count > 0;
|
|
1525
|
+
},
|
|
1526
|
+
},
|
|
1527
|
+
{
|
|
1528
|
+
title: "Viewed Network",
|
|
1529
|
+
callback: async ({admin}) => {
|
|
1530
|
+
return Boolean(admin.dismissedTutorials?.includes("instituteStaffPlacements"));
|
|
1531
|
+
},
|
|
1532
|
+
},
|
|
1533
|
+
{
|
|
1534
|
+
title: "View Employer Opportunity",
|
|
1535
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1536
|
+
const count = await firebaseQuery.getCount(["externalEventRequests"], [where(`viewedBy.${oId}`, "==", true)]);
|
|
1537
|
+
return count > 0;
|
|
1538
|
+
},
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
title: "Created Event",
|
|
1542
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1543
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [where("oId", "==", oId)]);
|
|
1544
|
+
return count > 0;
|
|
1545
|
+
},
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
title: "Invited Employers to Event",
|
|
1549
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1550
|
+
const count = await firebaseQuery.getCount(["externalEventAttendees"], [where("oId", "==", oId)]);
|
|
1551
|
+
return count > 0;
|
|
1552
|
+
},
|
|
1553
|
+
},
|
|
1554
|
+
],
|
|
1555
|
+
"careersHub": [
|
|
1556
|
+
{
|
|
1557
|
+
title: "Staff member added",
|
|
1558
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1559
|
+
const count = await firebaseQuery.getCount(["users"], [where("product", "==", "institutes"), where("oId", "==", oId), where("userType", "==", "Staff")]);
|
|
1560
|
+
return count > 0;
|
|
1561
|
+
},
|
|
1562
|
+
},
|
|
1563
|
+
{
|
|
1564
|
+
title: "Network invite sent to employer",
|
|
1565
|
+
callback: async ({institute}) => Boolean(institute.careersHubLinks && Object.keys(institute.careersHubLinks).length > 0),
|
|
1566
|
+
},
|
|
1567
|
+
],
|
|
1568
|
+
"institutes-one": [
|
|
1569
|
+
],
|
|
1570
|
+
"institutes-two": [
|
|
1571
|
+
{
|
|
1572
|
+
title: "Staff members added",
|
|
1573
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1574
|
+
const count = await firebaseQuery.getCount(["users"], [where("product", "==", "institutes"), where("oId", "==", oId), where("userType", "==", "Staff")]);
|
|
1575
|
+
return count > 0;
|
|
1576
|
+
},
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
title: "Schools Added",
|
|
1580
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1581
|
+
const count = await firebaseQuery.getCount(["institutes"], [where(`trustLinks.${oId}.exists`, "==", true)]);
|
|
1582
|
+
return count > 0;
|
|
1583
|
+
},
|
|
1584
|
+
},
|
|
1585
|
+
{
|
|
1586
|
+
title: "Schools Approved",
|
|
1587
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1588
|
+
const count = await firebaseQuery.getCount(["institutes"], [where(`trustLinks.${oId}.status`, "==", "approved")]);
|
|
1589
|
+
return count > 0;
|
|
1590
|
+
},
|
|
1591
|
+
},
|
|
1592
|
+
],
|
|
1593
|
+
// ── Feature tasks (run when feature flag is enabled) ─────────────────────
|
|
1594
|
+
"workExperience": [
|
|
1595
|
+
{
|
|
1596
|
+
title: "Cohort created",
|
|
1597
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1598
|
+
const count = await firebaseQuery.getCount(["cohorts"], [where("oId", "==", oId)]);
|
|
1599
|
+
return count > 0;
|
|
1600
|
+
},
|
|
1601
|
+
},
|
|
1602
|
+
{
|
|
1603
|
+
title: "Students Uploaded",
|
|
1604
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1605
|
+
const count = await firebaseQuery.getCount(["users"], [where("product", "==", "institutes"), where("oId", "==", oId), where("userType", "==", "Students")]);
|
|
1606
|
+
return count > 0;
|
|
1607
|
+
},
|
|
1608
|
+
},
|
|
1609
|
+
{
|
|
1610
|
+
title: "Workflow Created",
|
|
1611
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1612
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [where("oId", "==", oId), where("stage", "==", "created"), where("startPlacements", ">", convertDate(new Date(), "dbstring"))])) as {[key: string]: CohortData};
|
|
1613
|
+
return Object.values(cohorts).filter((c) => c?.workflow && c.workflow.length > 0).length > 0;
|
|
1614
|
+
},
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
title: "Students Activated",
|
|
1618
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1619
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [where("oId", "==", oId), where("stage", "==", "created"), where("startPlacements", ">", convertDate(new Date(), "dbstring"))])) as {[key: string]: CohortData};
|
|
1620
|
+
const hasActiveStudents = (
|
|
1621
|
+
await Promise.all(
|
|
1622
|
+
Object.keys(cohorts).map(async (c) =>
|
|
1623
|
+
(await firebaseQuery.getCount(
|
|
1624
|
+
["users"],
|
|
1625
|
+
[
|
|
1626
|
+
where("oId", "==", oId),
|
|
1627
|
+
where("userType", "==", "Students"),
|
|
1628
|
+
where("cohort", "==", c),
|
|
1629
|
+
where("status", "==", "active"),
|
|
1630
|
+
]
|
|
1631
|
+
)) > 0
|
|
1632
|
+
)
|
|
1633
|
+
)
|
|
1634
|
+
).some(Boolean);
|
|
1635
|
+
return hasActiveStudents;
|
|
1636
|
+
},
|
|
1637
|
+
},
|
|
1638
|
+
{
|
|
1639
|
+
title: "Has Placements",
|
|
1640
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1641
|
+
const cohorts = (await firebaseQuery.getDocsWhere(["cohorts"], [where("oId", "==", oId), where("stage", "==", "created"), where("startPlacements", ">", convertDate(new Date(), "dbstring"))])) as {[key: string]: CohortData};
|
|
1642
|
+
const hasPlacements = (
|
|
1643
|
+
await Promise.all(
|
|
1644
|
+
Object.keys(cohorts).map(async (c) =>
|
|
1645
|
+
(await firebaseQuery.getCount(
|
|
1646
|
+
["placements"],
|
|
1647
|
+
[
|
|
1648
|
+
where("oId", "==", oId),
|
|
1649
|
+
where("cohort", "==", c),
|
|
1650
|
+
]
|
|
1651
|
+
)) > 0
|
|
1652
|
+
)
|
|
1653
|
+
)
|
|
1654
|
+
).some(Boolean);
|
|
1655
|
+
return hasPlacements;
|
|
1656
|
+
},
|
|
1657
|
+
},
|
|
1658
|
+
],
|
|
1659
|
+
"employerEvents": [
|
|
1660
|
+
{
|
|
1661
|
+
title: "Employer event created",
|
|
1662
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1663
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [where("oId", "==", oId)]);
|
|
1664
|
+
return count > 0;
|
|
1665
|
+
},
|
|
1666
|
+
},
|
|
1667
|
+
{
|
|
1668
|
+
title: "Has Event In Future",
|
|
1669
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1670
|
+
const count = await firebaseQuery.getCount(["externalEvents"], [where("oId", "==", oId), where("startDate", ">", convertDate(new Date(), "dbstring") as string)]);
|
|
1671
|
+
return count > 0;
|
|
1672
|
+
},
|
|
1673
|
+
},
|
|
1674
|
+
{
|
|
1675
|
+
title: "Employers Invited To Event",
|
|
1676
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1677
|
+
const count = await firebaseQuery.getCount(["externalEventAttendees"], [where("oId", "==", oId)]);
|
|
1678
|
+
return count > 0;
|
|
1679
|
+
},
|
|
1680
|
+
},
|
|
1681
|
+
{
|
|
1682
|
+
title: "Students Invited To Event",
|
|
1683
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1684
|
+
const count = await firebaseQuery.getCount(["externalEventStudents"], [where("oId", "==", oId)]);
|
|
1685
|
+
return count > 0;
|
|
1686
|
+
},
|
|
1687
|
+
},
|
|
1688
|
+
{
|
|
1689
|
+
title: "Activated Parent Database",
|
|
1690
|
+
callback: async ({firebaseQuery, oId}) => {
|
|
1691
|
+
const count = await firebaseQuery.getCount(["parents"], [where("oId", "==", oId)]);
|
|
1692
|
+
return count > 0;
|
|
1693
|
+
},
|
|
1694
|
+
},
|
|
1695
|
+
],
|
|
1696
|
+
};
|