placementt-core 1.400.1266 → 1.400.1268

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.
@@ -30,14 +30,10 @@ const samples = {
30
30
  },
31
31
  "outreach-runSequence": {
32
32
  request: { dryRun: true },
33
- response: {
34
- date: "2026-11-03", dryRun: true, tranches: [{ date: "2026-11-03", secondary: 45, college: 5 }],
35
- capacity: { mailboxes: 4, dailyLimit: 160, weekly: 800, scheduled: 300, available: 500 },
36
- starts: 50, blocked: [{ urn: 100000, reason: "Trust hold" }],
37
- },
33
+ response: { date: "2026-11-03", dryRun: true, added: { secondary: 45, college: 5 }, starts: 50, blocked: [{ urn: 100000, reason: "Trust hold" }] },
38
34
  },
39
35
  "outreach-setSequenceConfig": {
40
- request: { dailyBatch: 50, onlyGroups: ["Derby"] },
36
+ request: { onlyGroups: ["Derby"] },
41
37
  response: { saved: true },
42
38
  },
43
39
  "outreach-setFeatures": {
@@ -60,22 +56,6 @@ const samples = {
60
56
  request: { oId: "o1", urn: 100000 },
61
57
  response: { oId: "o1", urn: 100000 },
62
58
  },
63
- "outreach-saveMonthlySend": {
64
- request: { month: "2026-11", campaigns: { secondary: { campaignId: 40, subject: "November" } }, sendDate: "2026-11-10", testEmails: ["tom@careerthread.co.uk"] },
65
- response: { id: "m1", recipients: { total: 900, secondary: 800, college: 100 }, date: "2026-11-10", warnings: [] },
66
- },
67
- "outreach-testMonthlySend": {
68
- request: { id: "m1" },
69
- response: { testedAt: "2026-10-30T10:00:00.000Z" },
70
- },
71
- "outreach-approveMonthlySend": {
72
- request: { id: "m1" },
73
- response: { date: "2026-11-10", added: false },
74
- },
75
- "outreach-controlMonthlySend": {
76
- request: { id: "m1", action: "cancel" },
77
- response: { status: "cancelled" },
78
- },
79
59
  "outreach-upsertTrusts": {
80
60
  request: { trusts: [{ trustUid: "5000", name: "Oak Trust", type: "Multi-academy trust" }], links: [{ urn: 100000, trustUid: "5000" }] },
81
61
  response: { trustsWritten: 1, schoolsLinked: 1, schoolsNotFound: 0, unknownTrusts: 0 },
@@ -109,11 +89,6 @@ describe("outreach contracts", () => {
109
89
  expect(outreach_1.outreachCallables["outreach-linkInstitute"].request.safeParse({ oId: "o1", trustUid: "5000" }).success).toBe(true);
110
90
  expect(outreach_1.outreachCallables["outreach-resolveReview"].request.safeParse({ reviewId: "r", action: "linkTrust", trustUid: "5000" }).success).toBe(true);
111
91
  });
112
- it("needs only a month and a campaign for a monthly email", () => {
113
- const campaigns = { secondary: { campaignId: 1, subject: "S" } };
114
- expect(outreach_1.outreachCallables["outreach-saveMonthlySend"].request.safeParse({ month: "2026-11", campaigns }).success).toBe(true);
115
- expect(outreach_1.outreachCallables["outreach-saveMonthlySend"].request.safeParse({ month: "Nov", campaigns }).success).toBe(false);
116
- });
117
92
  it("rejects an unknown review action and a bad allowlist email", () => {
118
93
  expect(outreach_1.outreachCallables["outreach-resolveReview"].request.safeParse({ reviewId: "r", action: "delete" }).success).toBe(false);
119
94
  expect(outreach_1.outreachCallables["outreach-setSequenceConfig"].request.safeParse({ allowlist: ["nope"] }).success).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"outreach.test.js","sourceRoot":"","sources":["../../../src/callables/__tests__/outreach.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outreach.test.js","sourceRoot":"","sources":["../../../src/callables/__tests__/outreach.test.ts"],"names":[],"mappings":"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"}
@@ -393,18 +393,4 @@ export declare const engagementCallables: {
393
393
  cleared: number;
394
394
  }>;
395
395
  };
396
- /** One-off: opts in existing schools' admins and key contacts who were never asked. Delete once run. */
397
- "bulkEngagement-backfillMarketingConsent": {
398
- request: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
399
- response: z.ZodObject<{
400
- schools: z.ZodNumber;
401
- contacts: z.ZodNumber;
402
- }, "strip", z.ZodTypeAny, {
403
- schools: number;
404
- contacts: number;
405
- }, {
406
- schools: number;
407
- contacts: number;
408
- }>;
409
- };
410
396
  };
@@ -128,10 +128,5 @@ exports.engagementCallables = {
128
128
  request: zod_1.z.object({}).optional(),
129
129
  response: zod_1.z.object({ cleared: zod_1.z.number() }),
130
130
  },
131
- /** One-off: opts in existing schools' admins and key contacts who were never asked. Delete once run. */
132
- "bulkEngagement-backfillMarketingConsent": {
133
- request: zod_1.z.object({}).optional(),
134
- response: zod_1.z.object({ schools: zod_1.z.number(), contacts: zod_1.z.number() }),
135
- },
136
131
  };
137
132
  //# sourceMappingURL=engagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/callables/engagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../src/callables/engagement.ts"],"names":[],"mappings":"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"}
@@ -253,22 +253,22 @@ export declare const outreachCallables: {
253
253
  mailboxes: z.ZodNumber;
254
254
  blacklistQueued: z.ZodNumber;
255
255
  }, "strip", z.ZodTypeAny, {
256
- mailboxes: number;
257
256
  subscribed: string[];
257
+ mailboxes: number;
258
258
  blacklistQueued: number;
259
259
  }, {
260
- mailboxes: number;
261
260
  subscribed: string[];
261
+ mailboxes: number;
262
262
  blacklistQueued: number;
263
263
  }>;
264
264
  };
