@dakkitor/api-contracts 1.4.0 → 1.6.0

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.
Files changed (139) hide show
  1. package/dist/abilities/abilities.contract.d.ts +8 -2
  2. package/dist/abilities/abilities.contract.d.ts.map +1 -1
  3. package/dist/abilities/abilities.contract.js +48 -1
  4. package/dist/abilities/abilities.contract.spec.js +98 -0
  5. package/dist/abilities/first-agent.abilities.json +9 -2
  6. package/dist/abilities/outreach-service.abilities.json +14 -0
  7. package/dist/abilities/outreach.abilities.json +25 -0
  8. package/dist/abilities/second-agent.abilities.json +5 -1
  9. package/dist/actives/actives.contract.d.ts +7160 -7021
  10. package/dist/actives/actives.contract.d.ts.map +1 -1
  11. package/dist/actives/actives.contract.js +2 -0
  12. package/dist/actives/actives.contract.spec.d.ts +2 -0
  13. package/dist/actives/actives.contract.spec.d.ts.map +1 -0
  14. package/dist/actives/actives.contract.spec.js +35 -0
  15. package/dist/agent-client-links/agent-client-links.contract.d.ts +1087 -1087
  16. package/dist/auth/auth.contract.d.ts +108 -108
  17. package/dist/bookings/bookings.contract.d.ts +10131 -9939
  18. package/dist/bookings/bookings.contract.d.ts.map +1 -1
  19. package/dist/call-history/call-history.contract.d.ts +718 -718
  20. package/dist/calls-feed/calls-feed.contract.d.ts +86 -86
  21. package/dist/client-contacts/client-contacts.contract.d.ts +469 -469
  22. package/dist/clients/clients.contract.d.ts +203 -203
  23. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +2713 -2713
  24. package/dist/collaborations/collaborations.contract.d.ts +2270 -2270
  25. package/dist/common/common-schemas.d.ts +12 -12
  26. package/dist/companies/companies.contract.d.ts +74 -74
  27. package/dist/crews/crews.contract.d.ts +253 -253
  28. package/dist/cron-executions/cron-executions.contract.d.ts +182 -182
  29. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts +3353 -3353
  30. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts +20 -20
  31. package/dist/curated-worker-leads/consent-queue.contract.d.ts +196 -166
  32. package/dist/curated-worker-leads/consent-queue.contract.d.ts.map +1 -1
  33. package/dist/curated-worker-leads/curated-worker-lead-config.contract.d.ts +16 -16
  34. package/dist/curated-worker-leads/curated-worker-leads.contract.d.ts +2 -2
  35. package/dist/curated-worker-leads/jobs-tab.contract.d.ts +1192 -564
  36. package/dist/curated-worker-leads/jobs-tab.contract.d.ts.map +1 -1
  37. package/dist/curated-worker-leads/jobs-tab.contract.js +65 -2
  38. package/dist/curated-worker-leads/lead-agent-area.contract.d.ts +4 -4
  39. package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.d.ts +2 -0
  40. package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.d.ts.map +1 -0
  41. package/dist/curated-worker-leads/outreach-pool-summary.contract.spec.js +39 -0
  42. package/dist/curated-worker-leads/owned-jobs-tab.contract.d.ts +46 -46
  43. package/dist/curated-workers/curated-workers.contract.d.ts +789 -789
  44. package/dist/dashboards/agent-daily-metrics.contract.d.ts +2 -2
  45. package/dist/dashboards/dashboard-widgets.contract.d.ts +292 -292
  46. package/dist/dashboards/dashboard.contract.d.ts +12 -12
  47. package/dist/document-intake/document-intake.contract.d.ts +601 -601
  48. package/dist/export-jobs/export-jobs.contract.d.ts +572 -562
  49. package/dist/export-jobs/export-jobs.contract.d.ts.map +1 -1
  50. package/dist/exports-events/exports-events.schemas.d.ts +6 -6
  51. package/dist/files/files.contract.d.ts +74 -74
  52. package/dist/index.d.ts +10 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +10 -0
  55. package/dist/interactions/interactions.contract.d.ts +6 -6
  56. package/dist/job-clusters/job-clusters.contract.d.ts +112 -112
  57. package/dist/jobs/job-moderation-fields.spec.d.ts +2 -0
  58. package/dist/jobs/job-moderation-fields.spec.d.ts.map +1 -0
  59. package/dist/jobs/job-moderation-fields.spec.js +72 -0
  60. package/dist/jobs/jobs.contract.d.ts +7734 -7474
  61. package/dist/jobs/jobs.contract.d.ts.map +1 -1
  62. package/dist/jobs/jobs.contract.js +57 -0
  63. package/dist/kpi-impersonation/kpi-impersonation.contract.d.ts +141 -141
  64. package/dist/lead-assignments/lead-assignments.contract.d.ts +911 -911
  65. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +209 -209
  66. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +77 -77
  67. package/dist/leads/leads.contract.d.ts +283 -283
  68. package/dist/locations/locations.contract.d.ts +49 -49
  69. package/dist/notifications/notifications.contract.d.ts +49 -49
  70. package/dist/offices/offices.contract.d.ts +34 -34
  71. package/dist/outreach/__tests__/outreach-claim.test.js +1 -0
  72. package/dist/outreach/__tests__/outreach-contract-additions.spec.d.ts +2 -0
  73. package/dist/outreach/__tests__/outreach-contract-additions.spec.d.ts.map +1 -0
  74. package/dist/outreach/__tests__/outreach-contract-additions.spec.js +89 -0
  75. package/dist/outreach/__tests__/outreach-requests.contract.spec.d.ts +2 -0
  76. package/dist/outreach/__tests__/outreach-requests.contract.spec.d.ts.map +1 -0
  77. package/dist/outreach/__tests__/outreach-requests.contract.spec.js +77 -0
  78. package/dist/outreach/__tests__/outreach-routes.test.js +14 -3
  79. package/dist/outreach/__tests__/outreach.schemas.test.js +5 -1
  80. package/dist/outreach/outreach-requests.contract.d.ts +1753 -0
  81. package/dist/outreach/outreach-requests.contract.d.ts.map +1 -0
  82. package/dist/outreach/outreach-requests.contract.js +154 -0
  83. package/dist/outreach/outreach-requests.schemas.d.ts +95 -0
  84. package/dist/outreach/outreach-requests.schemas.d.ts.map +1 -0
  85. package/dist/outreach/outreach-requests.schemas.js +63 -0
  86. package/dist/outreach/outreach.contract.d.ts +373 -101
  87. package/dist/outreach/outreach.contract.d.ts.map +1 -1
  88. package/dist/outreach/outreach.contract.js +18 -0
  89. package/dist/outreach/outreach.contract.spec.d.ts +2 -0
  90. package/dist/outreach/outreach.contract.spec.d.ts.map +1 -0
  91. package/dist/outreach/outreach.contract.spec.js +54 -0
  92. package/dist/outreach/outreach.schemas.d.ts +15 -10
  93. package/dist/outreach/outreach.schemas.d.ts.map +1 -1
  94. package/dist/outreach/outreach.schemas.js +5 -2
  95. package/dist/own-research/own-research.contract.d.ts +775 -775
  96. package/dist/postcodes/postcodes.contract.d.ts +24 -24
  97. package/dist/proofs/proof-type.enum.d.ts +4 -4
  98. package/dist/proofs/proofs.contract.d.ts +363 -363
  99. package/dist/proofs/proofs.dtos.d.ts +124 -124
  100. package/dist/qualifications/qualifications.contract.d.ts +38 -38
  101. package/dist/relay-pods/relay-pod-sessions.contract.d.ts +680 -0
  102. package/dist/relay-pods/relay-pod-sessions.contract.d.ts.map +1 -0
  103. package/dist/relay-pods/relay-pod-sessions.contract.js +67 -0
  104. package/dist/relay-pods/relay-pod-sessions.contract.spec.d.ts +2 -0
  105. package/dist/relay-pods/relay-pod-sessions.contract.spec.d.ts.map +1 -0
  106. package/dist/relay-pods/relay-pod-sessions.contract.spec.js +129 -0
  107. package/dist/relay-pods/relay-pods.contract.d.ts +1569 -0
  108. package/dist/relay-pods/relay-pods.contract.d.ts.map +1 -0
  109. package/dist/relay-pods/relay-pods.contract.js +188 -0
  110. package/dist/relay-pods/relay-pods.contract.spec.d.ts +2 -0
  111. package/dist/relay-pods/relay-pods.contract.spec.d.ts.map +1 -0
  112. package/dist/relay-pods/relay-pods.contract.spec.js +141 -0
  113. package/dist/relay-pods/relay-pods.schemas.d.ts +415 -0
  114. package/dist/relay-pods/relay-pods.schemas.d.ts.map +1 -0
  115. package/dist/relay-pods/relay-pods.schemas.js +112 -0
  116. package/dist/shared/live-booking.schema.d.ts +4 -4
  117. package/dist/shared/summary-schemas.d.ts +6 -6
  118. package/dist/sheets-sync/sheets-sync.contract.d.ts +939 -939
  119. package/dist/telegram/telegram.contract.d.ts +22 -22
  120. package/dist/trades/trades.contract.d.ts +90 -90
  121. package/dist/user-access-grants/user-access-grants.contract.d.ts +165 -165
  122. package/dist/users/__tests__/assignable-roles.spec.d.ts +2 -0
  123. package/dist/users/__tests__/assignable-roles.spec.d.ts.map +1 -0
  124. package/dist/users/__tests__/assignable-roles.spec.js +41 -0
  125. package/dist/users/users.contract.d.ts +399 -393
  126. package/dist/users/users.contract.d.ts.map +1 -1
  127. package/dist/users/users.contract.js +11 -0
  128. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts +585 -527
  129. package/dist/worker-identity-cases/worker-identity-cases.contract.d.ts.map +1 -1
  130. package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts +278 -236
  131. package/dist/worker-merge-proposals/worker-merge-proposals.contract.d.ts.map +1 -1
  132. package/dist/worker-merge-proposals/worker-merge-proposals.contract.js +1 -0
  133. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.contract.d.ts +153 -153
  134. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.schemas.d.ts +59 -59
  135. package/dist/workers/workers.contract.d.ts +2919 -2919
  136. package/package.json +1 -1
  137. package/dist/bookings/bookings.contract.spec.d.ts +0 -2
  138. package/dist/bookings/bookings.contract.spec.d.ts.map +0 -1
  139. package/dist/bookings/bookings.contract.spec.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"outreach.contract.d.ts","sourceRoot":"","sources":["../../contracts/outreach/outreach.contract.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAG,EAAW,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAIM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYM,CAAC;AAEnD,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;EAoBM,CAAC;AAEjD,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;EAOM,CAAC;AAErD,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;EAUM,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;EAIM,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsE5B,CAAC"}
