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.
@@ -2331,6 +2331,7 @@ export type Communication = {
2331
2331
  uid?: string;
2332
2332
  oId?: string;
2333
2333
  emailMessages?: EmailMessage[];
2334
+ lastMessageDirection?: "inbound" | "outbound";
2334
2335
  };
2335
2336
  export type SupportTask = {
2336
2337
  uid: string;
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 packageChecks = (_a = customerChecks[institute.package]) !== null && _a !== void 0 ? _a : {};
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
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.704",
5
+ "version": "1.400.706",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -2286,6 +2286,7 @@ export type Communication = {
2286
2286
  uid?: string,
2287
2287
  oId?: string,
2288
2288
  emailMessages?: EmailMessage[];
2289
+ lastMessageDirection?: "inbound" | "outbound"
2289
2290
  };
2290
2291
 
2291
2292
  export type SupportTask = {
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
- const packageChecks = customerChecks[institute.package] ?? {};
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
+ };