265
265
  "outreach-runSweep": {
266
266
  request: z.ZodObject<{
267
- step: z.ZodOptional<z.ZodEnum<["all", "deferrals", "statusRecompute", "sequenceFinish", "cadence", "domainMatch", "blacklist", "reconcile"]>>;
267
+ step: z.ZodOptional<z.ZodEnum<["all", "deferrals", "statusRecompute", "sequenceFinish", "cadence", "tags", "domainMatch", "blacklist", "reconcile"]>>;
268
268
  }, "strip", z.ZodTypeAny, {
269
- step?: "all" | "reconcile" | "deferrals" | "statusRecompute" | "sequenceFinish" | "cadence" | "domainMatch" | "blacklist" | undefined;
269
+ step?: "all" | "reconcile" | "deferrals" | "statusRecompute" | "sequenceFinish" | "cadence" | "tags" | "domainMatch" | "blacklist" | undefined;
270
270
  }, {
271
- step?: "all" | "reconcile" | "deferrals" | "statusRecompute" | "sequenceFinish" | "cadence" | "domainMatch" | "blacklist" | undefined;
271
+ step?: "all" | "reconcile" | "deferrals" | "statusRecompute" | "sequenceFinish" | "cadence" | "tags" | "domainMatch" | "blacklist" | undefined;
272
272
  }>;
273
273
  response: z.ZodObject<{
274
274
  undeferred: z.ZodNumber;
@@ -277,6 +277,8 @@ export declare const outreachCallables: {
277
277
  recomputeBlocked: z.ZodOptional<z.ZodBoolean>;
278
278
  sequenceFinished: z.ZodOptional<z.ZodNumber>;
279
279
  cadenceChanged: z.ZodOptional<z.ZodNumber>;
280
+ /** Addresses whose Woodpecker tag changed. */
281
+ tagsPushed: z.ZodOptional<z.ZodNumber>;
280
282
  domainMatches: z.ZodNumber;
281
283
  blacklistPushed: z.ZodOptional<z.ZodNumber>;
282
284
  reconcile: z.ZodOptional<z.ZodObject<{
@@ -300,6 +302,7 @@ export declare const outreachCallables: {
300
302
  recomputeBlocked?: boolean | undefined;
301
303
  sequenceFinished?: number | undefined;
302
304
  cadenceChanged?: number | undefined;
305
+ tagsPushed?: number | undefined;
303
306
  blacklistPushed?: number | undefined;
304
307
  }, {
305
308
  undeferred: number;
@@ -312,183 +315,13 @@ export declare const outreachCallables: {
312
315
  recomputeBlocked?: boolean | undefined;
313
316
  sequenceFinished?: number | undefined;
314
317
  cadenceChanged?: number | undefined;
318
+ tagsPushed?: number | undefined;
315
319
  blacklistPushed?: number | undefined;
316
320
  }>;
317
321
  };
318
- "outreach-saveMonthlySend": {
319
- request: z.ZodObject<{
320
- /** YYYY-MM; also the doc id. Only drafts and tested emails can be edited; editing needs a new test. */
321
- month: z.ZodString;
322
- campaigns: z.ZodObject<{
323
- secondary: z.ZodObject<{
324
- campaignId: z.ZodNumber;
325
- subject: z.ZodString;
326
- }, "strip", z.ZodTypeAny, {
327
- subject: string;
328
- campaignId: number;
329
- }, {
330
- subject: string;
331
- campaignId: number;
332
- }>;
333
- college: z.ZodOptional<z.ZodObject<{
334
- campaignId: z.ZodNumber;
335
- subject: z.ZodString;
336
- }, "strip", z.ZodTypeAny, {
337
- subject: string;
338
- campaignId: number;
339
- }, {
340
- subject: string;
341
- campaignId: number;
342
- }>>;
343
- }, "strip", z.ZodTypeAny, {
344
- secondary: {
345
- subject: string;
346
- campaignId: number;
347
- };
348
- college?: {
349
- subject: string;
350
- campaignId: number;
351
- } | undefined;
352
- }, {
353
- secondary: {
354
- subject: string;
355
- campaignId: number;
356
- };
357
- college?: {
358
- subject: string;
359
- campaignId: number;
360
- } | undefined;
361
- }>;
362
- /** Omit to keep the default (second term-week Tuesday of the month). */
363
- sendDate: z.ZodOptional<z.ZodString>;
364
- /** Omit to use the saved default; given ones become the new default. */
365
- testEmails: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
366
- }, "strip", z.ZodTypeAny, {
367
- month: string;
368
- campaigns: {
369
- secondary: {
370
- subject: string;
371
- campaignId: number;
372
- };
373
- college?: {
374
- subject: string;
375
- campaignId: number;
376
- } | undefined;
377
- };
378
- sendDate?: string | undefined;
379
- testEmails?: string[] | undefined;
380
- }, {
381
- month: string;
382
- campaigns: {
383
- secondary: {
384
- subject: string;
385
- campaignId: number;
386
- };
387
- college?: {
388
- subject: string;
389
- campaignId: number;
390
- } | undefined;
391
- };
392
- sendDate?: string | undefined;
393
- testEmails?: string[] | undefined;
394
- }>;
395
- response: z.ZodObject<{
396
- id: z.ZodString;
397
- /** Schools it would reach today. */
398
- recipients: z.ZodObject<{
399
- total: z.ZodNumber;
400
- secondary: z.ZodNumber;
401
- college: z.ZodNumber;
402
- }, "strip", z.ZodTypeAny, {
403
- total: number;
404
- college: number;
405
- secondary: number;
406
- }, {
407
- total: number;
408
- college: number;
409
- secondary: number;
410
- }>;
411
- date: z.ZodString;
412
- warnings: z.ZodArray<z.ZodString, "many">;
413
- }, "strip", z.ZodTypeAny, {
414
- id: string;
415
- date: string;
416
- recipients: {
417
- total: number;
418
- college: number;
419
- secondary: number;
420
- };
421
- warnings: string[];
422
- }, {
423
- id: string;
424
- date: string;
425
- recipients: {
426
- total: number;
427
- college: number;
428
- secondary: number;
429
- };
430
- warnings: string[];
431
- }>;
432
- };
433
- "outreach-testMonthlySend": {
434
- request: z.ZodObject<{
435
- id: z.ZodString;
436
- }, "strip", z.ZodTypeAny, {
437
- id: string;
438
- }, {
439
- id: string;
440
- }>;
441
- /** Woodpecker has no test API: the admin sends it there, then marks it tested here. */
442
- response: z.ZodObject<{
443
- testedAt: z.ZodString;
444
- }, "strip", z.ZodTypeAny, {
445
- testedAt: string;
446
- }, {
447
- testedAt: string;
448
- }>;
449
- };
450
- "outreach-approveMonthlySend": {
451
- request: z.ZodObject<{
452
- id: z.ZodString;
453
- }, "strip", z.ZodTypeAny, {
454
- id: string;
455
- }, {
456
- id: string;
457
- }>;
458
- /** Schools are added from this date. */
459
- response: z.ZodObject<{
460
- date: z.ZodString;
461
- added: z.ZodBoolean;
462
- }, "strip", z.ZodTypeAny, {
463
- added: boolean;
464
- date: string;
465
- }, {
466
- added: boolean;
467
- date: string;
468
- }>;
469
- };
470
- "outreach-controlMonthlySend": {
471
- request: z.ZodObject<{
472
- id: z.ZodString;
473
- action: z.ZodEnum<["cancel"]>;
474
- }, "strip", z.ZodTypeAny, {
475
- id: string;
476
- action: "cancel";
477
- }, {
478
- id: string;
479
- action: "cancel";
480
- }>;
481
- response: z.ZodObject<{
482
- status: z.ZodEnum<["draft", "tested", "approved", "sending", "drafted", "sent", "cancelled"]>;
483
- }, "strip", z.ZodTypeAny, {
484
- status: "cancelled" | "draft" | "approved" | "sent" | "sending" | "tested" | "drafted";
485
- }, {
486
- status: "cancelled" | "draft" | "approved" | "sent" | "sending" | "tested" | "drafted";
487
- }>;
488
- };
489
322
  "outreach-runSequence": {
490
323
  request: z.ZodObject<{
491
- /** Preview next week's campaigns: nothing is made and schools are not touched. */
324
+ /** Preview who would be added: Woodpecker and schools are not touched. */
492
325
  dryRun: z.ZodOptional<z.ZodBoolean>;
493
326
  }, "strip", z.ZodTypeAny, {
494
327
  dryRun?: boolean | undefined;
@@ -498,45 +331,17 @@ export declare const outreachCallables: {
498
331
  response: z.ZodObject<{
499
332
  date: z.ZodString;
500
333
  dryRun: z.ZodBoolean;
501
- skip: z.ZodOptional<z.ZodEnum<["disabled", "blackout", "notSendDay"]>>;
502
- tranches: z.ZodArray<z.ZodObject<{
503
- date: z.ZodString;
334
+ skip: z.ZodOptional<z.ZodEnum<["disabled"]>>;
335
+ added: z.ZodObject<{
504
336
  secondary: z.ZodNumber;
505
337
  college: z.ZodNumber;
506
- campaignId: z.ZodOptional<z.ZodNumber>;
507
- error: z.ZodOptional<z.ZodString>;
508
338
  }, "strip", z.ZodTypeAny, {
509
- date: string;
510
339
  college: number;
511
340
  secondary: number;
512
- error?: string | undefined;
513
- campaignId?: number | undefined;
514
341
  }, {
515
- date: string;
516
342
  college: number;
517
343
  secondary: number;
518
- error?: string | undefined;
519
- campaignId?: number | undefined;
520
- }>, "many">;
521
- capacity: z.ZodOptional<z.ZodObject<{
522
- mailboxes: z.ZodNumber;
523
- dailyLimit: z.ZodNumber;
524
- weekly: z.ZodNumber;
525
- scheduled: z.ZodNumber;
526
- available: z.ZodNumber;
527
- }, "strip", z.ZodTypeAny, {
528
- weekly: number;
529
- scheduled: number;
530
- mailboxes: number;
531
- dailyLimit: number;
532
- available: number;
533
- }, {
534
- weekly: number;
535
- scheduled: number;
536
- mailboxes: number;
537
- dailyLimit: number;
538
- available: number;
539
- }>>;
344
+ }>;
540
345
  starts: z.ZodNumber;
541
346
  blocked: z.ZodArray<z.ZodObject<{
542
347
  urn: z.ZodNumber;
@@ -553,62 +358,39 @@ export declare const outreachCallables: {
553
358
  reason: string;
554
359
  urn: number;
555
360
  }[];
556
- date: string;
557
- dryRun: boolean;
558
- tranches: {
559
- date: string;
361
+ added: {
560
362
  college: number;
561
363
  secondary: number;
562
- error?: string | undefined;
563
- campaignId?: number | undefined;
564
- }[];
364
+ };
365
+ date: string;
366
+ dryRun: boolean;
565
367
  starts: number;
566
- skip?: "disabled" | "blackout" | "notSendDay" | undefined;
567
- capacity?: {
568
- weekly: number;
569
- scheduled: number;
570
- mailboxes: number;
571
- dailyLimit: number;
572
- available: number;
573
- } | undefined;
368
+ skip?: "disabled" | undefined;
574
369
  }, {
575
370
  blocked: {
576
371
  reason: string;
577
372
  urn: number;
578
373
  }[];
579
- date: string;
580
- dryRun: boolean;
581
- tranches: {
582
- date: string;
374
+ added: {
583
375
  college: number;
584
376
  secondary: number;
585
- error?: string | undefined;
586
- campaignId?: number | undefined;
587
- }[];
377
+ };
378
+ date: string;
379
+ dryRun: boolean;
588
380
  starts: number;
589
- skip?: "disabled" | "blackout" | "notSendDay" | undefined;
590
- capacity?: {
591
- weekly: number;
592
- scheduled: number;
593
- mailboxes: number;
594
- dailyLimit: number;
595
- available: number;
596
- } | undefined;
381
+ skip?: "disabled" | undefined;
597
382
  }>;
598
383
  };
599
384
  "outreach-setSequenceConfig": {
600
385
  request: z.ZodObject<{
601
386
  onlyGroups: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
602
387
  allowlist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
603
- dailyBatch: z.ZodOptional<z.ZodNumber>;
604
388
  }, "strip", z.ZodTypeAny, {
605
389
  onlyGroups?: string[] | undefined;
606
390
  allowlist?: string[] | undefined;
607
- dailyBatch?: number | undefined;
608
391
  }, {
609
392
  onlyGroups?: string[] | undefined;
610
393
  allowlist?: string[] | undefined;
611
- dailyBatch?: number | undefined;
612
394
  }>;
613
395
  response: z.ZodObject<{
614
396
  saved: z.ZodBoolean;
@@ -621,25 +403,18 @@ export declare const outreachCallables: {
621
403
  "outreach-setFeatures": {
622
404
  request: z.ZodObject<{
623
405
  coldSequence: z.ZodOptional<z.ZodBoolean>;
624
- monthlyEmails: z.ZodOptional<z.ZodBoolean>;
625
406
  replyPause: z.ZodOptional<z.ZodBoolean>;
626
407
  replyTriage: z.ZodOptional<z.ZodBoolean>;
627
408
  statusSync: z.ZodOptional<z.ZodBoolean>;
628
409
  senderSync: z.ZodOptional<z.ZodBoolean>;
629
- /** Off means draft only: nothing is added to a running campaign. */
630
- autoSend: z.ZodOptional<z.ZodBoolean>;
631
410
  }, "strip", z.ZodTypeAny, {
632
- autoSend?: boolean | undefined;
633
411
  coldSequence?: boolean | undefined;
634
- monthlyEmails?: boolean | undefined;
635
412
  replyPause?: boolean | undefined;
636
413
  replyTriage?: boolean | undefined;
637
414
  statusSync?: boolean | undefined;
638
415
  senderSync?: boolean | undefined;
639
416
  }, {
640
- autoSend?: boolean | undefined;
641
417
  coldSequence?: boolean | undefined;
642
- monthlyEmails?: boolean | undefined;
643
418
  replyPause?: boolean | undefined;
644
419
  replyTriage?: boolean | undefined;
645
420
  statusSync?: boolean | undefined;
@@ -15,14 +15,6 @@ const outreachStatus = zod_1.z.enum(["needsEmail", "queued", "sequence", "pool",
15
15
  const uploadRow = zod_1.z.record(zod_1.z.string(), zod_1.z.string().optional());
16
16
  /** An outreach group name. */
17
17
  const groupName = zod_1.z.string().trim().min(1, "Name the group.").max(60, "Keep group names under 60 characters.");
18
- const monthlyCampaign = zod_1.z.object({ campaignId: zod_1.z.number().int(), subject: zod_1.z.string().min(1) });
19
- const capacity = zod_1.z.object({
20
- mailboxes: zod_1.z.number(),
21
- dailyLimit: zod_1.z.number(),
22
- weekly: zod_1.z.number(),
23
- scheduled: zod_1.z.number(),
24
- available: zod_1.z.number(),
25
- });
26
18
  const isoDate = zod_1.z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Use a YYYY-MM-DD date.");
27
19
  exports.outreachCallables = {
28
20
  "outreach-upsertContacts": {
@@ -114,7 +106,7 @@ exports.outreachCallables = {
114
106
  },
115
107
  "outreach-runSweep": {
116
108
  request: zod_1.z.object({
117
- step: zod_1.z.enum(["all", "deferrals", "statusRecompute", "sequenceFinish", "cadence", "domainMatch", "blacklist", "reconcile"]).optional(),
109
+ step: zod_1.z.enum(["all", "deferrals", "statusRecompute", "sequenceFinish", "cadence", "tags", "domainMatch", "blacklist", "reconcile"]).optional(),
118
110
  }),
119
111
  response: zod_1.z.object({
120
112
  undeferred: zod_1.z.number(),
@@ -123,6 +115,8 @@ exports.outreachCallables = {
123
115
  recomputeBlocked: zod_1.z.boolean().optional(),
124
116
  sequenceFinished: zod_1.z.number().optional(),
125
117
  cadenceChanged: zod_1.z.number().optional(),
118
+ /** Addresses whose Woodpecker tag changed. */
119
+ tagsPushed: zod_1.z.number().optional(),
126
120
  domainMatches: zod_1.z.number(),
127
121
  blacklistPushed: zod_1.z.number().optional(),
128
122
  reconcile: zod_1.z.object({
@@ -131,52 +125,16 @@ exports.outreachCallables = {
131
125
  }).optional(),
132
126
  }),
133
127
  },
134
- "outreach-saveMonthlySend": {
135
- request: zod_1.z.object({
136
- /** YYYY-MM; also the doc id. Only drafts and tested emails can be edited; editing needs a new test. */
137
- month: zod_1.z.string().regex(/^\d{4}-\d{2}$/, "Use YYYY-MM."),
138
- campaigns: zod_1.z.object({
139
- secondary: monthlyCampaign,
140
- college: monthlyCampaign.optional(),
141
- }),
142
- /** Omit to keep the default (second term-week Tuesday of the month). */
143
- sendDate: isoDate.optional(),
144
- /** Omit to use the saved default; given ones become the new default. */
145
- testEmails: zod_1.z.array(zod_1.z.string().email()).min(1).max(10).optional(),
146
- }),
147
- response: zod_1.z.object({
148
- id: zod_1.z.string(),
149
- /** Schools it would reach today. */
150
- recipients: zod_1.z.object({ total: zod_1.z.number(), secondary: zod_1.z.number(), college: zod_1.z.number() }),
151
- date: isoDate,
152
- warnings: zod_1.z.array(zod_1.z.string()),
153
- }),
154
- },
155
- "outreach-testMonthlySend": {
156
- request: zod_1.z.object({ id: zod_1.z.string() }),
157
- /** Woodpecker has no test API: the admin sends it there, then marks it tested here. */
158
- response: zod_1.z.object({ testedAt: zod_1.z.string() }),
159
- },
160
- "outreach-approveMonthlySend": {
161
- request: zod_1.z.object({ id: zod_1.z.string() }),
162
- /** Schools are added from this date. */
163
- response: zod_1.z.object({ date: isoDate, added: zod_1.z.boolean() }),
164
- },
165
- "outreach-controlMonthlySend": {
166
- request: zod_1.z.object({ id: zod_1.z.string(), action: zod_1.z.enum(["cancel"]) }),
167
- response: zod_1.z.object({ status: zod_1.z.enum(["draft", "tested", "approved", "sending", "drafted", "sent", "cancelled"]) }),
168
- },
169
128
  "outreach-runSequence": {
170
129
  request: zod_1.z.object({
171
- /** Preview next week's campaigns: nothing is made and schools are not touched. */
130
+ /** Preview who would be added: Woodpecker and schools are not touched. */
172
131
  dryRun: zod_1.z.boolean().optional(),
173
132
  }),
174
133
  response: zod_1.z.object({
175
134
  date: isoDate,
176
135
  dryRun: zod_1.z.boolean(),
177
- skip: zod_1.z.enum(["disabled", "blackout", "notSendDay"]).optional(),
178
- tranches: zod_1.z.array(zod_1.z.object({ date: isoDate, secondary: zod_1.z.number(), college: zod_1.z.number(), campaignId: zod_1.z.number().optional(), error: zod_1.z.string().optional() })),
179
- capacity: capacity.optional(),
136
+ skip: zod_1.z.enum(["disabled"]).optional(),
137
+ added: zod_1.z.object({ secondary: zod_1.z.number(), college: zod_1.z.number() }),
180
138
  starts: zod_1.z.number(),
181
139
  blocked: zod_1.z.array(zod_1.z.object({ urn: zod_1.z.number(), reason: zod_1.z.string() })),
182
140
  }),
@@ -185,20 +143,16 @@ exports.outreachCallables = {
185
143
  request: zod_1.z.object({
186
144
  onlyGroups: zod_1.z.array(zod_1.z.string()).optional(),
187
145
  allowlist: zod_1.z.array(zod_1.z.string().email()).optional(),
188
- dailyBatch: zod_1.z.number().int().min(1).max(200).optional(),
189
146
  }),
190
147
  response: zod_1.z.object({ saved: zod_1.z.boolean() }),
191
148
  },
192
149
  "outreach-setFeatures": {
193
150
  request: zod_1.z.object({
194
151
  coldSequence: zod_1.z.boolean().optional(),
195
- monthlyEmails: zod_1.z.boolean().optional(),
196
152
  replyPause: zod_1.z.boolean().optional(),
197
153
  replyTriage: zod_1.z.boolean().optional(),
198
154
  statusSync: zod_1.z.boolean().optional(),
199
155
  senderSync: zod_1.z.boolean().optional(),
200
- /** Off means draft only: nothing is added to a running campaign. */
201
- autoSend: zod_1.z.boolean().optional(),
202
156
  }),
203
157
  response: zod_1.z.object({ saved: zod_1.z.boolean() }),
204
158
  },