placementt-core 1.400.1093 → 1.400.1095
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/featureMarketing.d.ts +35 -3
- package/lib/featureMarketing.js +49 -3
- package/lib/featureMarketing.js.map +1 -1
- package/lib/featureMarketing.test.js +44 -10
- package/lib/featureMarketing.test.js.map +1 -1
- package/lib/onboardingPathways.d.ts +0 -6
- package/lib/onboardingPathways.js.map +1 -1
- package/lib/typeDefinitions.d.ts +81 -0
- package/lib/typeDefinitions.js.map +1 -1
- package/package.json +1 -1
- package/src/featureMarketing.test.ts +50 -10
- package/src/featureMarketing.ts +78 -5
- package/src/onboardingPathways.ts +0 -5
- package/src/typeDefinitions.ts +82 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InstituteData } from "./typeDefinitions";
|
|
2
2
|
import { ResolvedProducts } from "./productResolver";
|
|
3
|
+
import { SurveyGroupScope } from "./surveys/types";
|
|
3
4
|
/**
|
|
4
5
|
* Feature marketing: the things a customer already pays for but has never set
|
|
5
6
|
* up, and whether now is the time to tell them about one.
|
|
@@ -16,6 +17,12 @@ import { ResolvedProducts } from "./productResolver";
|
|
|
16
17
|
* is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
|
|
17
18
|
* Marketing pitches `unconfigured` and nothing else.
|
|
18
19
|
*
|
|
20
|
+
* The exception is a yearly deliverable with no setup behind it, like the
|
|
21
|
+
* impact report: there "adopted" is this year's, because last year's is not
|
|
22
|
+
* the thing being offered, and a campaign per academic year is exactly the
|
|
23
|
+
* cadence wanted. Campaign ids carry the academic year, so it comes round
|
|
24
|
+
* again on its own.
|
|
25
|
+
*
|
|
19
26
|
* It is deliberately pure. Adoption is judged from the institute document plus
|
|
20
27
|
* a handful of counts the caller fetches, and each entry says which counts it
|
|
21
28
|
* needs (`needs`) so the backend cron fetches nothing a feature does not ask
|
|
@@ -24,7 +31,7 @@ import { ResolvedProducts } from "./productResolver";
|
|
|
24
31
|
* for itself.
|
|
25
32
|
*/
|
|
26
33
|
/** Every feature the engine can market. Stable keys: they name campaign documents. */
|
|
27
|
-
export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal";
|
|
34
|
+
export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal" | "impactReport";
|
|
28
35
|
export declare const FEATURE_MARKETING_KEYS: FeatureMarketingKey[];
|
|
29
36
|
/**
|
|
30
37
|
* Counts a detector may need that are not on the institute document. The
|
|
@@ -47,6 +54,14 @@ export type FeatureMarketingCounts = {
|
|
|
47
54
|
/** `users` where oId and lmiViews != null: students who have opened a job
|
|
48
55
|
* profile in the careers library. */
|
|
49
56
|
careersLibraryViewers?: number;
|
|
57
|
+
/** `placements` where oId. */
|
|
58
|
+
placements?: number;
|
|
59
|
+
/** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
|
|
60
|
+
* is approved: the schools under a trust or hub. */
|
|
61
|
+
schools?: number;
|
|
62
|
+
/** The scopes with at least one `surveyCycles` doc for the current academic
|
|
63
|
+
* year (see scopesWithCycles in the web app). */
|
|
64
|
+
surveyScopesThisYear?: SurveyGroupScope[];
|
|
50
65
|
};
|
|
51
66
|
export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
|
|
52
67
|
export type FeatureMarketingContext = {
|
|
@@ -71,8 +86,13 @@ export type FeatureMarketingEntry = {
|
|
|
71
86
|
/** The counts `adopted` reads. Anything not listed is not fetched. */
|
|
72
87
|
needs: FeatureMarketingCountKey[];
|
|
73
88
|
/** Whether this account has the feature at all. A feature nobody pays for
|
|
74
|
-
* is not marketed, and neither is one an account type cannot run.
|
|
89
|
+
* is not marketed, and neither is one an account type cannot run. Reads
|
|
90
|
+
* products only, never counts: it decides which counts get fetched. */
|
|
75
91
|
offered: (ctx: FeatureMarketingContext) => boolean;
|
|
92
|
+
/** Whether there is anything behind the pitch yet, for a feature that
|
|
93
|
+
* shows the school its own data. Consulted once offered; absent means
|
|
94
|
+
* always ready. */
|
|
95
|
+
ready?: (ctx: FeatureMarketingContext) => boolean;
|
|
76
96
|
/** Whether it has been set up, from the database and nothing else. */
|
|
77
97
|
adopted: (ctx: FeatureMarketingContext) => boolean;
|
|
78
98
|
/** When it is worth pitching. Empty means any time. */
|
|
@@ -86,12 +106,22 @@ export type FeatureMarketingEntry = {
|
|
|
86
106
|
* adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
|
|
87
107
|
* yet and that touch is skipped, not sent blank. */
|
|
88
108
|
templateIds: number[];
|
|
109
|
+
/** Days after the campaign starts that each touch goes out, when the
|
|
110
|
+
* default cadence does not fit. Index-matched to `templateIds`. */
|
|
111
|
+
touchDelaysDays?: number[];
|
|
89
112
|
};
|
|
90
113
|
/** Placeholder for a Brevo template that has not been created yet. */
|
|
91
114
|
export declare const BREVO_TEMPLATE_UNSET = 0;
|
|
92
115
|
/** Days after the campaign starts that each touch goes out. Index-matched to
|
|
93
116
|
* `templateIds`; a feature with fewer templates just stops sooner. */
|
|
94
117
|
export declare const FEATURE_MARKETING_TOUCH_DELAYS_DAYS: number[];
|
|
118
|
+
/**
|
|
119
|
+
* The touch schedule for a feature: its own, or the default.
|
|
120
|
+
*
|
|
121
|
+
* @param {FeatureMarketingEntry} entry the feature.
|
|
122
|
+
* @return {number[]} days after the campaign start for each touch.
|
|
123
|
+
*/
|
|
124
|
+
export declare const featureTouchDelays: (entry: FeatureMarketingEntry) => number[];
|
|
95
125
|
/**
|
|
96
126
|
* Whether a date falls inside any of a feature's seasons.
|
|
97
127
|
*
|
|
@@ -125,7 +155,9 @@ export type FeatureAdoption = {
|
|
|
125
155
|
offered: boolean;
|
|
126
156
|
adopted: boolean;
|
|
127
157
|
inSeason: boolean;
|
|
128
|
-
/** Offered,
|
|
158
|
+
/** Offered and, where the feature asks, with data behind it. */
|
|
159
|
+
ready: boolean;
|
|
160
|
+
/** Offered, ready, not adopted and in season: a campaign could start today. */
|
|
129
161
|
candidate: boolean;
|
|
130
162
|
};
|
|
131
163
|
/**
|
package/lib/featureMarketing.js
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = void 0;
|
|
3
|
+
exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.featureTouchDelays = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = void 0;
|
|
4
4
|
const activityLogging_1 = require("./activityLogging");
|
|
5
|
+
const schedule_1 = require("./surveys/schedule");
|
|
5
6
|
exports.FEATURE_MARKETING_KEYS = [
|
|
6
7
|
"wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
|
|
7
|
-
"activities", "careersLibrary", "guidance", "events", "employerPortal",
|
|
8
|
+
"activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
|
|
8
9
|
];
|
|
9
10
|
/** Placeholder for a Brevo template that has not been created yet. */
|
|
10
11
|
exports.BREVO_TEMPLATE_UNSET = 0;
|
|
11
12
|
/** Days after the campaign starts that each touch goes out. Index-matched to
|
|
12
13
|
* `templateIds`; a feature with fewer templates just stops sooner. */
|
|
13
14
|
exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
|
|
15
|
+
/**
|
|
16
|
+
* The touch schedule for a feature: its own, or the default.
|
|
17
|
+
*
|
|
18
|
+
* @param {FeatureMarketingEntry} entry the feature.
|
|
19
|
+
* @return {number[]} days after the campaign start for each touch.
|
|
20
|
+
*/
|
|
21
|
+
const featureTouchDelays = (entry) => entry.touchDelaysDays || exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
|
|
22
|
+
exports.featureTouchDelays = featureTouchDelays;
|
|
14
23
|
const mmdd = (date) => `${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
15
24
|
/**
|
|
16
25
|
* Whether a date falls inside any of a feature's seasons.
|
|
@@ -182,7 +191,42 @@ exports.FEATURE_MARKETING = [
|
|
|
182
191
|
path: "/network/overview#employerSettings",
|
|
183
192
|
templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
|
|
184
193
|
},
|
|
194
|
+
{
|
|
195
|
+
key: "impactReport",
|
|
196
|
+
label: "Impact Report",
|
|
197
|
+
description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
|
|
198
|
+
needs: ["placements", "events", "surveyScopesThisYear", "schools"],
|
|
199
|
+
// Schools, trusts and hubs all have a report; a hub school does not.
|
|
200
|
+
offered: ({ products }) => !products.isHubSchool,
|
|
201
|
+
// And only when there is something to put in it: a placement, an
|
|
202
|
+
// event or a survey for a school, a linked school for a trust or hub
|
|
203
|
+
// (whose report is made of its schools' data).
|
|
204
|
+
ready: ({ products, counts }) => {
|
|
205
|
+
if (products.isTrust || products.isHub)
|
|
206
|
+
return (counts.schools || 0) > 0;
|
|
207
|
+
return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
|
|
208
|
+
(counts.surveyScopesThisYear || []).length > 0;
|
|
209
|
+
},
|
|
210
|
+
// This year's report, not any report: see the module comment.
|
|
211
|
+
adopted: ({ institute, now }) => {
|
|
212
|
+
const generated = impactReportOf(institute)?.generated;
|
|
213
|
+
return Boolean(generated) && (0, schedule_1.academicYearOf)(new Date(generated)) === (0, schedule_1.academicYearOf)(now);
|
|
214
|
+
},
|
|
215
|
+
// Start of July: the year's numbers are in and the summer is when it
|
|
216
|
+
// gets written up. Reminders weekly rather than the default cadence,
|
|
217
|
+
// so the last lands before the summer holidays start on the 18th.
|
|
218
|
+
seasons: [{ start: "07-01", end: "07-31" }],
|
|
219
|
+
// Ahead of everything else in July: it is the one thing every account
|
|
220
|
+
// wants that month.
|
|
221
|
+
priority: 1,
|
|
222
|
+
path: "/organisation/overview",
|
|
223
|
+
templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
|
|
224
|
+
touchDelaysDays: [0, 7, 14],
|
|
225
|
+
},
|
|
185
226
|
];
|
|
227
|
+
/** The record is typed in the web app (ImpactReportCard.tsx), which stores it
|
|
228
|
+
* on the institute without waiting on a core rebuild. */
|
|
229
|
+
const impactReportOf = (institute) => institute.impactReport;
|
|
186
230
|
exports.FEATURE_MARKETING_BY_KEY = Object.fromEntries(exports.FEATURE_MARKETING.map((f) => [f.key, f]));
|
|
187
231
|
/**
|
|
188
232
|
* Which counts to fetch before judging an institute, given only what is on its
|
|
@@ -214,15 +258,17 @@ const evaluateFeatureAdoption = (ctx) => {
|
|
|
214
258
|
const now = ctx.now || new Date();
|
|
215
259
|
return exports.FEATURE_MARKETING.map((f) => {
|
|
216
260
|
const offered = f.offered(ctx);
|
|
261
|
+
const ready = offered && (!f.ready || f.ready(ctx));
|
|
217
262
|
const adopted = offered && f.adopted(ctx);
|
|
218
263
|
const inSeason = (0, exports.inFeatureMarketingSeason)(f.seasons, now);
|
|
219
264
|
return {
|
|
220
265
|
key: f.key,
|
|
221
266
|
label: f.label,
|
|
222
267
|
offered,
|
|
268
|
+
ready,
|
|
223
269
|
adopted,
|
|
224
270
|
inSeason,
|
|
225
|
-
candidate:
|
|
271
|
+
candidate: ready && !adopted && inSeason,
|
|
226
272
|
};
|
|
227
273
|
});
|
|
228
274
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const featureMarketing_1 = require("./featureMarketing");
|
|
|
14
14
|
const OCTOBER = new Date("2026-10-06T09:00:00Z");
|
|
15
15
|
const JANUARY = new Date("2027-01-20T09:00:00Z");
|
|
16
16
|
const MARCH = new Date("2027-03-10T09:00:00Z");
|
|
17
|
+
const JULY = new Date("2027-07-03T09:00:00Z");
|
|
17
18
|
const JUNE = new Date("2027-06-10T09:00:00Z");
|
|
18
19
|
/** A school that has bought everything and set up nothing. */
|
|
19
20
|
const school = (overrides = {}) => ({
|
|
@@ -45,11 +46,14 @@ describe("registry", () => {
|
|
|
45
46
|
it("gives every feature a template per touch, no more touches than there are delays", () => {
|
|
46
47
|
featureMarketing_1.FEATURE_MARKETING.forEach((f) => {
|
|
47
48
|
expect(f.templateIds.length).toBeGreaterThan(0);
|
|
48
|
-
expect(f.templateIds.length).toBeLessThanOrEqual(featureMarketing_1.
|
|
49
|
+
expect(f.templateIds.length).toBeLessThanOrEqual((0, featureMarketing_1.featureTouchDelays)(f).length);
|
|
49
50
|
});
|
|
51
|
+
expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.events)).toBe(featureMarketing_1.FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
|
|
52
|
+
expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
|
|
50
53
|
});
|
|
51
54
|
it("only lists counts a detector can actually read", () => {
|
|
52
|
-
const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"
|
|
55
|
+
const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
|
|
56
|
+
"placements", "schools", "surveyScopesThisYear"];
|
|
53
57
|
featureMarketing_1.FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
|
|
54
58
|
});
|
|
55
59
|
});
|
|
@@ -90,14 +94,22 @@ describe("offered", () => {
|
|
|
90
94
|
// Still hanging off employerEvents.
|
|
91
95
|
expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
|
|
92
96
|
});
|
|
93
|
-
it("offers a hub
|
|
97
|
+
it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
|
|
94
98
|
const hub = school({ package: "careersHub" });
|
|
95
99
|
const offered = (0, featureMarketing_1.evaluateFeatureAdoption)(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
|
|
96
|
-
expect(offered.sort()).toEqual(["employerPortal", "events"]);
|
|
100
|
+
expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
|
|
101
|
+
expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
|
|
102
|
+
expect(adoption(ctx(hub, { schools: 4 }), "impactReport").ready).toBe(true);
|
|
97
103
|
});
|
|
98
|
-
it("offers a trust
|
|
104
|
+
it("offers a trust only the report: its schools run the programmes", () => {
|
|
99
105
|
const trust = school({ package: "institutes-two" });
|
|
100
|
-
expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).
|
|
106
|
+
expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
|
|
107
|
+
expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
|
|
108
|
+
expect(adoption(ctx(trust, { schools: 2 }), "impactReport").ready).toBe(true);
|
|
109
|
+
});
|
|
110
|
+
it("does not offer a hub school the report", () => {
|
|
111
|
+
const hubSchool = school({ package: "careersSchool" });
|
|
112
|
+
expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
|
|
101
113
|
});
|
|
102
114
|
it("never marks something adopted that is not offered", () => {
|
|
103
115
|
const hub = school({ package: "careersHub", skillsAssessments: true, cohortConfig: { g: { name: "Y10" } } });
|
|
@@ -157,16 +169,38 @@ describe("featureMarketingCountsNeeded", () => {
|
|
|
157
169
|
it("asks for every count a full school's detectors read", () => {
|
|
158
170
|
const s = school();
|
|
159
171
|
expect((0, featureMarketing_1.featureMarketingCountsNeeded)(s, (0, productResolver_1.resolveProducts)(s)).sort())
|
|
160
|
-
.toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
|
|
172
|
+
.toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
|
|
161
173
|
});
|
|
162
174
|
it("asks a hub for nothing about students", () => {
|
|
163
175
|
const hub = school({ package: "careersHub" });
|
|
164
176
|
expect((0, featureMarketing_1.featureMarketingCountsNeeded)(hub, (0, productResolver_1.resolveProducts)(hub)).sort())
|
|
165
|
-
.toEqual(["events", "linkedProviders"]);
|
|
177
|
+
.toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
|
|
166
178
|
});
|
|
167
|
-
it("asks a trust
|
|
179
|
+
it("asks a trust only what the report needs", () => {
|
|
168
180
|
const trust = school({ package: "institutes-two" });
|
|
169
|
-
expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust))
|
|
181
|
+
expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust)).sort())
|
|
182
|
+
.toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe("impact report", () => {
|
|
186
|
+
const withReport = (generated) => ({ ...school(), impactReport: { generated } });
|
|
187
|
+
const data = { placements: 12 };
|
|
188
|
+
it("is this year's report, so last year's does not count", () => {
|
|
189
|
+
expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
|
|
190
|
+
expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
|
|
191
|
+
expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
|
|
192
|
+
});
|
|
193
|
+
it("is only a candidate when there is something to report", () => {
|
|
194
|
+
expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
|
|
195
|
+
expect(adoption(ctx(school(), { placements: 1 }, JULY), "impactReport").candidate).toBe(true);
|
|
196
|
+
expect(adoption(ctx(school(), { events: 1 }, JULY), "impactReport").candidate).toBe(true);
|
|
197
|
+
expect(adoption(ctx(school(), { surveyScopesThisYear: ["aspirations"] }, JULY), "impactReport").candidate).toBe(true);
|
|
198
|
+
// Employers alone are not a year's programme.
|
|
199
|
+
expect(adoption(ctx(school(), { linkedProviders: 5 }, JULY), "impactReport").candidate).toBe(false);
|
|
200
|
+
});
|
|
201
|
+
it("is pitched in July and first", () => {
|
|
202
|
+
expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, JULY))[0].key).toBe("impactReport");
|
|
203
|
+
expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
|
|
170
204
|
});
|
|
171
205
|
});
|
|
172
206
|
describe("candidates", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":";;AAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;AAC5D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;KAAQ,EAAC,CAAC,CAAC,CAAC;AAGrF,uDAAkD;AAClD,yDAa4B;AAE5B;;;;;GAKG;AAEH,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,MAAM,GAAG,CAAC,YAAoC,EAAE,EAAiB,EAAE,CAAC,CAAC;IACvE,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,gBAAgB;IACzB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,IAAI;IACtB,GAAG,SAAS;CACG,CAAA,CAAC;AAEpB,MAAM,GAAG,GAAG,CACR,SAAwB,EACxB,SAAiC,EAAE,EACnC,GAAG,GAAG,OAAO,EACb,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,EACV,EAAE,CAAC,CAAC;IAC3B,SAAS;IACT,QAAQ,EAAE,IAAA,iCAAe,EAAC,SAAS,EAAE,EAAC,WAAW,EAAC,CAAC;IACnD,MAAM;IACN,GAAG;CACN,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,CAA0B,EAAE,GAAwB,EAAE,EAAE,CACtE,IAAA,0CAAuB,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAE,CAAC;AAE3D,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,oCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,yCAAsB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,GAAG,CAAC,oCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oCAAiB,CAAC,MAAM,CAAC,CAAC;QACzF,yCAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,2CAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,UAAU,GAAG,oCAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACvF,oCAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,IAAA,qCAAkB,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAA,qCAAkB,EAAC,2CAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,sDAAmC,CAAC,CAAC;QACtG,MAAM,CAAC,IAAA,qCAAkB,EAAC,2CAAwB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GACP,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB;YACjF,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QACzD,oCAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,2CAAwB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,MAAM,CAAC,IAAA,2CAAwB,EAAC,MAAM,EAAE,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,GAAG,CAAC,MAAM,CAAC;YAC9C,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK;SAC7E,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,oCAAoC;QACpC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjI,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAC9F,MAAM,GAAG,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAA,0CAAuB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7F,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,gBAAgB,EAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAA,0CAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QACjH,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,EAAC,EAAC,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,IAAA,0CAAuB,EAAC,GAAG,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,MAAM,aAAa,GAAG,CAAC,GAAwB,EAAE,CAA0B,EAAE,KAAc,EAAE,EAAE,CAC3F,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjD,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,YAAY,EAAE,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAC,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtF,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,IAAI,GAAG,MAAM,CAAC,EAAC,kBAAkB,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAU,EAAC,CAAC,CAAC;QACnH,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C,4DAA4D;QAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,EAAC,kBAAkB,EAAE,EAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAU,EAAC,CAAC,CAAC;QACnH,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAChD,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,cAAc,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAU,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1G,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,iBAAiB,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC1E,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAC,eAAe,EAAE;gBACpC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC;aACxF,EAAC,CAAC,CAAC;QACJ,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAC,eAAe,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;QACpH,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAC9E,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/C,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7D,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,qBAAqB,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjF,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,eAAe,EAAE,CAAC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAA,+CAA4B,EAAC,CAAC,EAAE,IAAA,iCAAe,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7D,OAAO,CAAC,CAAC,QAAQ,EAAE,uBAAuB,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC1J,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAA,+CAA4B,EAAC,GAAG,EAAE,IAAA,iCAAe,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACjE,OAAO,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAC,OAAO,EAAE,gBAAgB,EAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAA,+CAA4B,EAAC,KAAK,EAAE,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrE,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,MAAM,EAAE,EAAE,YAAY,EAAE,EAAC,SAAS,EAAC,EAAmB,CAAA,CAAC;IACtG,MAAM,IAAI,GAAG,EAAC,UAAU,EAAE,EAAE,EAAC,CAAC;IAE9B,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1G,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,UAAU,EAAE,CAAC,EAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,EAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpH,8CAA8C;QAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAC,eAAe,EAAE,CAAC,EAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAA,6CAA0B,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,CAAC,IAAA,6CAA0B,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,IAAI,GAAG,IAAA,6CAA0B,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtF,uEAAuE;QACvE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACjJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAA,6CAA0B,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAA,6CAA0B,EAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrF,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAU,EAAC,CAAC,CAAC;QAC1G,MAAM,IAAI,GAAG,IAAA,6CAA0B,EAAC,GAAG,CAAC,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,MAAM,CAAC;YACpB,YAAY,EAAE,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAC;YACpC,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAU;YACzD,kBAAkB,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAU;YACrH,eAAe,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,EAAC;SAC3G,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,6CAA0B,EAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,CAAC,EAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChG,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC;aACtE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC;YAChB,YAAY,EAAE,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC,EAAC;YACpC,iBAAiB,EAAE,IAAI;YACvB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAU;YACzD,kBAAkB,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAU;YACrH,eAAe,EAAE,EAAC,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,EAAC;SAC3G,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,EAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAC,CAAC;QAC5E,MAAM,CAAC,IAAA,6CAA0B,EAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { InstituteData } from "./typeDefinitions";
|
|
2
2
|
import { ResolvedProducts } from "./productResolver";
|
|
3
|
-
import { SurveyGroupScope } from "./surveys/types";
|
|
4
3
|
import { FeatureMarketingCounts } from "./featureMarketing";
|
|
5
4
|
/**
|
|
6
5
|
* Onboarding pathways: for each product a customer has, the steps that take it
|
|
@@ -36,16 +35,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
|
|
|
36
35
|
students?: number;
|
|
37
36
|
activatedStudents?: number;
|
|
38
37
|
staff?: number;
|
|
39
|
-
schools?: number;
|
|
40
38
|
employers?: number;
|
|
41
|
-
placements?: number;
|
|
42
39
|
eventAttendees?: number;
|
|
43
40
|
emailCampaigns?: number;
|
|
44
41
|
/** `cohorts` where oId for the current academic year. */
|
|
45
42
|
cohortsThisYear?: number;
|
|
46
|
-
/** The scopes with at least one `surveyCycles` doc for the current academic
|
|
47
|
-
* year (see scopesWithCycles in the web app). */
|
|
48
|
-
surveyScopesThisYear?: SurveyGroupScope[];
|
|
49
43
|
};
|
|
50
44
|
export type OnboardingCountKey = keyof OnboardingCounts;
|
|
51
45
|
export type OnboardingContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.ts"],"names":[],"mappings":"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"}
|
package/lib/typeDefinitions.d.ts
CHANGED
|
@@ -1347,6 +1347,14 @@ export type InstituteData = {
|
|
|
1347
1347
|
};
|
|
1348
1348
|
};
|
|
1349
1349
|
cs?: CustomerSuccessData;
|
|
1350
|
+
/** Engagement email state: the weekly cap shared by onboarding nudges and
|
|
1351
|
+
* feature marketing, and where each engine has got to. Written only by
|
|
1352
|
+
* the engagement cron (Placementt-Backend featureEngagement.ts). */
|
|
1353
|
+
engagement?: InstituteEngagement;
|
|
1354
|
+
/** The last engagement email, for the dashboard to show the same message
|
|
1355
|
+
* as a popup. Overwritten on every send; the web app writes `clickedAt`
|
|
1356
|
+
* and `declinedAt` back, and the cron reads them to steer campaigns. */
|
|
1357
|
+
engagementPrompt?: EngagementPrompt;
|
|
1350
1358
|
/** The ONS region the school sits in, as an ASHE Table 15 region code
|
|
1351
1359
|
* ("E12000008" for the South East). Set by an admin; nothing derives it
|
|
1352
1360
|
* from the address. When present, the careers library adds a "pay near
|
|
@@ -4304,6 +4312,79 @@ export type CustomerSuccessData = {
|
|
|
4304
4312
|
};
|
|
4305
4313
|
metrics?: CustomerSuccessMetrics;
|
|
4306
4314
|
};
|
|
4315
|
+
export type InstituteEngagement = {
|
|
4316
|
+
/** Last engagement email of any kind, for the one-per-week cap. */
|
|
4317
|
+
lastEmailAt?: string;
|
|
4318
|
+
onboarding?: {
|
|
4319
|
+
/** The step last nudged, so the same step is not sent twice in a row
|
|
4320
|
+
* without a change (the cron caps repeats of one step). */
|
|
4321
|
+
lastStepKey?: string;
|
|
4322
|
+
lastVariant?: "setup" | "resend";
|
|
4323
|
+
lastSentAt?: string;
|
|
4324
|
+
/** How many times in a row the same step has been sent. */
|
|
4325
|
+
repeats?: number;
|
|
4326
|
+
};
|
|
4327
|
+
marketing?: {
|
|
4328
|
+
activeCampaignId?: string;
|
|
4329
|
+
cooldownUntil?: string;
|
|
4330
|
+
consecutiveIgnored?: number;
|
|
4331
|
+
/** Feature key → ISO date the suppression lifts. */
|
|
4332
|
+
suppressed?: {
|
|
4333
|
+
[featureKey: string]: string;
|
|
4334
|
+
};
|
|
4335
|
+
};
|
|
4336
|
+
};
|
|
4337
|
+
export type EngagementPrompt = {
|
|
4338
|
+
/** `${kind}:${key}:${variant|touch}:${YYYY-MM-DD}` */
|
|
4339
|
+
id: string;
|
|
4340
|
+
kind: "marketing" | "onboarding";
|
|
4341
|
+
/** FeatureMarketingKey or OnboardingStep.key */
|
|
4342
|
+
key: string;
|
|
4343
|
+
/** Onboarding only. */
|
|
4344
|
+
variant?: "setup" | "resend";
|
|
4345
|
+
/** Marketing only, 0-based. */
|
|
4346
|
+
touch?: number;
|
|
4347
|
+
label: string;
|
|
4348
|
+
description: string;
|
|
4349
|
+
path: string;
|
|
4350
|
+
sentAt: string;
|
|
4351
|
+
/** Written by the web app. */
|
|
4352
|
+
clickedAt?: string;
|
|
4353
|
+
/** Written by the web app, marketing only. */
|
|
4354
|
+
declinedAt?: string;
|
|
4355
|
+
};
|
|
4356
|
+
/** `featureCampaigns/{oId}_{featureKey}_{academicYear}` */
|
|
4357
|
+
export type FeatureCampaign = {
|
|
4358
|
+
oId: string;
|
|
4359
|
+
featureKey: string;
|
|
4360
|
+
/** "2026-27" */
|
|
4361
|
+
academicYear: string;
|
|
4362
|
+
status: "active" | "adopted" | "declined" | "expired";
|
|
4363
|
+
startedAt: string;
|
|
4364
|
+
touchesSent: {
|
|
4365
|
+
touch: number;
|
|
4366
|
+
templateId: number;
|
|
4367
|
+
sentAt: string;
|
|
4368
|
+
recipients: string[];
|
|
4369
|
+
}[];
|
|
4370
|
+
clickedAt?: string;
|
|
4371
|
+
declinedAt?: string;
|
|
4372
|
+
adoptedAt?: string;
|
|
4373
|
+
endedAt?: string;
|
|
4374
|
+
};
|
|
4375
|
+
/** `engagementEmails/{autoId}`: one flat log document per send, for the
|
|
4376
|
+
* admin view. */
|
|
4377
|
+
export type EngagementEmailLog = {
|
|
4378
|
+
oId: string;
|
|
4379
|
+
kind: "marketing" | "onboarding";
|
|
4380
|
+
key: string;
|
|
4381
|
+
variant?: "setup" | "resend";
|
|
4382
|
+
touch?: number;
|
|
4383
|
+
templateId: number;
|
|
4384
|
+
recipients: string[];
|
|
4385
|
+
sentAt: string;
|
|
4386
|
+
campaignId?: string;
|
|
4387
|
+
};
|
|
4307
4388
|
export type CustomerTask = {
|
|
4308
4389
|
id: string;
|
|
4309
4390
|
customerId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"typeDefinitions.js","sourceRoot":"","sources":["../src/typeDefinitions.ts"],"names":[],"mappings":";;;AA0qIA,sDASC;AAeD,oDAKC;AAaD,0CAEC;AAnoED;;;;;kFAKkF;AACrE,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,iBAAiB,GAAG,OAAO,CAAC;AA+iEzC;yEACyE;AAC5D,QAAA,0BAA0B,GAA2C;IAC9E,gBAAgB,EAAE,2BAA2B;IAC7C,mBAAmB,EAAE,sBAAsB;IAC3C,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,yBAAyB;IACxC,aAAa,EAAE,wBAAwB;IACvC,KAAK,EAAE,OAAO;CACjB,CAAC;AAEW,QAAA,0BAA0B,GAA+C;IAClF,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,OAAO;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,SAAsC;IACxE,QAAQ,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;QAC5B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAChC,IAAwC,EACxC,MAA6C;IAE7C,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,KAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAA6D;IACzF,OAAO,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC"}
|
package/package.json
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
evaluateFeatureAdoption,
|
|
15
15
|
featureMarketingCandidates,
|
|
16
16
|
featureMarketingCountsNeeded,
|
|
17
|
+
featureTouchDelays,
|
|
17
18
|
inFeatureMarketingSeason,
|
|
18
19
|
} from "./featureMarketing";
|
|
19
20
|
|
|
@@ -27,6 +28,7 @@ import {
|
|
|
27
28
|
const OCTOBER = new Date("2026-10-06T09:00:00Z");
|
|
28
29
|
const JANUARY = new Date("2027-01-20T09:00:00Z");
|
|
29
30
|
const MARCH = new Date("2027-03-10T09:00:00Z");
|
|
31
|
+
const JULY = new Date("2027-07-03T09:00:00Z");
|
|
30
32
|
const JUNE = new Date("2027-06-10T09:00:00Z");
|
|
31
33
|
|
|
32
34
|
/** A school that has bought everything and set up nothing. */
|
|
@@ -70,13 +72,16 @@ describe("registry", () => {
|
|
|
70
72
|
it("gives every feature a template per touch, no more touches than there are delays", () => {
|
|
71
73
|
FEATURE_MARKETING.forEach((f) => {
|
|
72
74
|
expect(f.templateIds.length).toBeGreaterThan(0);
|
|
73
|
-
expect(f.templateIds.length).toBeLessThanOrEqual(
|
|
75
|
+
expect(f.templateIds.length).toBeLessThanOrEqual(featureTouchDelays(f).length);
|
|
74
76
|
});
|
|
77
|
+
expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.events)).toBe(FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
|
|
78
|
+
expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
|
|
75
79
|
});
|
|
76
80
|
|
|
77
81
|
it("only lists counts a detector can actually read", () => {
|
|
78
82
|
const known: (keyof FeatureMarketingCounts)[] =
|
|
79
|
-
["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"
|
|
83
|
+
["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
|
|
84
|
+
"placements", "schools", "surveyScopesThisYear"];
|
|
80
85
|
FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
|
|
81
86
|
});
|
|
82
87
|
});
|
|
@@ -123,15 +128,24 @@ describe("offered", () => {
|
|
|
123
128
|
expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
|
|
124
129
|
});
|
|
125
130
|
|
|
126
|
-
it("offers a hub
|
|
131
|
+
it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
|
|
127
132
|
const hub = school({package: "careersHub"});
|
|
128
133
|
const offered = evaluateFeatureAdoption(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
|
|
129
|
-
expect(offered.sort()).toEqual(["employerPortal", "events"]);
|
|
134
|
+
expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
|
|
135
|
+
expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
|
|
136
|
+
expect(adoption(ctx(hub, {schools: 4}), "impactReport").ready).toBe(true);
|
|
130
137
|
});
|
|
131
138
|
|
|
132
|
-
it("offers a trust
|
|
139
|
+
it("offers a trust only the report: its schools run the programmes", () => {
|
|
133
140
|
const trust = school({package: "institutes-two"});
|
|
134
|
-
expect(evaluateFeatureAdoption(ctx(trust)).
|
|
141
|
+
expect(evaluateFeatureAdoption(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
|
|
142
|
+
expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
|
|
143
|
+
expect(adoption(ctx(trust, {schools: 2}), "impactReport").ready).toBe(true);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it("does not offer a hub school the report", () => {
|
|
147
|
+
const hubSchool = school({package: "careersSchool"});
|
|
148
|
+
expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
|
|
135
149
|
});
|
|
136
150
|
|
|
137
151
|
it("never marks something adopted that is not offered", () => {
|
|
@@ -202,18 +216,44 @@ describe("featureMarketingCountsNeeded", () => {
|
|
|
202
216
|
it("asks for every count a full school's detectors read", () => {
|
|
203
217
|
const s = school();
|
|
204
218
|
expect(featureMarketingCountsNeeded(s, resolveProducts(s)).sort())
|
|
205
|
-
.toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
|
|
219
|
+
.toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
|
|
206
220
|
});
|
|
207
221
|
|
|
208
222
|
it("asks a hub for nothing about students", () => {
|
|
209
223
|
const hub = school({package: "careersHub"});
|
|
210
224
|
expect(featureMarketingCountsNeeded(hub, resolveProducts(hub)).sort())
|
|
211
|
-
.toEqual(["events", "linkedProviders"]);
|
|
225
|
+
.toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
|
|
212
226
|
});
|
|
213
227
|
|
|
214
|
-
it("asks a trust
|
|
228
|
+
it("asks a trust only what the report needs", () => {
|
|
215
229
|
const trust = school({package: "institutes-two"});
|
|
216
|
-
expect(featureMarketingCountsNeeded(trust, resolveProducts(trust))
|
|
230
|
+
expect(featureMarketingCountsNeeded(trust, resolveProducts(trust)).sort())
|
|
231
|
+
.toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
describe("impact report", () => {
|
|
236
|
+
const withReport = (generated: string) => ({...school(), impactReport: {generated}} as InstituteData);
|
|
237
|
+
const data = {placements: 12};
|
|
238
|
+
|
|
239
|
+
it("is this year's report, so last year's does not count", () => {
|
|
240
|
+
expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
|
|
241
|
+
expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
|
|
242
|
+
expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
it("is only a candidate when there is something to report", () => {
|
|
246
|
+
expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
|
|
247
|
+
expect(adoption(ctx(school(), {placements: 1}, JULY), "impactReport").candidate).toBe(true);
|
|
248
|
+
expect(adoption(ctx(school(), {events: 1}, JULY), "impactReport").candidate).toBe(true);
|
|
249
|
+
expect(adoption(ctx(school(), {surveyScopesThisYear: ["aspirations"]}, JULY), "impactReport").candidate).toBe(true);
|
|
250
|
+
// Employers alone are not a year's programme.
|
|
251
|
+
expect(adoption(ctx(school(), {linkedProviders: 5}, JULY), "impactReport").candidate).toBe(false);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
it("is pitched in July and first", () => {
|
|
255
|
+
expect(featureMarketingCandidates(ctx(school(), data, JULY))[0].key).toBe("impactReport");
|
|
256
|
+
expect(featureMarketingCandidates(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
|
|
217
257
|
});
|
|
218
258
|
});
|
|
219
259
|
|
package/src/featureMarketing.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {InstituteData} from "./typeDefinitions";
|
|
2
2
|
import {ResolvedProducts} from "./productResolver";
|
|
3
3
|
import {activityLoggingState} from "./activityLogging";
|
|
4
|
+
import {academicYearOf} from "./surveys/schedule";
|
|
5
|
+
import {SurveyGroupScope} from "./surveys/types";
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Feature marketing: the things a customer already pays for but has never set
|
|
@@ -18,6 +20,12 @@ import {activityLoggingState} from "./activityLogging";
|
|
|
18
20
|
* is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
|
|
19
21
|
* Marketing pitches `unconfigured` and nothing else.
|
|
20
22
|
*
|
|
23
|
+
* The exception is a yearly deliverable with no setup behind it, like the
|
|
24
|
+
* impact report: there "adopted" is this year's, because last year's is not
|
|
25
|
+
* the thing being offered, and a campaign per academic year is exactly the
|
|
26
|
+
* cadence wanted. Campaign ids carry the academic year, so it comes round
|
|
27
|
+
* again on its own.
|
|
28
|
+
*
|
|
21
29
|
* It is deliberately pure. Adoption is judged from the institute document plus
|
|
22
30
|
* a handful of counts the caller fetches, and each entry says which counts it
|
|
23
31
|
* needs (`needs`) so the backend cron fetches nothing a feature does not ask
|
|
@@ -29,11 +37,11 @@ import {activityLoggingState} from "./activityLogging";
|
|
|
29
37
|
/** Every feature the engine can market. Stable keys: they name campaign documents. */
|
|
30
38
|
export type FeatureMarketingKey =
|
|
31
39
|
"wexCohort"|"alumni"|"leavers"|"aspirations"|"parents"|"skills"|
|
|
32
|
-
"activities"|"careersLibrary"|"guidance"|"events"|"employerPortal";
|
|
40
|
+
"activities"|"careersLibrary"|"guidance"|"events"|"employerPortal"|"impactReport";
|
|
33
41
|
|
|
34
42
|
export const FEATURE_MARKETING_KEYS: FeatureMarketingKey[] = [
|
|
35
43
|
"wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
|
|
36
|
-
"activities", "careersLibrary", "guidance", "events", "employerPortal",
|
|
44
|
+
"activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
|
|
37
45
|
];
|
|
38
46
|
|
|
39
47
|
/**
|
|
@@ -57,6 +65,14 @@ export type FeatureMarketingCounts = {
|
|
|
57
65
|
/** `users` where oId and lmiViews != null: students who have opened a job
|
|
58
66
|
* profile in the careers library. */
|
|
59
67
|
careersLibraryViewers?: number,
|
|
68
|
+
/** `placements` where oId. */
|
|
69
|
+
placements?: number,
|
|
70
|
+
/** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
|
|
71
|
+
* is approved: the schools under a trust or hub. */
|
|
72
|
+
schools?: number,
|
|
73
|
+
/** The scopes with at least one `surveyCycles` doc for the current academic
|
|
74
|
+
* year (see scopesWithCycles in the web app). */
|
|
75
|
+
surveyScopesThisYear?: SurveyGroupScope[],
|
|
60
76
|
};
|
|
61
77
|
|
|
62
78
|
export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
|
|
@@ -82,8 +98,13 @@ export type FeatureMarketingEntry = {
|
|
|
82
98
|
/** The counts `adopted` reads. Anything not listed is not fetched. */
|
|
83
99
|
needs: FeatureMarketingCountKey[],
|
|
84
100
|
/** Whether this account has the feature at all. A feature nobody pays for
|
|
85
|
-
* is not marketed, and neither is one an account type cannot run.
|
|
101
|
+
* is not marketed, and neither is one an account type cannot run. Reads
|
|
102
|
+
* products only, never counts: it decides which counts get fetched. */
|
|
86
103
|
offered: (ctx: FeatureMarketingContext) => boolean,
|
|
104
|
+
/** Whether there is anything behind the pitch yet, for a feature that
|
|
105
|
+
* shows the school its own data. Consulted once offered; absent means
|
|
106
|
+
* always ready. */
|
|
107
|
+
ready?: (ctx: FeatureMarketingContext) => boolean,
|
|
87
108
|
/** Whether it has been set up, from the database and nothing else. */
|
|
88
109
|
adopted: (ctx: FeatureMarketingContext) => boolean,
|
|
89
110
|
/** When it is worth pitching. Empty means any time. */
|
|
@@ -97,6 +118,9 @@ export type FeatureMarketingEntry = {
|
|
|
97
118
|
* adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
|
|
98
119
|
* yet and that touch is skipped, not sent blank. */
|
|
99
120
|
templateIds: number[],
|
|
121
|
+
/** Days after the campaign starts that each touch goes out, when the
|
|
122
|
+
* default cadence does not fit. Index-matched to `templateIds`. */
|
|
123
|
+
touchDelaysDays?: number[],
|
|
100
124
|
};
|
|
101
125
|
|
|
102
126
|
/** Placeholder for a Brevo template that has not been created yet. */
|
|
@@ -106,6 +130,15 @@ export const BREVO_TEMPLATE_UNSET = 0;
|
|
|
106
130
|
* `templateIds`; a feature with fewer templates just stops sooner. */
|
|
107
131
|
export const FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
|
|
108
132
|
|
|
133
|
+
/**
|
|
134
|
+
* The touch schedule for a feature: its own, or the default.
|
|
135
|
+
*
|
|
136
|
+
* @param {FeatureMarketingEntry} entry the feature.
|
|
137
|
+
* @return {number[]} days after the campaign start for each touch.
|
|
138
|
+
*/
|
|
139
|
+
export const featureTouchDelays = (entry: FeatureMarketingEntry): number[] =>
|
|
140
|
+
entry.touchDelaysDays || FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
|
|
141
|
+
|
|
109
142
|
const mmdd = (date: Date): string =>
|
|
110
143
|
`${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
111
144
|
|
|
@@ -287,8 +320,44 @@ export const FEATURE_MARKETING: FeatureMarketingEntry[] = [
|
|
|
287
320
|
path: "/network/overview#employerSettings",
|
|
288
321
|
templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
|
|
289
322
|
},
|
|
323
|
+
{
|
|
324
|
+
key: "impactReport",
|
|
325
|
+
label: "Impact Report",
|
|
326
|
+
description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
|
|
327
|
+
needs: ["placements", "events", "surveyScopesThisYear", "schools"],
|
|
328
|
+
// Schools, trusts and hubs all have a report; a hub school does not.
|
|
329
|
+
offered: ({products}) => !products.isHubSchool,
|
|
330
|
+
// And only when there is something to put in it: a placement, an
|
|
331
|
+
// event or a survey for a school, a linked school for a trust or hub
|
|
332
|
+
// (whose report is made of its schools' data).
|
|
333
|
+
ready: ({products, counts}) => {
|
|
334
|
+
if (products.isTrust || products.isHub) return (counts.schools || 0) > 0;
|
|
335
|
+
return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
|
|
336
|
+
(counts.surveyScopesThisYear || []).length > 0;
|
|
337
|
+
},
|
|
338
|
+
// This year's report, not any report: see the module comment.
|
|
339
|
+
adopted: ({institute, now}) => {
|
|
340
|
+
const generated = impactReportOf(institute)?.generated;
|
|
341
|
+
return Boolean(generated) && academicYearOf(new Date(generated as string)) === academicYearOf(now);
|
|
342
|
+
},
|
|
343
|
+
// Start of July: the year's numbers are in and the summer is when it
|
|
344
|
+
// gets written up. Reminders weekly rather than the default cadence,
|
|
345
|
+
// so the last lands before the summer holidays start on the 18th.
|
|
346
|
+
seasons: [{start: "07-01", end: "07-31"}],
|
|
347
|
+
// Ahead of everything else in July: it is the one thing every account
|
|
348
|
+
// wants that month.
|
|
349
|
+
priority: 1,
|
|
350
|
+
path: "/organisation/overview",
|
|
351
|
+
templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
|
|
352
|
+
touchDelaysDays: [0, 7, 14],
|
|
353
|
+
},
|
|
290
354
|
];
|
|
291
355
|
|
|
356
|
+
/** The record is typed in the web app (ImpactReportCard.tsx), which stores it
|
|
357
|
+
* on the institute without waiting on a core rebuild. */
|
|
358
|
+
const impactReportOf = (institute: InstituteData): {generated?: string}|undefined =>
|
|
359
|
+
(institute as InstituteData & {impactReport?: {generated?: string}}).impactReport;
|
|
360
|
+
|
|
292
361
|
export const FEATURE_MARKETING_BY_KEY: Record<FeatureMarketingKey, FeatureMarketingEntry> =
|
|
293
362
|
Object.fromEntries(FEATURE_MARKETING.map((f) => [f.key, f])) as Record<FeatureMarketingKey, FeatureMarketingEntry>;
|
|
294
363
|
|
|
@@ -317,7 +386,9 @@ export type FeatureAdoption = {
|
|
|
317
386
|
offered: boolean,
|
|
318
387
|
adopted: boolean,
|
|
319
388
|
inSeason: boolean,
|
|
320
|
-
/** Offered,
|
|
389
|
+
/** Offered and, where the feature asks, with data behind it. */
|
|
390
|
+
ready: boolean,
|
|
391
|
+
/** Offered, ready, not adopted and in season: a campaign could start today. */
|
|
321
392
|
candidate: boolean,
|
|
322
393
|
};
|
|
323
394
|
|
|
@@ -335,15 +406,17 @@ export const evaluateFeatureAdoption = (ctx: FeatureMarketingContext): FeatureAd
|
|
|
335
406
|
const now = ctx.now || new Date();
|
|
336
407
|
return FEATURE_MARKETING.map((f) => {
|
|
337
408
|
const offered = f.offered(ctx);
|
|
409
|
+
const ready = offered && (!f.ready || f.ready(ctx));
|
|
338
410
|
const adopted = offered && f.adopted(ctx);
|
|
339
411
|
const inSeason = inFeatureMarketingSeason(f.seasons, now);
|
|
340
412
|
return {
|
|
341
413
|
key: f.key,
|
|
342
414
|
label: f.label,
|
|
343
415
|
offered,
|
|
416
|
+
ready,
|
|
344
417
|
adopted,
|
|
345
418
|
inSeason,
|
|
346
|
-
candidate:
|
|
419
|
+
candidate: ready && !adopted && inSeason,
|
|
347
420
|
};
|
|
348
421
|
});
|
|
349
422
|
};
|
|
@@ -46,16 +46,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
|
|
|
46
46
|
students?: number,
|
|
47
47
|
activatedStudents?: number,
|
|
48
48
|
staff?: number,
|
|
49
|
-
schools?: number,
|
|
50
49
|
employers?: number,
|
|
51
|
-
placements?: number,
|
|
52
50
|
eventAttendees?: number,
|
|
53
51
|
emailCampaigns?: number,
|
|
54
52
|
/** `cohorts` where oId for the current academic year. */
|
|
55
53
|
cohortsThisYear?: number,
|
|
56
|
-
/** The scopes with at least one `surveyCycles` doc for the current academic
|
|
57
|
-
* year (see scopesWithCycles in the web app). */
|
|
58
|
-
surveyScopesThisYear?: SurveyGroupScope[],
|
|
59
54
|
};
|
|
60
55
|
|
|
61
56
|
export type OnboardingCountKey = keyof OnboardingCounts;
|
package/src/typeDefinitions.ts
CHANGED
|
@@ -1381,6 +1381,14 @@ export type InstituteData = {
|
|
|
1381
1381
|
}
|
|
1382
1382
|
},
|
|
1383
1383
|
cs?: CustomerSuccessData,
|
|
1384
|
+
/** Engagement email state: the weekly cap shared by onboarding nudges and
|
|
1385
|
+
* feature marketing, and where each engine has got to. Written only by
|
|
1386
|
+
* the engagement cron (Placementt-Backend featureEngagement.ts). */
|
|
1387
|
+
engagement?: InstituteEngagement,
|
|
1388
|
+
/** The last engagement email, for the dashboard to show the same message
|
|
1389
|
+
* as a popup. Overwritten on every send; the web app writes `clickedAt`
|
|
1390
|
+
* and `declinedAt` back, and the cron reads them to steer campaigns. */
|
|
1391
|
+
engagementPrompt?: EngagementPrompt,
|
|
1384
1392
|
/** The ONS region the school sits in, as an ASHE Table 15 region code
|
|
1385
1393
|
* ("E12000008" for the South East). Set by an admin; nothing derives it
|
|
1386
1394
|
* from the address. When present, the careers library adds a "pay near
|
|
@@ -4456,6 +4464,80 @@ export type CustomerSuccessData = {
|
|
|
4456
4464
|
metrics?: CustomerSuccessMetrics;
|
|
4457
4465
|
};
|
|
4458
4466
|
|
|
4467
|
+
// ─── Engagement emails ───────────────────────────────────────────────────────
|
|
4468
|
+
// Onboarding nudges and feature marketing (onboardingPathways.ts and
|
|
4469
|
+
// featureMarketing.ts decide what to say; the backend cron decides when).
|
|
4470
|
+
|
|
4471
|
+
export type InstituteEngagement = {
|
|
4472
|
+
/** Last engagement email of any kind, for the one-per-week cap. */
|
|
4473
|
+
lastEmailAt?: string,
|
|
4474
|
+
onboarding?: {
|
|
4475
|
+
/** The step last nudged, so the same step is not sent twice in a row
|
|
4476
|
+
* without a change (the cron caps repeats of one step). */
|
|
4477
|
+
lastStepKey?: string,
|
|
4478
|
+
lastVariant?: "setup"|"resend",
|
|
4479
|
+
lastSentAt?: string,
|
|
4480
|
+
/** How many times in a row the same step has been sent. */
|
|
4481
|
+
repeats?: number,
|
|
4482
|
+
},
|
|
4483
|
+
marketing?: {
|
|
4484
|
+
activeCampaignId?: string,
|
|
4485
|
+
cooldownUntil?: string,
|
|
4486
|
+
consecutiveIgnored?: number,
|
|
4487
|
+
/** Feature key → ISO date the suppression lifts. */
|
|
4488
|
+
suppressed?: {[featureKey: string]: string},
|
|
4489
|
+
},
|
|
4490
|
+
};
|
|
4491
|
+
|
|
4492
|
+
export type EngagementPrompt = {
|
|
4493
|
+
/** `${kind}:${key}:${variant|touch}:${YYYY-MM-DD}` */
|
|
4494
|
+
id: string,
|
|
4495
|
+
kind: "marketing"|"onboarding",
|
|
4496
|
+
/** FeatureMarketingKey or OnboardingStep.key */
|
|
4497
|
+
key: string,
|
|
4498
|
+
/** Onboarding only. */
|
|
4499
|
+
variant?: "setup"|"resend",
|
|
4500
|
+
/** Marketing only, 0-based. */
|
|
4501
|
+
touch?: number,
|
|
4502
|
+
label: string,
|
|
4503
|
+
description: string,
|
|
4504
|
+
path: string,
|
|
4505
|
+
sentAt: string,
|
|
4506
|
+
/** Written by the web app. */
|
|
4507
|
+
clickedAt?: string,
|
|
4508
|
+
/** Written by the web app, marketing only. */
|
|
4509
|
+
declinedAt?: string,
|
|
4510
|
+
};
|
|
4511
|
+
|
|
4512
|
+
/** `featureCampaigns/{oId}_{featureKey}_{academicYear}` */
|
|
4513
|
+
export type FeatureCampaign = {
|
|
4514
|
+
oId: string,
|
|
4515
|
+
featureKey: string,
|
|
4516
|
+
/** "2026-27" */
|
|
4517
|
+
academicYear: string,
|
|
4518
|
+
status: "active"|"adopted"|"declined"|"expired",
|
|
4519
|
+
startedAt: string,
|
|
4520
|
+
touchesSent: {touch: number, templateId: number, sentAt: string, recipients: string[]}[],
|
|
4521
|
+
clickedAt?: string,
|
|
4522
|
+
declinedAt?: string,
|
|
4523
|
+
adoptedAt?: string,
|
|
4524
|
+
endedAt?: string,
|
|
4525
|
+
};
|
|
4526
|
+
|
|
4527
|
+
/** `engagementEmails/{autoId}`: one flat log document per send, for the
|
|
4528
|
+
* admin view. */
|
|
4529
|
+
export type EngagementEmailLog = {
|
|
4530
|
+
oId: string,
|
|
4531
|
+
kind: "marketing"|"onboarding",
|
|
4532
|
+
key: string,
|
|
4533
|
+
variant?: "setup"|"resend",
|
|
4534
|
+
touch?: number,
|
|
4535
|
+
templateId: number,
|
|
4536
|
+
recipients: string[],
|
|
4537
|
+
sentAt: string,
|
|
4538
|
+
campaignId?: string,
|
|
4539
|
+
};
|
|
4540
|
+
|
|
4459
4541
|
export type CustomerTask = {
|
|
4460
4542
|
id: string;
|
|
4461
4543
|
customerId: string;
|