1
+ {"version":3,"file":"outreach.contract.d.ts","sourceRoot":"","sources":["../../contracts/outreach/outreach.contract.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAG,EAAW,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAIM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYM,CAAC;AAEnD,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;EAoBM,CAAC;AAEjD,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;EAOM,CAAC;AAErD,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;EAUM,CAAC;AAElD,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF,eAAO,MAAM,kCAAkC;;;;;;EAIM,CAAC;AAEtD,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyF5B,CAAC"}
@@ -130,6 +130,24 @@ exports.ReleaseOutreachLeaseResponseSchema = zod_1.z
130
130
  .openapi({ title: 'ReleaseOutreachLeaseResponse' });
131
131
  exports.outreachContract = c.router({
132
132
  claimNext: {
133
+ method: 'POST',
134
+ path: '/outreach/requests/:requestId/claim-next',
135
+ pathParams: zod_1.z.object({
136
+ requestId: zod_1.z
137
+ .string()
138
+ .uuid()
139
+ .describe('Authorized request to claim a candidate for'),
140
+ }),
141
+ body: exports.ClaimNextOutreachBodySchema,
142
+ responses: {
143
+ 200: exports.ClaimNextOutreachResponseSchema,
144
+ 409: error_schemas_1.ErrorResponseSchema,
145
+ },
146
+ summary: 'Claim the next eligible candidate for an outreach request',
147
+ description: 'Derives the job from the pod-owned request. Idempotent per device: a device that already holds an active lease gets that lease back.',
148
+ metadata: { tags: ['Outreach'] },
149
+ },
150
+ claimNextLegacy: {
133
151
  method: 'POST',
134
152
  path: '/outreach/jobs/:jobId/claim-next',
135
153
  pathParams: zod_1.z.object({
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=outreach.contract.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outreach.contract.spec.d.ts","sourceRoot":"","sources":["../../contracts/outreach/outreach.contract.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bun_test_1 = require("bun:test");
4
+ const outreach_requests_contract_1 = require("./outreach-requests.contract");
5
+ const outreach_contract_1 = require("./outreach.contract");
6
+ (0, bun_test_1.describe)('pod-routed outreach contracts', () => {
7
+ (0, bun_test_1.it)('uses a request-based primary claim route and retains the legacy route', () => {
8
+ (0, bun_test_1.expect)(outreach_contract_1.outreachContract.claimNext.path).toBe('/v2/outreach/requests/:requestId/claim-next');
9
+ (0, bun_test_1.expect)(outreach_contract_1.outreachContract.claimNextLegacy.path).toBe('/v2/outreach/jobs/:jobId/claim-next');
10
+ });
11
+ (0, bun_test_1.it)('publishes pending-request reassignment', () => {
12
+ (0, bun_test_1.expect)(outreach_requests_contract_1.outreachRequestsContract.reassign.path).toBe('/v2/outreach/requests/:id/reassign');
13
+ (0, bun_test_1.expect)(outreach_requests_contract_1.outreachRequestsContract.reassign.method).toBe('POST');
14
+ (0, bun_test_1.expect)(outreach_requests_contract_1.outreachRequestsContract.reassign.body.parse({
15
+ targetPodId: '22222222-2222-4222-8222-222222222222',
16
+ }).targetPodId).toBe('22222222-2222-4222-8222-222222222222');
17
+ });
18
+ (0, bun_test_1.it)('does not advertise completing a pending request', () => {
19
+ (0, bun_test_1.expect)(outreach_requests_contract_1.outreachRequestsContract.complete.description).toContain('RUNNING -> COMPLETED');
20
+ (0, bun_test_1.expect)(outreach_requests_contract_1.outreachRequestsContract.complete.description).not.toContain('PENDING or RUNNING');
21
+ });
22
+ bun_test_1.it.each([
23
+ ['cancel', outreach_requests_contract_1.outreachRequestsContract.cancel],
24
+ ['reassign', outreach_requests_contract_1.outreachRequestsContract.reassign],
25
+ ])('%s rejects non-PENDING requests with a conflict response', (_operation, route) => {
26
+ (0, bun_test_1.expect)(route.responses).toHaveProperty('409');
27
+ (0, bun_test_1.expect)(route.responses).toHaveProperty('404');
28
+ (0, bun_test_1.expect)(route.description).toContain('Rejects non-PENDING requests');
29
+ });
30
+ (0, bun_test_1.it)('keeps an explicit target optional for ordinary request creation', () => {
31
+ const jobId = '11111111-1111-4111-8111-111111111111';
32
+ (0, bun_test_1.expect)(outreach_requests_contract_1.CreateOutreachRequestBodySchema.parse({ jobId }).targetPodId).toBeUndefined();
33
+ (0, bun_test_1.expect)(outreach_requests_contract_1.CreateOutreachRequestBodySchema.parse({
34
+ jobId,
35
+ targetPodId: '22222222-2222-4222-8222-222222222222',
36
+ }).targetPodId).toBe('22222222-2222-4222-8222-222222222222');
37
+ });
38
+ (0, bun_test_1.it)('represents migration-era requests without an assigned pod', () => {
39
+ const parsed = outreach_requests_contract_1.OutreachRequestSchema.parse({
40
+ id: '11111111-1111-4111-8111-111111111111',
41
+ jobId: '22222222-2222-4222-8222-222222222222',
42
+ requestedByUserId: '33333333-3333-4333-8333-333333333333',
43
+ status: 'PENDING',
44
+ eligibleAtRequest: 12,
45
+ requestedByName: 'Relay Owner',
46
+ contactedCount: 0,
47
+ createdAt: '2026-08-01T09:00:00.000Z',
48
+ startedAt: null,
49
+ completedAt: null,
50
+ assignedPod: null,
51
+ });
52
+ (0, bun_test_1.expect)(parsed.assignedPod).toBeNull();
53
+ });
54
+ });
@@ -52,11 +52,11 @@ export declare const OutreachLeaseSchema: z.ZodObject<{
52
52
  leaseId: z.ZodString;
53
53
  expiresAt: z.ZodString;
54
54
  }, "strip", z.ZodTypeAny, {
55
- leaseId: string;
56
55
  expiresAt: string;
57
- }, {
58
56
  leaseId: string;
57
+ }, {
59
58
  expiresAt: string;
59
+ leaseId: string;
60
60
  }>;
61
61
  export type OutreachLease = z.infer<typeof OutreachLeaseSchema>;
62
62
  export declare const OutreachCandidateSchema: z.ZodObject<{
@@ -69,41 +69,46 @@ export declare const OutreachCandidateSchema: z.ZodObject<{
69
69
  commuteMinutes: z.ZodNumber;
70
70
  transportMode: z.ZodEnum<["DRIVE", "PUBLIC_TRANSPORT"]>;
71
71
  }, "strip", z.ZodTypeAny, {
72
+ phoneNumber: string;
73
+ name: string;
72
74
  subjectKind: "OWNED" | "CURATED";
73
75
  subjectId: string;
74
76
  canonicalKind: "WORKER" | "CURATED_WORKER";
75
77
  canonicalId: string;
76
- name: string;
77
- phoneNumber: string;
78
78
  commuteMinutes: number;
79
- transportMode: "DRIVE" | "PUBLIC_TRANSPORT";
79
+ transportMode: "PUBLIC_TRANSPORT" | "DRIVE";
80
80
  }, {
81
+ phoneNumber: string;
82
+ name: string;
81
83
  subjectKind: "OWNED" | "CURATED";
82
84
  subjectId: string;
83
85
  canonicalKind: "WORKER" | "CURATED_WORKER";
84
86
  canonicalId: string;
85
- name: string;
86
- phoneNumber: string;
87
87
  commuteMinutes: number;
88
- transportMode: "DRIVE" | "PUBLIC_TRANSPORT";
88
+ transportMode: "PUBLIC_TRANSPORT" | "DRIVE";
89
89
  }>;
90
90
  export type OutreachCandidate = z.infer<typeof OutreachCandidateSchema>;
91
91
  /**
92
92
  * Enough of the job to compose a message. Everything but the title is nullable
93
- * because real jobs routinely lack pay or trade text, and a missing field must
94
- * not make a candidate unclaimable.
93
+ * because real jobs routinely lack pay, trade text, or a raising agent, and a
94
+ * missing field must not make a candidate unclaimable — createdByName is
95
+ * nullable for the same reason: a job with no createdById must not make a
96
+ * candidate unclaimable.
95
97
  */
96
98
  export declare const OutreachJobSchema: z.ZodObject<{
97
99
  title: z.ZodString;
98
100
  trade: z.ZodNullable<z.ZodString>;
99
101
  payText: z.ZodNullable<z.ZodString>;
100
102
  locationText: z.ZodNullable<z.ZodString>;
103
+ createdByName: z.ZodNullable<z.ZodString>;
101
104
  }, "strip", z.ZodTypeAny, {
105
+ createdByName: string | null;
102
106
  title: string;
103
107
  trade: string | null;
104
108
  payText: string | null;
105
109
  locationText: string | null;
106
110
  }, {
111
+ createdByName: string | null;
107
112
  title: string;
108
113
  trade: string | null;
109
114
  payText: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"outreach.schemas.d.ts","sourceRoot":"","sources":["../../contracts/outreach/outreach.schemas.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,iCAEM,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,yCAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,0CAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAIkC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,mFAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mBAAmB;;;;;;;;;EAQM,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCM,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAOM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"outreach.schemas.d.ts","sourceRoot":"","sources":["../../contracts/outreach/outreach.schemas.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,iCAEM,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,yCAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,0CAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAIkC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,2BAA2B,mFAEM,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mBAAmB;;;;;;;;;EAQM,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCM,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAQM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -119,8 +119,10 @@ exports.OutreachCandidateSchema = zod_1.z
119
119
  .openapi({ title: 'OutreachCandidate' });
120
120
  /**
121
121
  * Enough of the job to compose a message. Everything but the title is nullable
122
- * because real jobs routinely lack pay or trade text, and a missing field must
123
- * not make a candidate unclaimable.
122
+ * because real jobs routinely lack pay, trade text, or a raising agent, and a
123
+ * missing field must not make a candidate unclaimable — createdByName is
124
+ * nullable for the same reason: a job with no createdById must not make a
125
+ * candidate unclaimable.
124
126
  */
125
127
  exports.OutreachJobSchema = zod_1.z
126
128
  .object({
@@ -128,5 +130,6 @@ exports.OutreachJobSchema = zod_1.z
128
130
  trade: zod_1.z.string().nullable().describe('Trade label, if known'),
129
131
  payText: zod_1.z.string().nullable().describe('Pay as displayed, if known'),
130
132
  locationText: zod_1.z.string().nullable().describe('Location as displayed'),
133
+ createdByName: zod_1.z.string().nullable().describe('Agent who raised the job'),
131
134
  })
132
135
  .openapi({ title: 'OutreachJob' });