@dakkitor/api-contracts 1.8.0 → 1.9.2

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 +28 -1
  2. package/dist/abilities/abilities.contract.d.ts.map +1 -1
  3. package/dist/abilities/abilities.contract.js +32 -1
  4. package/dist/abilities/abilities.contract.spec.js +63 -3
  5. package/dist/abilities/admin-dashboard.abilities.test.js +1 -0
  6. package/dist/abilities/automatic-caller.abilities.json +1 -0
  7. package/dist/abilities/first-agent.abilities.json +14 -0
  8. package/dist/abilities/interconnection.abilities.json +17 -1
  9. package/dist/abilities/office-manager.abilities.json +4 -0
  10. package/dist/abilities/second-agent.abilities.json +48 -1
  11. package/dist/abilities/worker-curator.abilities.json +17 -1
  12. package/dist/actives/actives.contract.d.ts +6959 -6547
  13. package/dist/actives/actives.contract.d.ts.map +1 -1
  14. package/dist/agent-client-links/agent-client-links.contract.d.ts +1275 -1173
  15. package/dist/agent-client-links/agent-client-links.contract.d.ts.map +1 -1
  16. package/dist/auth/auth.contract.d.ts +102 -102
  17. package/dist/bookings/backdate-guard.spec.js +24 -32
  18. package/dist/bookings/bookings.contract.d.ts +9963 -9305
  19. package/dist/bookings/bookings.contract.d.ts.map +1 -1
  20. package/dist/bookings/bookings.contract.js +2 -16
  21. package/dist/call-history/call-history.contract.d.ts +1040 -828
  22. package/dist/call-history/call-history.contract.d.ts.map +1 -1
  23. package/dist/calls-feed/calls-feed.contract.d.ts +138 -98
  24. package/dist/calls-feed/calls-feed.contract.d.ts.map +1 -1
  25. package/dist/candidate-calling/candidate-calling.contract.d.ts +18372 -0
  26. package/dist/candidate-calling/candidate-calling.contract.d.ts.map +1 -0
  27. package/dist/candidate-calling/candidate-calling.contract.js +494 -0
  28. package/dist/candidate-calling/candidate-calling.contract.spec.d.ts +2 -0
  29. package/dist/candidate-calling/candidate-calling.contract.spec.d.ts.map +1 -0
  30. package/dist/candidate-calling/candidate-calling.contract.spec.js +357 -0
  31. package/dist/candidate-calling/candidate-dialpad-call.schemas.d.ts +10 -0
  32. package/dist/candidate-calling/candidate-dialpad-call.schemas.d.ts.map +1 -0
  33. package/dist/candidate-calling/candidate-dialpad-call.schemas.js +33 -0
  34. package/dist/client-contacts/client-contacts.contract.d.ts +622 -622
  35. package/dist/clients/clients.contract.d.ts +289 -289
  36. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +3108 -3004
  37. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts.map +1 -1
  38. package/dist/collaborations/collaborations.contract.d.ts +2604 -2507
  39. package/dist/collaborations/collaborations.contract.d.ts.map +1 -1
  40. package/dist/common/callback-slots.d.ts +4 -0
  41. package/dist/common/callback-slots.d.ts.map +1 -0
  42. package/dist/common/callback-slots.js +20 -0
  43. package/dist/common/common-schemas.d.ts +10 -4
  44. package/dist/common/common-schemas.d.ts.map +1 -1
  45. package/dist/common/common-schemas.js +6 -0
  46. package/dist/companies/companies.contract.d.ts +120 -120
  47. package/dist/crews/crews.contract.d.ts +278 -278
  48. package/dist/cron-executions/cron-executions.contract.d.ts +245 -245
  49. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -1
  50. package/dist/cron-executions/cron-executions.contract.js +1 -0
  51. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts +3830 -2354
  52. package/dist/curated-worker-leads/candidate-coordination.contract.d.ts.map +1 -1
  53. package/dist/curated-worker-leads/candidate-coordination.contract.js +73 -7
  54. package/dist/curated-worker-leads/candidate-edit-session.contract.d.ts +94 -94
  55. package/dist/curated-worker-leads/contact-history.spec.js +141 -0
  56. package/dist/curated-worker-leads/job-candidate-cards.spec.js +19 -0
  57. package/dist/curated-worker-leads/job-candidates.spec.js +179 -0
  58. package/dist/curated-worker-leads/jobs-tab.contract.d.ts +8185 -2106
  59. package/dist/curated-worker-leads/jobs-tab.contract.d.ts.map +1 -1
  60. package/dist/curated-worker-leads/jobs-tab.contract.js +126 -1
  61. package/dist/curated-worker-leads/owned-jobs-tab.contract.d.ts +110 -110
  62. package/dist/curated-workers/curated-workers.contract.d.ts +2033 -1951
  63. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -1
  64. package/dist/dashboards/dashboard-widgets.contact-history.spec.d.ts +2 -0
  65. package/dist/dashboards/dashboard-widgets.contact-history.spec.d.ts.map +1 -0
  66. package/dist/dashboards/dashboard-widgets.contact-history.spec.js +160 -0
  67. package/dist/dashboards/dashboard-widgets.contract.d.ts +1027 -284
  68. package/dist/dashboards/dashboard-widgets.contract.d.ts.map +1 -1
  69. package/dist/dashboards/dashboard-widgets.contract.js +46 -1
  70. package/dist/dashboards/dashboard.contract.d.ts +8 -8
  71. package/dist/document-intake/document-intake.contract.d.ts +1145 -1145
  72. package/dist/export-jobs/export-jobs.contract.d.ts +755 -755
  73. package/dist/exports-events/exports-events.schemas.d.ts +6 -6
  74. package/dist/index.d.ts +5 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +5 -0
  77. package/dist/jobs/jobs.contract.d.ts +8507 -6044
  78. package/dist/jobs/jobs.contract.d.ts.map +1 -1
  79. package/dist/jobs/jobs.contract.js +95 -2
  80. package/dist/jobs/jobs.contract.spec.js +231 -1
  81. package/dist/kpi-impersonation/kpi-impersonation.contract.d.ts +102 -102
  82. package/dist/lead-assignments/lead-assignments.contract.d.ts +2985 -1139
  83. package/dist/lead-assignments/lead-assignments.contract.d.ts.map +1 -1
  84. package/dist/lead-assignments/lead-assignments.contract.js +102 -2
  85. package/dist/lead-assignments/lead-assignments.contract.spec.d.ts +2 -0
  86. package/dist/lead-assignments/lead-assignments.contract.spec.d.ts.map +1 -0
  87. package/dist/lead-assignments/lead-assignments.contract.spec.js +51 -0
  88. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +341 -317
  89. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts.map +1 -1
  90. package/dist/leads/leads.contract.d.ts +282 -282
  91. package/dist/locations/location-enrichment.contract.spec.d.ts +2 -0
  92. package/dist/locations/location-enrichment.contract.spec.d.ts.map +1 -0
  93. package/dist/locations/location-enrichment.contract.spec.js +50 -0
  94. package/dist/locations/locations.contract.d.ts +132 -98
  95. package/dist/locations/locations.contract.d.ts.map +1 -1
  96. package/dist/locations/locations.contract.js +10 -0
  97. package/dist/notifications/notifications.contract.d.ts +579 -107
  98. package/dist/notifications/notifications.contract.d.ts.map +1 -1
  99. package/dist/notifications/notifications.contract.js +36 -2
  100. package/dist/notifications/notifications.contract.spec.d.ts +2 -0
  101. package/dist/notifications/notifications.contract.spec.d.ts.map +1 -0
  102. package/dist/notifications/notifications.contract.spec.js +39 -0
  103. package/dist/outreach/__tests__/outreach-claim.test.js +33 -0
  104. package/dist/outreach/__tests__/outreach-routes.test.js +8 -0
  105. package/dist/outreach/outreach.contract.d.ts +583 -162
  106. package/dist/outreach/outreach.contract.d.ts.map +1 -1
  107. package/dist/outreach/outreach.contract.js +50 -1
  108. package/dist/outreach/relay-hub-outreach.contract.d.ts +299 -121
  109. package/dist/outreach/relay-hub-outreach.contract.d.ts.map +1 -1
  110. package/dist/outreach/relay-hub-outreach.contract.js +10 -0
  111. package/dist/outreach/relay-hub-outreach.contract.spec.js +26 -0
  112. package/dist/outreach/relay-hub-outreach.schemas.d.ts +94 -0
  113. package/dist/outreach/relay-hub-outreach.schemas.d.ts.map +1 -0
  114. package/dist/outreach/relay-hub-outreach.schemas.js +15 -0
  115. package/dist/own-research/check-phone-response.spec.d.ts +2 -0
  116. package/dist/own-research/check-phone-response.spec.d.ts.map +1 -0
  117. package/dist/own-research/check-phone-response.spec.js +54 -0
  118. package/dist/own-research/own-research.contract.d.ts +971 -820
  119. package/dist/own-research/own-research.contract.d.ts.map +1 -1
  120. package/dist/own-research/own-research.contract.js +6 -1
  121. package/dist/proofs/proofs.contract.d.ts +356 -356
  122. package/dist/proofs/proofs.dtos.d.ts +148 -148
  123. package/dist/realtime/job-call-priority-updated.d.ts +18 -0
  124. package/dist/realtime/job-call-priority-updated.d.ts.map +1 -0
  125. package/dist/realtime/job-call-priority-updated.js +17 -0
  126. package/dist/shared/summary-schemas.d.ts +36 -27
  127. package/dist/shared/summary-schemas.d.ts.map +1 -1
  128. package/dist/shared/summary-schemas.js +7 -0
  129. package/dist/sheets-sync/sheets-sync.contract.d.ts +683 -683
  130. package/dist/user-access-grants/user-access-grants.contract.d.ts +216 -216
  131. package/dist/users/users.contract.d.ts +365 -336
  132. package/dist/users/users.contract.d.ts.map +1 -1
  133. package/dist/users/users.contract.js +9 -1
  134. package/dist/users/users.contract.spec.js +39 -0
  135. package/dist/worker-source-identity-conflicts/worker-source-identity-conflicts.contract.d.ts +150 -150
  136. package/dist/workers/workers.contract.d.ts +4505 -4261
  137. package/dist/workers/workers.contract.d.ts.map +1 -1
  138. package/dist/workers/workers.contract.js +12 -0
  139. package/package.json +1 -1
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { z } from 'zod';
9
9
  import { createPaginatedResponseSchema } from '../common/pagination.schema';
10
+ import { CandidateContactHistoryOutcomeSchema } from '../curated-worker-leads/candidate-coordination.contract';
10
11
  /**
11
12
  * Common query parameters for dashboard widgets
12
13
  */
@@ -108,11 +109,11 @@ export declare const FaPipelineWidgetSchema: z.ZodObject<{
108
109
  recentCount: z.ZodNumber;
109
110
  }, "strip", z.ZodTypeAny, {
110
111
  total: number;
111
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
112
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
112
113
  recentCount: number;
113
114
  }, {
114
115
  total: number;
115
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
116
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
116
117
  recentCount: number;
117
118
  }>;
118
119
  summary: z.ZodObject<{
@@ -132,7 +133,7 @@ export declare const FaPipelineWidgetSchema: z.ZodObject<{
132
133
  };
133
134
  collaborations: {
134
135
  total: number;
135
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
136
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
136
137
  recentCount: number;
137
138
  };
138
139
  }, {
@@ -142,7 +143,7 @@ export declare const FaPipelineWidgetSchema: z.ZodObject<{
142
143
  };
143
144
  collaborations: {
144
145
  total: number;
145
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
146
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
146
147
  recentCount: number;
147
148
  };
148
149
  }>;
@@ -252,10 +253,10 @@ export declare const AllAgentsCallHistoryQuerySchema: z.ZodObject<{
252
253
  field: z.ZodEnum<["agentName", "activesFaActive", "activesFaOthers", "activesSaActive", "activesSaOthers", "bookingsFaAttempts", "bookingsFaFailed", "bookingsFaInProgress", "bookingsFaCompleted", "bookingsFaCancelled", "bookingsSaAttempts", "bookingsSaFailed", "bookingsSaInProgress", "bookingsSaCompleted", "bookingsSaCancelled", "callsOnDate", "efficientCalls", "conversionsOnDate", "dailyConversionRate", "performanceScore", "ownResearchLeadsAdded", "jobsCreatedOnDate", "jobsTotalOpenPositions", "jobsFilledPositions", "workersAddedToday", "offersSent", "offersBooked"]>;
253
254
  order: z.ZodEnum<["ASC", "DESC"]>;
254
255
  }, "strip", z.ZodTypeAny, {
255
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
256
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
256
257
  order: "ASC" | "DESC";
257
258
  }, {
258
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
259
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
259
260
  order: "ASC" | "DESC";
260
261
  }>, "many">>>>;
261
262
  search: z.ZodOptional<z.ZodString>;
@@ -268,7 +269,7 @@ export declare const AllAgentsCallHistoryQuerySchema: z.ZodObject<{
268
269
  page: number;
269
270
  limit: number;
270
271
  sort?: {
271
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
272
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
272
273
  order: "ASC" | "DESC";
273
274
  }[] | null | undefined;
274
275
  startDate?: string | undefined;
@@ -282,7 +283,7 @@ export declare const AllAgentsCallHistoryQuerySchema: z.ZodObject<{
282
283
  }, {
283
284
  status?: "ACTIVE" | "INACTIVE" | undefined;
284
285
  sort?: {
285
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
286
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
286
287
  order: "ASC" | "DESC";
287
288
  }[] | null | undefined;
288
289
  page?: number | undefined;
@@ -936,16 +937,9 @@ export declare const AdminFaAggregateSchema: z.ZodObject<{
936
937
  }>;
937
938
  agentCount: z.ZodNumber;
938
939
  }, "strip", z.ZodTypeAny, {
939
- jobs: {
940
- filledPositions: number;
941
- createdToday: number;
942
- totalOpenPositions: number;
943
- availableJobs: number;
944
- transitionCounts: Record<string, number>;
945
- fillRate: number;
946
- positionsAdjusted: number;
947
- positionsNetChange: number;
948
- overbookedCount: number;
940
+ actives: {
941
+ total: number;
942
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
949
943
  };
950
944
  bookings: {
951
945
  forToday: {
@@ -977,9 +971,16 @@ export declare const AdminFaAggregateSchema: z.ZodObject<{
977
971
  pendingConfirmation: number;
978
972
  upcomingStarts: number;
979
973
  };
980
- actives: {
981
- total: number;
982
- byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
974
+ jobs: {
975
+ filledPositions: number;
976
+ createdToday: number;
977
+ totalOpenPositions: number;
978
+ availableJobs: number;
979
+ transitionCounts: Record<string, number>;
980
+ fillRate: number;
981
+ positionsAdjusted: number;
982
+ positionsNetChange: number;
983
+ overbookedCount: number;
983
984
  };
984
985
  callMetrics: {
985
986
  conversionRate: number;
@@ -999,16 +1000,9 @@ export declare const AdminFaAggregateSchema: z.ZodObject<{
999
1000
  };
1000
1001
  agentCount: number;
1001
1002
  }, {
1002
- jobs: {
1003
- filledPositions: number;
1004
- createdToday: number;
1005
- totalOpenPositions: number;
1006
- availableJobs: number;
1007
- transitionCounts: Record<string, number>;
1008
- fillRate: number;
1009
- positionsAdjusted: number;
1010
- positionsNetChange: number;
1011
- overbookedCount: number;
1003
+ actives: {
1004
+ total: number;
1005
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1012
1006
  };
1013
1007
  bookings: {
1014
1008
  forToday: {
@@ -1040,9 +1034,16 @@ export declare const AdminFaAggregateSchema: z.ZodObject<{
1040
1034
  pendingConfirmation: number;
1041
1035
  upcomingStarts: number;
1042
1036
  };
1043
- actives: {
1044
- total: number;
1045
- byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1037
+ jobs: {
1038
+ filledPositions: number;
1039
+ createdToday: number;
1040
+ totalOpenPositions: number;
1041
+ availableJobs: number;
1042
+ transitionCounts: Record<string, number>;
1043
+ fillRate: number;
1044
+ positionsAdjusted: number;
1045
+ positionsNetChange: number;
1046
+ overbookedCount: number;
1046
1047
  };
1047
1048
  callMetrics: {
1048
1049
  conversionRate: number;
@@ -1233,9 +1234,9 @@ export declare const AdminSaAggregateSchema: z.ZodObject<{
1233
1234
  }>;
1234
1235
  agentCount: z.ZodNumber;
1235
1236
  }, "strip", z.ZodTypeAny, {
1236
- workers: {
1237
+ actives: {
1237
1238
  total: number;
1238
- addedToday: number;
1239
+ byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1239
1240
  };
1240
1241
  bookings: {
1241
1242
  forToday: {
@@ -1267,15 +1268,15 @@ export declare const AdminSaAggregateSchema: z.ZodObject<{
1267
1268
  pendingConfirmation: number;
1268
1269
  upcomingStarts: number;
1269
1270
  };
1270
- actives: {
1271
+ workers: {
1271
1272
  total: number;
1272
- byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1273
+ addedToday: number;
1273
1274
  };
1274
1275
  agentCount: number;
1275
1276
  }, {
1276
- workers: {
1277
+ actives: {
1277
1278
  total: number;
1278
- addedToday: number;
1279
+ byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1279
1280
  };
1280
1281
  bookings: {
1281
1282
  forToday: {
@@ -1307,65 +1308,404 @@ export declare const AdminSaAggregateSchema: z.ZodObject<{
1307
1308
  pendingConfirmation: number;
1308
1309
  upcomingStarts: number;
1309
1310
  };
1310
- actives: {
1311
+ workers: {
1311
1312
  total: number;
1312
- byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1313
+ addedToday: number;
1313
1314
  };
1314
1315
  agentCount: number;
1315
1316
  }>;
1316
- /**
1317
- * Actives trend data for charts
1318
- */
1319
- export declare const ActivesTrendSchema: z.ZodObject<{
1320
- data: z.ZodArray<z.ZodObject<{
1321
- date: z.ZodString;
1317
+ /** Shared office-wide metrics that do not belong to either agent role tab. */
1318
+ export declare const AdminSharedAggregateSchema: z.ZodObject<{
1319
+ actives: z.ZodObject<{
1320
+ /** Flat structure (unlike per-agent FaActivesWidgetSchema which nests under 'today') */
1322
1321
  total: z.ZodNumber;
1322
+ /**
1323
+ * Actives grouped by unified status, counting every active in scope (FA OR SA
1324
+ * in office). Replaces the former separate byStatusFa/byStatusSa breakdowns now
1325
+ * that the FA/SA status fields are unified into a single `status`.
1326
+ */
1323
1327
  byStatus: z.ZodRecord<z.ZodEnum<["PENDING", "ACTIVE", "VACATION", "LEFT_THE_SITE", "MEDICAL_LEAVE", "DAY_OFF", "INJURY", "OFF_SCHEDULE"]>, z.ZodNumber>;
1324
1328
  }, "strip", z.ZodTypeAny, {
1325
- date: string;
1326
1329
  total: number;
1327
1330
  byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1328
1331
  }, {
1329
- date: string;
1330
1332
  total: number;
1331
1333
  byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1332
- }>, "many">;
1333
- summary: z.ZodObject<{
1334
- averageDaily: z.ZodNumber;
1335
- peakDay: z.ZodNullable<z.ZodString>;
1336
- peakValue: z.ZodNumber;
1334
+ }>;
1335
+ bookings: z.ZodObject<{
1336
+ forToday: z.ZodObject<{
1337
+ byStatusFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1338
+ byStatusSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1339
+ byStatusFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1340
+ byCategoryFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1341
+ byCategorySa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1342
+ byCategoryFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1343
+ total: z.ZodNumber;
1344
+ byStatus: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>;
1345
+ byCategory: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>;
1346
+ /**
1347
+ * Bookings that start on this day AND were created on this day (booked and
1348
+ * starting same-day). A subset of the start-side count, so the share of
1349
+ * today's starts = sameDay / starting. Only populated for the `forToday`
1350
+ * bucket (meaningless for `createdToday`).
1351
+ */
1352
+ sameDay: z.ZodOptional<z.ZodNumber>;
1353
+ }, "strip", z.ZodTypeAny, {
1354
+ total: number;
1355
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1356
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1357
+ byStatusFa?: unknown;
1358
+ sameDay?: number | undefined;
1359
+ byStatusSa?: unknown;
1360
+ byStatusFaSa?: unknown;
1361
+ byCategoryFa?: unknown;
1362
+ byCategorySa?: unknown;
1363
+ byCategoryFaSa?: unknown;
1364
+ }, {
1365
+ total: number;
1366
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1367
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1368
+ byStatusFa?: unknown;
1369
+ sameDay?: number | undefined;
1370
+ byStatusSa?: unknown;
1371
+ byStatusFaSa?: unknown;
1372
+ byCategoryFa?: unknown;
1373
+ byCategorySa?: unknown;
1374
+ byCategoryFaSa?: unknown;
1375
+ }>;
1376
+ createdToday: z.ZodObject<{
1377
+ byStatusFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1378
+ byStatusSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1379
+ byStatusFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
1380
+ byCategoryFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1381
+ byCategorySa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1382
+ byCategoryFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
1383
+ total: z.ZodNumber;
1384
+ byStatus: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>;
1385
+ byCategory: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>;
1386
+ /**
1387
+ * Bookings that start on this day AND were created on this day (booked and
1388
+ * starting same-day). A subset of the start-side count, so the share of
1389
+ * today's starts = sameDay / starting. Only populated for the `forToday`
1390
+ * bucket (meaningless for `createdToday`).
1391
+ */
1392
+ sameDay: z.ZodOptional<z.ZodNumber>;
1393
+ }, "strip", z.ZodTypeAny, {
1394
+ total: number;
1395
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1396
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1397
+ byStatusFa?: unknown;
1398
+ sameDay?: number | undefined;
1399
+ byStatusSa?: unknown;
1400
+ byStatusFaSa?: unknown;
1401
+ byCategoryFa?: unknown;
1402
+ byCategorySa?: unknown;
1403
+ byCategoryFaSa?: unknown;
1404
+ }, {
1405
+ total: number;
1406
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1407
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1408
+ byStatusFa?: unknown;
1409
+ sameDay?: number | undefined;
1410
+ byStatusSa?: unknown;
1411
+ byStatusFaSa?: unknown;
1412
+ byCategoryFa?: unknown;
1413
+ byCategorySa?: unknown;
1414
+ byCategoryFaSa?: unknown;
1415
+ }>;
1416
+ ongoingBookings: z.ZodNumber;
1417
+ startingToday: z.ZodNumber;
1418
+ pendingConfirmation: z.ZodNumber;
1419
+ upcomingStarts: z.ZodNumber;
1337
1420
  }, "strip", z.ZodTypeAny, {
1338
- averageDaily: number;
1339
- peakDay: string | null;
1340
- peakValue: number;
1421
+ forToday: {
1422
+ total: number;
1423
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1424
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1425
+ byStatusFa?: unknown;
1426
+ sameDay?: number | undefined;
1427
+ byStatusSa?: unknown;
1428
+ byStatusFaSa?: unknown;
1429
+ byCategoryFa?: unknown;
1430
+ byCategorySa?: unknown;
1431
+ byCategoryFaSa?: unknown;
1432
+ };
1433
+ createdToday: {
1434
+ total: number;
1435
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1436
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1437
+ byStatusFa?: unknown;
1438
+ sameDay?: number | undefined;
1439
+ byStatusSa?: unknown;
1440
+ byStatusFaSa?: unknown;
1441
+ byCategoryFa?: unknown;
1442
+ byCategorySa?: unknown;
1443
+ byCategoryFaSa?: unknown;
1444
+ };
1445
+ ongoingBookings: number;
1446
+ startingToday: number;
1447
+ pendingConfirmation: number;
1448
+ upcomingStarts: number;
1341
1449
  }, {
1342
- averageDaily: number;
1343
- peakDay: string | null;
1344
- peakValue: number;
1450
+ forToday: {
1451
+ total: number;
1452
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1453
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1454
+ byStatusFa?: unknown;
1455
+ sameDay?: number | undefined;
1456
+ byStatusSa?: unknown;
1457
+ byStatusFaSa?: unknown;
1458
+ byCategoryFa?: unknown;
1459
+ byCategorySa?: unknown;
1460
+ byCategoryFaSa?: unknown;
1461
+ };
1462
+ createdToday: {
1463
+ total: number;
1464
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1465
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1466
+ byStatusFa?: unknown;
1467
+ sameDay?: number | undefined;
1468
+ byStatusSa?: unknown;
1469
+ byStatusFaSa?: unknown;
1470
+ byCategoryFa?: unknown;
1471
+ byCategorySa?: unknown;
1472
+ byCategoryFaSa?: unknown;
1473
+ };
1474
+ ongoingBookings: number;
1475
+ startingToday: number;
1476
+ pendingConfirmation: number;
1477
+ upcomingStarts: number;
1345
1478
  }>;
1346
1479
  }, "strip", z.ZodTypeAny, {
1347
- summary: {
1348
- averageDaily: number;
1349
- peakDay: string | null;
1350
- peakValue: number;
1351
- };
1352
- data: {
1353
- date: string;
1480
+ actives: {
1354
1481
  total: number;
1355
1482
  byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1356
- }[];
1357
- }, {
1358
- summary: {
1359
- averageDaily: number;
1360
- peakDay: string | null;
1361
- peakValue: number;
1362
1483
  };
1363
- data: {
1364
- date: string;
1365
- total: number;
1366
- byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1367
- }[];
1368
- }>;
1484
+ bookings: {
1485
+ forToday: {
1486
+ total: number;
1487
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1488
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1489
+ byStatusFa?: unknown;
1490
+ sameDay?: number | undefined;
1491
+ byStatusSa?: unknown;
1492
+ byStatusFaSa?: unknown;
1493
+ byCategoryFa?: unknown;
1494
+ byCategorySa?: unknown;
1495
+ byCategoryFaSa?: unknown;
1496
+ };
1497
+ createdToday: {
1498
+ total: number;
1499
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1500
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1501
+ byStatusFa?: unknown;
1502
+ sameDay?: number | undefined;
1503
+ byStatusSa?: unknown;
1504
+ byStatusFaSa?: unknown;
1505
+ byCategoryFa?: unknown;
1506
+ byCategorySa?: unknown;
1507
+ byCategoryFaSa?: unknown;
1508
+ };
1509
+ ongoingBookings: number;
1510
+ startingToday: number;
1511
+ pendingConfirmation: number;
1512
+ upcomingStarts: number;
1513
+ };
1514
+ }, {
1515
+ actives: {
1516
+ total: number;
1517
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1518
+ };
1519
+ bookings: {
1520
+ forToday: {
1521
+ total: number;
1522
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1523
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1524
+ byStatusFa?: unknown;
1525
+ sameDay?: number | undefined;
1526
+ byStatusSa?: unknown;
1527
+ byStatusFaSa?: unknown;
1528
+ byCategoryFa?: unknown;
1529
+ byCategorySa?: unknown;
1530
+ byCategoryFaSa?: unknown;
1531
+ };
1532
+ createdToday: {
1533
+ total: number;
1534
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
1535
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
1536
+ byStatusFa?: unknown;
1537
+ sameDay?: number | undefined;
1538
+ byStatusSa?: unknown;
1539
+ byStatusFaSa?: unknown;
1540
+ byCategoryFa?: unknown;
1541
+ byCategorySa?: unknown;
1542
+ byCategoryFaSa?: unknown;
1543
+ };
1544
+ ongoingBookings: number;
1545
+ startingToday: number;
1546
+ pendingConfirmation: number;
1547
+ upcomingStarts: number;
1548
+ };
1549
+ }>;
1550
+ /** Normalized candidate-contact history metrics for Second Agents. */
1551
+ export declare const AdminContactHistoryMetricsSchema: z.ZodObject<{
1552
+ phone: z.ZodObject<{
1553
+ total: z.ZodNumber;
1554
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
1555
+ }, "strip", z.ZodTypeAny, {
1556
+ total: number;
1557
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1558
+ }, {
1559
+ total: number;
1560
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1561
+ }>;
1562
+ whatsapp: z.ZodObject<{
1563
+ total: z.ZodNumber;
1564
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
1565
+ }, "strip", z.ZodTypeAny, {
1566
+ total: number;
1567
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1568
+ }, {
1569
+ total: number;
1570
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1571
+ }>;
1572
+ data: z.ZodArray<z.ZodObject<{
1573
+ date: z.ZodString;
1574
+ phone: z.ZodObject<{
1575
+ total: z.ZodNumber;
1576
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
1577
+ }, "strip", z.ZodTypeAny, {
1578
+ total: number;
1579
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1580
+ }, {
1581
+ total: number;
1582
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1583
+ }>;
1584
+ whatsapp: z.ZodObject<{
1585
+ total: z.ZodNumber;
1586
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
1587
+ }, "strip", z.ZodTypeAny, {
1588
+ total: number;
1589
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1590
+ }, {
1591
+ total: number;
1592
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1593
+ }>;
1594
+ }, "strip", z.ZodTypeAny, {
1595
+ phone: {
1596
+ total: number;
1597
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1598
+ };
1599
+ date: string;
1600
+ whatsapp: {
1601
+ total: number;
1602
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1603
+ };
1604
+ }, {
1605
+ phone: {
1606
+ total: number;
1607
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1608
+ };
1609
+ date: string;
1610
+ whatsapp: {
1611
+ total: number;
1612
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1613
+ };
1614
+ }>, "many">;
1615
+ }, "strip", z.ZodTypeAny, {
1616
+ phone: {
1617
+ total: number;
1618
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1619
+ };
1620
+ data: {
1621
+ phone: {
1622
+ total: number;
1623
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1624
+ };
1625
+ date: string;
1626
+ whatsapp: {
1627
+ total: number;
1628
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1629
+ };
1630
+ }[];
1631
+ whatsapp: {
1632
+ total: number;
1633
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1634
+ };
1635
+ }, {
1636
+ phone: {
1637
+ total: number;
1638
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1639
+ };
1640
+ data: {
1641
+ phone: {
1642
+ total: number;
1643
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1644
+ };
1645
+ date: string;
1646
+ whatsapp: {
1647
+ total: number;
1648
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1649
+ };
1650
+ }[];
1651
+ whatsapp: {
1652
+ total: number;
1653
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
1654
+ };
1655
+ }>;
1656
+ /**
1657
+ * Actives trend data for charts
1658
+ */
1659
+ export declare const ActivesTrendSchema: z.ZodObject<{
1660
+ data: z.ZodArray<z.ZodObject<{
1661
+ date: z.ZodString;
1662
+ total: z.ZodNumber;
1663
+ byStatus: z.ZodRecord<z.ZodEnum<["PENDING", "ACTIVE", "VACATION", "LEFT_THE_SITE", "MEDICAL_LEAVE", "DAY_OFF", "INJURY", "OFF_SCHEDULE"]>, z.ZodNumber>;
1664
+ }, "strip", z.ZodTypeAny, {
1665
+ date: string;
1666
+ total: number;
1667
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1668
+ }, {
1669
+ date: string;
1670
+ total: number;
1671
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1672
+ }>, "many">;
1673
+ summary: z.ZodObject<{
1674
+ averageDaily: z.ZodNumber;
1675
+ peakDay: z.ZodNullable<z.ZodString>;
1676
+ peakValue: z.ZodNumber;
1677
+ }, "strip", z.ZodTypeAny, {
1678
+ averageDaily: number;
1679
+ peakDay: string | null;
1680
+ peakValue: number;
1681
+ }, {
1682
+ averageDaily: number;
1683
+ peakDay: string | null;
1684
+ peakValue: number;
1685
+ }>;
1686
+ }, "strip", z.ZodTypeAny, {
1687
+ summary: {
1688
+ averageDaily: number;
1689
+ peakDay: string | null;
1690
+ peakValue: number;
1691
+ };
1692
+ data: {
1693
+ date: string;
1694
+ total: number;
1695
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1696
+ }[];
1697
+ }, {
1698
+ summary: {
1699
+ averageDaily: number;
1700
+ peakDay: string | null;
1701
+ peakValue: number;
1702
+ };
1703
+ data: {
1704
+ date: string;
1705
+ total: number;
1706
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
1707
+ }[];
1708
+ }>;
1369
1709
  /**
1370
1710
  * Bookings trend data for charts.
1371
1711
  *
@@ -1631,11 +1971,11 @@ export declare const CollaborationsTrendSchema: z.ZodObject<{
1631
1971
  }, "strip", z.ZodTypeAny, {
1632
1972
  date: string;
1633
1973
  created: number;
1634
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1974
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1635
1975
  }, {
1636
1976
  date: string;
1637
1977
  created: number;
1638
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1978
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1639
1979
  }>, "many">;
1640
1980
  summary: z.ZodObject<{
1641
1981
  totalCreated: z.ZodNumber;
@@ -1655,7 +1995,7 @@ export declare const CollaborationsTrendSchema: z.ZodObject<{
1655
1995
  data: {
1656
1996
  date: string;
1657
1997
  created: number;
1658
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1998
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1659
1999
  }[];
1660
2000
  }, {
1661
2001
  summary: {
@@ -1665,7 +2005,7 @@ export declare const CollaborationsTrendSchema: z.ZodObject<{
1665
2005
  data: {
1666
2006
  date: string;
1667
2007
  created: number;
1668
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
2008
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1669
2009
  }[];
1670
2010
  }>;
1671
2011
  /**
@@ -1773,21 +2113,21 @@ export declare const ProofsTrendSchema: z.ZodObject<{
1773
2113
  averageDaily: z.ZodNumber;
1774
2114
  }, "strip", z.ZodTypeAny, {
1775
2115
  total: number;
1776
- averageDaily: number;
1777
2116
  totalPost: number;
1778
2117
  totalBooking: number;
2118
+ averageDaily: number;
1779
2119
  }, {
1780
2120
  total: number;
1781
- averageDaily: number;
1782
2121
  totalPost: number;
1783
2122
  totalBooking: number;
2123
+ averageDaily: number;
1784
2124
  }>;
1785
2125
  }, "strip", z.ZodTypeAny, {
1786
2126
  summary: {
1787
2127
  total: number;
1788
- averageDaily: number;
1789
2128
  totalPost: number;
1790
2129
  totalBooking: number;
2130
+ averageDaily: number;
1791
2131
  };
1792
2132
  data: {
1793
2133
  date: string;
@@ -1804,9 +2144,9 @@ export declare const ProofsTrendSchema: z.ZodObject<{
1804
2144
  }, {
1805
2145
  summary: {
1806
2146
  total: number;
1807
- averageDaily: number;
1808
2147
  totalPost: number;
1809
2148
  totalBooking: number;
2149
+ averageDaily: number;
1810
2150
  };
1811
2151
  data: {
1812
2152
  date: string;
@@ -1836,11 +2176,11 @@ export declare const LeadActivityTrendSchema: z.ZodObject<{
1836
2176
  }, "strip", z.ZodTypeAny, {
1837
2177
  date: string;
1838
2178
  total: number;
1839
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
2179
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
1840
2180
  }, {
1841
2181
  date: string;
1842
2182
  total: number;
1843
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
2183
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
1844
2184
  }>, "many">;
1845
2185
  summary: z.ZodObject<{
1846
2186
  averageDaily: z.ZodNumber;
@@ -1864,7 +2204,7 @@ export declare const LeadActivityTrendSchema: z.ZodObject<{
1864
2204
  data: {
1865
2205
  date: string;
1866
2206
  total: number;
1867
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
2207
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
1868
2208
  }[];
1869
2209
  }, {
1870
2210
  summary: {
@@ -1875,7 +2215,7 @@ export declare const LeadActivityTrendSchema: z.ZodObject<{
1875
2215
  data: {
1876
2216
  date: string;
1877
2217
  total: number;
1878
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
2218
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
1879
2219
  }[];
1880
2220
  }>;
1881
2221
  export type LeadActivityTrend = z.infer<typeof LeadActivityTrendSchema>;
@@ -1903,11 +2243,11 @@ export declare const dashboardWidgetsContract: {
1903
2243
  recentCount: z.ZodNumber;
1904
2244
  }, "strip", z.ZodTypeAny, {
1905
2245
  total: number;
1906
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
2246
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1907
2247
  recentCount: number;
1908
2248
  }, {
1909
2249
  total: number;
1910
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
2250
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1911
2251
  recentCount: number;
1912
2252
  }>;
1913
2253
  summary: z.ZodObject<{
@@ -1927,7 +2267,7 @@ export declare const dashboardWidgetsContract: {
1927
2267
  };
1928
2268
  collaborations: {
1929
2269
  total: number;
1930
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
2270
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1931
2271
  recentCount: number;
1932
2272
  };
1933
2273
  }, {
@@ -1937,7 +2277,7 @@ export declare const dashboardWidgetsContract: {
1937
2277
  };
1938
2278
  collaborations: {
1939
2279
  total: number;
1940
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
2280
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
1941
2281
  recentCount: number;
1942
2282
  };
1943
2283
  }>;
@@ -2460,21 +2800,21 @@ export declare const dashboardWidgetsContract: {
2460
2800
  averageDaily: z.ZodNumber;
2461
2801
  }, "strip", z.ZodTypeAny, {
2462
2802
  total: number;
2463
- averageDaily: number;
2464
2803
  totalPost: number;
2465
2804
  totalBooking: number;
2805
+ averageDaily: number;
2466
2806
  }, {
2467
2807
  total: number;
2468
- averageDaily: number;
2469
2808
  totalPost: number;
2470
2809
  totalBooking: number;
2810
+ averageDaily: number;
2471
2811
  }>;
2472
2812
  }, "strip", z.ZodTypeAny, {
2473
2813
  summary: {
2474
2814
  total: number;
2475
- averageDaily: number;
2476
2815
  totalPost: number;
2477
2816
  totalBooking: number;
2817
+ averageDaily: number;
2478
2818
  };
2479
2819
  data: {
2480
2820
  date: string;
@@ -2491,9 +2831,9 @@ export declare const dashboardWidgetsContract: {
2491
2831
  }, {
2492
2832
  summary: {
2493
2833
  total: number;
2494
- averageDaily: number;
2495
2834
  totalPost: number;
2496
2835
  totalBooking: number;
2836
+ averageDaily: number;
2497
2837
  };
2498
2838
  data: {
2499
2839
  date: string;
@@ -2645,21 +2985,21 @@ export declare const dashboardWidgetsContract: {
2645
2985
  averageDaily: z.ZodNumber;
2646
2986
  }, "strip", z.ZodTypeAny, {
2647
2987
  total: number;
2648
- averageDaily: number;
2649
2988
  totalPost: number;
2650
2989
  totalBooking: number;
2990
+ averageDaily: number;
2651
2991
  }, {
2652
2992
  total: number;
2653
- averageDaily: number;
2654
2993
  totalPost: number;
2655
2994
  totalBooking: number;
2995
+ averageDaily: number;
2656
2996
  }>;
2657
2997
  }, "strip", z.ZodTypeAny, {
2658
2998
  summary: {
2659
2999
  total: number;
2660
- averageDaily: number;
2661
3000
  totalPost: number;
2662
3001
  totalBooking: number;
3002
+ averageDaily: number;
2663
3003
  };
2664
3004
  data: {
2665
3005
  date: string;
@@ -2676,9 +3016,9 @@ export declare const dashboardWidgetsContract: {
2676
3016
  }, {
2677
3017
  summary: {
2678
3018
  total: number;
2679
- averageDaily: number;
2680
3019
  totalPost: number;
2681
3020
  totalBooking: number;
3021
+ averageDaily: number;
2682
3022
  };
2683
3023
  data: {
2684
3024
  date: string;
@@ -2957,10 +3297,10 @@ export declare const dashboardWidgetsContract: {
2957
3297
  field: z.ZodEnum<["agentName", "activesFaActive", "activesFaOthers", "activesSaActive", "activesSaOthers", "bookingsFaAttempts", "bookingsFaFailed", "bookingsFaInProgress", "bookingsFaCompleted", "bookingsFaCancelled", "bookingsSaAttempts", "bookingsSaFailed", "bookingsSaInProgress", "bookingsSaCompleted", "bookingsSaCancelled", "callsOnDate", "efficientCalls", "conversionsOnDate", "dailyConversionRate", "performanceScore", "ownResearchLeadsAdded", "jobsCreatedOnDate", "jobsTotalOpenPositions", "jobsFilledPositions", "workersAddedToday", "offersSent", "offersBooked"]>;
2958
3298
  order: z.ZodEnum<["ASC", "DESC"]>;
2959
3299
  }, "strip", z.ZodTypeAny, {
2960
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
3300
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
2961
3301
  order: "ASC" | "DESC";
2962
3302
  }, {
2963
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
3303
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
2964
3304
  order: "ASC" | "DESC";
2965
3305
  }>, "many">>>>;
2966
3306
  search: z.ZodOptional<z.ZodString>;
@@ -2973,7 +3313,7 @@ export declare const dashboardWidgetsContract: {
2973
3313
  page: number;
2974
3314
  limit: number;
2975
3315
  sort?: {
2976
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
3316
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
2977
3317
  order: "ASC" | "DESC";
2978
3318
  }[] | null | undefined;
2979
3319
  startDate?: string | undefined;
@@ -2987,7 +3327,7 @@ export declare const dashboardWidgetsContract: {
2987
3327
  }, {
2988
3328
  status?: "ACTIVE" | "INACTIVE" | undefined;
2989
3329
  sort?: {
2990
- field: "performanceScore" | "ownResearchLeadsAdded" | "agentName" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
3330
+ field: "agentName" | "performanceScore" | "ownResearchLeadsAdded" | "activesFaActive" | "activesFaOthers" | "activesSaActive" | "activesSaOthers" | "bookingsFaAttempts" | "bookingsFaFailed" | "bookingsFaInProgress" | "bookingsFaCompleted" | "bookingsFaCancelled" | "bookingsSaAttempts" | "bookingsSaFailed" | "bookingsSaInProgress" | "bookingsSaCompleted" | "bookingsSaCancelled" | "callsOnDate" | "efficientCalls" | "conversionsOnDate" | "dailyConversionRate" | "jobsCreatedOnDate" | "jobsTotalOpenPositions" | "jobsFilledPositions" | "workersAddedToday" | "offersSent" | "offersBooked";
2991
3331
  order: "ASC" | "DESC";
2992
3332
  }[] | null | undefined;
2993
3333
  page?: number | undefined;
@@ -3056,10 +3396,15 @@ export declare const dashboardWidgetsContract: {
3056
3396
  proofsBookingByType: z.ZodRecord<z.ZodEnum<["CONFIRMATION", "DISTANCE", "MORNING_STATUS"]>, z.ZodNumber>;
3057
3397
  offersSent: z.ZodNumber;
3058
3398
  offersBooked: z.ZodNumber;
3399
+ phoneContacts: z.ZodNumber;
3400
+ phoneContactsByOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
3401
+ whatsappContacts: z.ZodNumber;
3402
+ whatsappContactsByOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
3059
3403
  }, "strip", z.ZodTypeAny, {
3060
3404
  agentId: string;
3061
3405
  conversionRate: number;
3062
3406
  totalCalls: number;
3407
+ agentName: string;
3063
3408
  performanceScore: number;
3064
3409
  ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3065
3410
  assignmentCalls: number;
@@ -3069,7 +3414,6 @@ export declare const dashboardWidgetsContract: {
3069
3414
  ownResearchLeadsAdded: number;
3070
3415
  ownResearchLeadsExistingInSystem: number;
3071
3416
  ownResearchLeadsNew: number;
3072
- agentName: string;
3073
3417
  callsOnDate: number;
3074
3418
  efficientCalls: number;
3075
3419
  conversionsOnDate: number;
@@ -3080,7 +3424,6 @@ export declare const dashboardWidgetsContract: {
3080
3424
  workersAddedToday: number;
3081
3425
  offersSent: number;
3082
3426
  offersBooked: number;
3083
- averageRating: number;
3084
3427
  officeName: string | null;
3085
3428
  activesFaTotal: number;
3086
3429
  activesFaByStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
@@ -3092,12 +3435,17 @@ export declare const dashboardWidgetsContract: {
3092
3435
  bookingsSaTotal: number;
3093
3436
  bookingsSaByStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3094
3437
  bookingsSaByCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3438
+ averageRating: number;
3095
3439
  jobsTransitionCounts: Record<string, number>;
3096
3440
  jobsFillRate: number;
3097
3441
  jobsPositionsAdjusted: number;
3098
3442
  jobsOverbooked: number;
3099
3443
  proofsPostByType: Partial<Record<"WHATSAPP" | "OTHER" | "FACEBOOK" | "TELEGRAM" | "VIBER", number>>;
3100
3444
  proofsBookingByType: Partial<Record<"DISTANCE" | "CONFIRMATION" | "MORNING_STATUS", number>>;
3445
+ phoneContacts: number;
3446
+ phoneContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3447
+ whatsappContacts: number;
3448
+ whatsappContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3101
3449
  bookingsFaOngoing?: number | undefined;
3102
3450
  bookingsFaStartingToday?: number | undefined;
3103
3451
  bookingsFaPendingConfirmation?: number | undefined;
@@ -3110,6 +3458,7 @@ export declare const dashboardWidgetsContract: {
3110
3458
  agentId: string;
3111
3459
  conversionRate: number;
3112
3460
  totalCalls: number;
3461
+ agentName: string;
3113
3462
  performanceScore: number;
3114
3463
  ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3115
3464
  assignmentCalls: number;
@@ -3119,7 +3468,6 @@ export declare const dashboardWidgetsContract: {
3119
3468
  ownResearchLeadsAdded: number;
3120
3469
  ownResearchLeadsExistingInSystem: number;
3121
3470
  ownResearchLeadsNew: number;
3122
- agentName: string;
3123
3471
  callsOnDate: number;
3124
3472
  efficientCalls: number;
3125
3473
  conversionsOnDate: number;
@@ -3130,7 +3478,6 @@ export declare const dashboardWidgetsContract: {
3130
3478
  workersAddedToday: number;
3131
3479
  offersSent: number;
3132
3480
  offersBooked: number;
3133
- averageRating: number;
3134
3481
  officeName: string | null;
3135
3482
  activesFaTotal: number;
3136
3483
  activesFaByStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
@@ -3142,12 +3489,17 @@ export declare const dashboardWidgetsContract: {
3142
3489
  bookingsSaTotal: number;
3143
3490
  bookingsSaByStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3144
3491
  bookingsSaByCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3492
+ averageRating: number;
3145
3493
  jobsTransitionCounts: Record<string, number>;
3146
3494
  jobsFillRate: number;
3147
3495
  jobsPositionsAdjusted: number;
3148
3496
  jobsOverbooked: number;
3149
3497
  proofsPostByType: Partial<Record<"WHATSAPP" | "OTHER" | "FACEBOOK" | "TELEGRAM" | "VIBER", number>>;
3150
3498
  proofsBookingByType: Partial<Record<"DISTANCE" | "CONFIRMATION" | "MORNING_STATUS", number>>;
3499
+ phoneContacts: number;
3500
+ phoneContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3501
+ whatsappContacts: number;
3502
+ whatsappContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3151
3503
  bookingsFaOngoing?: number | undefined;
3152
3504
  bookingsFaStartingToday?: number | undefined;
3153
3505
  bookingsFaPendingConfirmation?: number | undefined;
@@ -3168,6 +3520,7 @@ export declare const dashboardWidgetsContract: {
3168
3520
  agentId: string;
3169
3521
  conversionRate: number;
3170
3522
  totalCalls: number;
3523
+ agentName: string;
3171
3524
  performanceScore: number;
3172
3525
  ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3173
3526
  assignmentCalls: number;
@@ -3177,7 +3530,6 @@ export declare const dashboardWidgetsContract: {
3177
3530
  ownResearchLeadsAdded: number;
3178
3531
  ownResearchLeadsExistingInSystem: number;
3179
3532
  ownResearchLeadsNew: number;
3180
- agentName: string;
3181
3533
  callsOnDate: number;
3182
3534
  efficientCalls: number;
3183
3535
  conversionsOnDate: number;
@@ -3188,7 +3540,6 @@ export declare const dashboardWidgetsContract: {
3188
3540
  workersAddedToday: number;
3189
3541
  offersSent: number;
3190
3542
  offersBooked: number;
3191
- averageRating: number;
3192
3543
  officeName: string | null;
3193
3544
  activesFaTotal: number;
3194
3545
  activesFaByStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
@@ -3200,12 +3551,17 @@ export declare const dashboardWidgetsContract: {
3200
3551
  bookingsSaTotal: number;
3201
3552
  bookingsSaByStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3202
3553
  bookingsSaByCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3554
+ averageRating: number;
3203
3555
  jobsTransitionCounts: Record<string, number>;
3204
3556
  jobsFillRate: number;
3205
3557
  jobsPositionsAdjusted: number;
3206
3558
  jobsOverbooked: number;
3207
3559
  proofsPostByType: Partial<Record<"WHATSAPP" | "OTHER" | "FACEBOOK" | "TELEGRAM" | "VIBER", number>>;
3208
3560
  proofsBookingByType: Partial<Record<"DISTANCE" | "CONFIRMATION" | "MORNING_STATUS", number>>;
3561
+ phoneContacts: number;
3562
+ phoneContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3563
+ whatsappContacts: number;
3564
+ whatsappContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3209
3565
  bookingsFaOngoing?: number | undefined;
3210
3566
  bookingsFaStartingToday?: number | undefined;
3211
3567
  bookingsFaPendingConfirmation?: number | undefined;
@@ -3225,6 +3581,7 @@ export declare const dashboardWidgetsContract: {
3225
3581
  agentId: string;
3226
3582
  conversionRate: number;
3227
3583
  totalCalls: number;
3584
+ agentName: string;
3228
3585
  performanceScore: number;
3229
3586
  ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3230
3587
  assignmentCalls: number;
@@ -3234,7 +3591,6 @@ export declare const dashboardWidgetsContract: {
3234
3591
  ownResearchLeadsAdded: number;
3235
3592
  ownResearchLeadsExistingInSystem: number;
3236
3593
  ownResearchLeadsNew: number;
3237
- agentName: string;
3238
3594
  callsOnDate: number;
3239
3595
  efficientCalls: number;
3240
3596
  conversionsOnDate: number;
@@ -3245,7 +3601,6 @@ export declare const dashboardWidgetsContract: {
3245
3601
  workersAddedToday: number;
3246
3602
  offersSent: number;
3247
3603
  offersBooked: number;
3248
- averageRating: number;
3249
3604
  officeName: string | null;
3250
3605
  activesFaTotal: number;
3251
3606
  activesFaByStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
@@ -3257,12 +3612,17 @@ export declare const dashboardWidgetsContract: {
3257
3612
  bookingsSaTotal: number;
3258
3613
  bookingsSaByStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3259
3614
  bookingsSaByCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3615
+ averageRating: number;
3260
3616
  jobsTransitionCounts: Record<string, number>;
3261
3617
  jobsFillRate: number;
3262
3618
  jobsPositionsAdjusted: number;
3263
3619
  jobsOverbooked: number;
3264
3620
  proofsPostByType: Partial<Record<"WHATSAPP" | "OTHER" | "FACEBOOK" | "TELEGRAM" | "VIBER", number>>;
3265
3621
  proofsBookingByType: Partial<Record<"DISTANCE" | "CONFIRMATION" | "MORNING_STATUS", number>>;
3622
+ phoneContacts: number;
3623
+ phoneContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3624
+ whatsappContacts: number;
3625
+ whatsappContactsByOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
3266
3626
  bookingsFaOngoing?: number | undefined;
3267
3627
  bookingsFaStartingToday?: number | undefined;
3268
3628
  bookingsFaPendingConfirmation?: number | undefined;
@@ -3279,8 +3639,398 @@ export declare const dashboardWidgetsContract: {
3279
3639
  }>;
3280
3640
  };
3281
3641
  };
3282
- getAdminFaAggregate: {
3283
- description: "Returns summed/averaged FA dashboard stats across all agents for a specific date.";
3642
+ getAdminFaAggregate: {
3643
+ description: "Returns summed/averaged FA dashboard stats across all agents for a specific date.";
3644
+ query: z.ZodObject<{
3645
+ date: z.ZodOptional<z.ZodString>;
3646
+ office: z.ZodOptional<z.ZodString>;
3647
+ }, "strip", z.ZodTypeAny, {
3648
+ date?: string | undefined;
3649
+ office?: string | undefined;
3650
+ }, {
3651
+ date?: string | undefined;
3652
+ office?: string | undefined;
3653
+ }>;
3654
+ summary: "Get aggregated FA stats across all agents (Admin)";
3655
+ method: "GET";
3656
+ path: "/widgets/admin/fa-aggregate";
3657
+ responses: {
3658
+ 200: z.ZodObject<{
3659
+ actives: z.ZodObject<{
3660
+ /** Flat structure (unlike per-agent FaActivesWidgetSchema which nests under 'today') */
3661
+ total: z.ZodNumber;
3662
+ /**
3663
+ * Actives grouped by unified status, counting every active in scope (FA OR SA
3664
+ * in office). Replaces the former separate byStatusFa/byStatusSa breakdowns now
3665
+ * that the FA/SA status fields are unified into a single `status`.
3666
+ */
3667
+ byStatus: z.ZodRecord<z.ZodEnum<["PENDING", "ACTIVE", "VACATION", "LEFT_THE_SITE", "MEDICAL_LEAVE", "DAY_OFF", "INJURY", "OFF_SCHEDULE"]>, z.ZodNumber>;
3668
+ }, "strip", z.ZodTypeAny, {
3669
+ total: number;
3670
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3671
+ }, {
3672
+ total: number;
3673
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3674
+ }>;
3675
+ bookings: z.ZodObject<{
3676
+ forToday: z.ZodObject<{
3677
+ byStatusFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3678
+ byStatusSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3679
+ byStatusFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3680
+ byCategoryFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3681
+ byCategorySa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3682
+ byCategoryFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3683
+ total: z.ZodNumber;
3684
+ byStatus: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>;
3685
+ byCategory: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>;
3686
+ /**
3687
+ * Bookings that start on this day AND were created on this day (booked and
3688
+ * starting same-day). A subset of the start-side count, so the share of
3689
+ * today's starts = sameDay / starting. Only populated for the `forToday`
3690
+ * bucket (meaningless for `createdToday`).
3691
+ */
3692
+ sameDay: z.ZodOptional<z.ZodNumber>;
3693
+ }, "strip", z.ZodTypeAny, {
3694
+ total: number;
3695
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3696
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3697
+ byStatusFa?: unknown;
3698
+ sameDay?: number | undefined;
3699
+ byStatusSa?: unknown;
3700
+ byStatusFaSa?: unknown;
3701
+ byCategoryFa?: unknown;
3702
+ byCategorySa?: unknown;
3703
+ byCategoryFaSa?: unknown;
3704
+ }, {
3705
+ total: number;
3706
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3707
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3708
+ byStatusFa?: unknown;
3709
+ sameDay?: number | undefined;
3710
+ byStatusSa?: unknown;
3711
+ byStatusFaSa?: unknown;
3712
+ byCategoryFa?: unknown;
3713
+ byCategorySa?: unknown;
3714
+ byCategoryFaSa?: unknown;
3715
+ }>;
3716
+ createdToday: z.ZodObject<{
3717
+ byStatusFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3718
+ byStatusSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3719
+ byStatusFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>> | undefined;
3720
+ byCategoryFa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3721
+ byCategorySa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3722
+ byCategoryFaSa?: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>> | undefined;
3723
+ total: z.ZodNumber;
3724
+ byStatus: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingType>, z.ZodNumber>;
3725
+ byCategory: z.ZodRecord<z.ZodNativeEnum<typeof import("../bookings/bookings.contract").BookingCategory>, z.ZodNumber>;
3726
+ /**
3727
+ * Bookings that start on this day AND were created on this day (booked and
3728
+ * starting same-day). A subset of the start-side count, so the share of
3729
+ * today's starts = sameDay / starting. Only populated for the `forToday`
3730
+ * bucket (meaningless for `createdToday`).
3731
+ */
3732
+ sameDay: z.ZodOptional<z.ZodNumber>;
3733
+ }, "strip", z.ZodTypeAny, {
3734
+ total: number;
3735
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3736
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3737
+ byStatusFa?: unknown;
3738
+ sameDay?: number | undefined;
3739
+ byStatusSa?: unknown;
3740
+ byStatusFaSa?: unknown;
3741
+ byCategoryFa?: unknown;
3742
+ byCategorySa?: unknown;
3743
+ byCategoryFaSa?: unknown;
3744
+ }, {
3745
+ total: number;
3746
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3747
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3748
+ byStatusFa?: unknown;
3749
+ sameDay?: number | undefined;
3750
+ byStatusSa?: unknown;
3751
+ byStatusFaSa?: unknown;
3752
+ byCategoryFa?: unknown;
3753
+ byCategorySa?: unknown;
3754
+ byCategoryFaSa?: unknown;
3755
+ }>;
3756
+ ongoingBookings: z.ZodNumber;
3757
+ startingToday: z.ZodNumber;
3758
+ pendingConfirmation: z.ZodNumber;
3759
+ upcomingStarts: z.ZodNumber;
3760
+ }, "strip", z.ZodTypeAny, {
3761
+ forToday: {
3762
+ total: number;
3763
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3764
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3765
+ byStatusFa?: unknown;
3766
+ sameDay?: number | undefined;
3767
+ byStatusSa?: unknown;
3768
+ byStatusFaSa?: unknown;
3769
+ byCategoryFa?: unknown;
3770
+ byCategorySa?: unknown;
3771
+ byCategoryFaSa?: unknown;
3772
+ };
3773
+ createdToday: {
3774
+ total: number;
3775
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3776
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3777
+ byStatusFa?: unknown;
3778
+ sameDay?: number | undefined;
3779
+ byStatusSa?: unknown;
3780
+ byStatusFaSa?: unknown;
3781
+ byCategoryFa?: unknown;
3782
+ byCategorySa?: unknown;
3783
+ byCategoryFaSa?: unknown;
3784
+ };
3785
+ ongoingBookings: number;
3786
+ startingToday: number;
3787
+ pendingConfirmation: number;
3788
+ upcomingStarts: number;
3789
+ }, {
3790
+ forToday: {
3791
+ total: number;
3792
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3793
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3794
+ byStatusFa?: unknown;
3795
+ sameDay?: number | undefined;
3796
+ byStatusSa?: unknown;
3797
+ byStatusFaSa?: unknown;
3798
+ byCategoryFa?: unknown;
3799
+ byCategorySa?: unknown;
3800
+ byCategoryFaSa?: unknown;
3801
+ };
3802
+ createdToday: {
3803
+ total: number;
3804
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3805
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3806
+ byStatusFa?: unknown;
3807
+ sameDay?: number | undefined;
3808
+ byStatusSa?: unknown;
3809
+ byStatusFaSa?: unknown;
3810
+ byCategoryFa?: unknown;
3811
+ byCategorySa?: unknown;
3812
+ byCategoryFaSa?: unknown;
3813
+ };
3814
+ ongoingBookings: number;
3815
+ startingToday: number;
3816
+ pendingConfirmation: number;
3817
+ upcomingStarts: number;
3818
+ }>;
3819
+ callMetrics: z.ZodObject<{
3820
+ /**
3821
+ * Aggregate metrics across all FA agents.
3822
+ * Note: `performanceTier` from FaCallHistoryWidgetSchema is omitted — it is not
3823
+ * meaningful as an aggregate. `performanceScore` is renamed to `averagePerformanceScore`
3824
+ * to make clear it is an average across agents.
3825
+ */
3826
+ totalCalls: z.ZodNumber;
3827
+ callsToday: z.ZodNumber;
3828
+ averageRatingToday: z.ZodNumber;
3829
+ efficientCallsToday: z.ZodNumber;
3830
+ conversionRate: z.ZodNumber;
3831
+ averagePerformanceScore: z.ZodNumber;
3832
+ ratingBreakdown: z.ZodRecord<z.ZodNativeEnum<typeof import("../common/call-rating.schema").CallRating>, z.ZodNumber>;
3833
+ assignmentCalls: z.ZodNumber;
3834
+ followUpCalls: z.ZodNumber;
3835
+ callbackCalls: z.ZodNumber;
3836
+ ownResearchCalls: z.ZodNumber;
3837
+ ownResearchLeadsAdded: z.ZodNumber;
3838
+ ownResearchLeadsExistingInSystem: z.ZodNumber;
3839
+ ownResearchLeadsNew: z.ZodNumber;
3840
+ }, "strip", z.ZodTypeAny, {
3841
+ conversionRate: number;
3842
+ totalCalls: number;
3843
+ callsToday: number;
3844
+ averageRatingToday: number;
3845
+ efficientCallsToday: number;
3846
+ ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3847
+ assignmentCalls: number;
3848
+ followUpCalls: number;
3849
+ callbackCalls: number;
3850
+ ownResearchCalls: number;
3851
+ ownResearchLeadsAdded: number;
3852
+ ownResearchLeadsExistingInSystem: number;
3853
+ ownResearchLeadsNew: number;
3854
+ averagePerformanceScore: number;
3855
+ }, {
3856
+ conversionRate: number;
3857
+ totalCalls: number;
3858
+ callsToday: number;
3859
+ averageRatingToday: number;
3860
+ efficientCallsToday: number;
3861
+ ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3862
+ assignmentCalls: number;
3863
+ followUpCalls: number;
3864
+ callbackCalls: number;
3865
+ ownResearchCalls: number;
3866
+ ownResearchLeadsAdded: number;
3867
+ ownResearchLeadsExistingInSystem: number;
3868
+ ownResearchLeadsNew: number;
3869
+ averagePerformanceScore: number;
3870
+ }>;
3871
+ jobs: z.ZodObject<{
3872
+ totalOpenPositions: z.ZodNumber;
3873
+ availableJobs: z.ZodNumber;
3874
+ createdToday: z.ZodNumber;
3875
+ filledPositions: z.ZodNumber;
3876
+ transitionCounts: z.ZodRecord<z.ZodString, z.ZodNumber>;
3877
+ fillRate: z.ZodNumber;
3878
+ positionsAdjusted: z.ZodNumber;
3879
+ positionsNetChange: z.ZodNumber;
3880
+ overbookedCount: z.ZodNumber;
3881
+ }, "strip", z.ZodTypeAny, {
3882
+ filledPositions: number;
3883
+ createdToday: number;
3884
+ totalOpenPositions: number;
3885
+ availableJobs: number;
3886
+ transitionCounts: Record<string, number>;
3887
+ fillRate: number;
3888
+ positionsAdjusted: number;
3889
+ positionsNetChange: number;
3890
+ overbookedCount: number;
3891
+ }, {
3892
+ filledPositions: number;
3893
+ createdToday: number;
3894
+ totalOpenPositions: number;
3895
+ availableJobs: number;
3896
+ transitionCounts: Record<string, number>;
3897
+ fillRate: number;
3898
+ positionsAdjusted: number;
3899
+ positionsNetChange: number;
3900
+ overbookedCount: number;
3901
+ }>;
3902
+ agentCount: z.ZodNumber;
3903
+ }, "strip", z.ZodTypeAny, {
3904
+ actives: {
3905
+ total: number;
3906
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3907
+ };
3908
+ bookings: {
3909
+ forToday: {
3910
+ total: number;
3911
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3912
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3913
+ byStatusFa?: unknown;
3914
+ sameDay?: number | undefined;
3915
+ byStatusSa?: unknown;
3916
+ byStatusFaSa?: unknown;
3917
+ byCategoryFa?: unknown;
3918
+ byCategorySa?: unknown;
3919
+ byCategoryFaSa?: unknown;
3920
+ };
3921
+ createdToday: {
3922
+ total: number;
3923
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3924
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3925
+ byStatusFa?: unknown;
3926
+ sameDay?: number | undefined;
3927
+ byStatusSa?: unknown;
3928
+ byStatusFaSa?: unknown;
3929
+ byCategoryFa?: unknown;
3930
+ byCategorySa?: unknown;
3931
+ byCategoryFaSa?: unknown;
3932
+ };
3933
+ ongoingBookings: number;
3934
+ startingToday: number;
3935
+ pendingConfirmation: number;
3936
+ upcomingStarts: number;
3937
+ };
3938
+ jobs: {
3939
+ filledPositions: number;
3940
+ createdToday: number;
3941
+ totalOpenPositions: number;
3942
+ availableJobs: number;
3943
+ transitionCounts: Record<string, number>;
3944
+ fillRate: number;
3945
+ positionsAdjusted: number;
3946
+ positionsNetChange: number;
3947
+ overbookedCount: number;
3948
+ };
3949
+ callMetrics: {
3950
+ conversionRate: number;
3951
+ totalCalls: number;
3952
+ callsToday: number;
3953
+ averageRatingToday: number;
3954
+ efficientCallsToday: number;
3955
+ ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3956
+ assignmentCalls: number;
3957
+ followUpCalls: number;
3958
+ callbackCalls: number;
3959
+ ownResearchCalls: number;
3960
+ ownResearchLeadsAdded: number;
3961
+ ownResearchLeadsExistingInSystem: number;
3962
+ ownResearchLeadsNew: number;
3963
+ averagePerformanceScore: number;
3964
+ };
3965
+ agentCount: number;
3966
+ }, {
3967
+ actives: {
3968
+ total: number;
3969
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3970
+ };
3971
+ bookings: {
3972
+ forToday: {
3973
+ total: number;
3974
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3975
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3976
+ byStatusFa?: unknown;
3977
+ sameDay?: number | undefined;
3978
+ byStatusSa?: unknown;
3979
+ byStatusFaSa?: unknown;
3980
+ byCategoryFa?: unknown;
3981
+ byCategorySa?: unknown;
3982
+ byCategoryFaSa?: unknown;
3983
+ };
3984
+ createdToday: {
3985
+ total: number;
3986
+ byStatus: Partial<Record<import("../bookings/bookings.contract").BookingType, number>>;
3987
+ byCategory: Partial<Record<import("../bookings/bookings.contract").BookingCategory, number>>;
3988
+ byStatusFa?: unknown;
3989
+ sameDay?: number | undefined;
3990
+ byStatusSa?: unknown;
3991
+ byStatusFaSa?: unknown;
3992
+ byCategoryFa?: unknown;
3993
+ byCategorySa?: unknown;
3994
+ byCategoryFaSa?: unknown;
3995
+ };
3996
+ ongoingBookings: number;
3997
+ startingToday: number;
3998
+ pendingConfirmation: number;
3999
+ upcomingStarts: number;
4000
+ };
4001
+ jobs: {
4002
+ filledPositions: number;
4003
+ createdToday: number;
4004
+ totalOpenPositions: number;
4005
+ availableJobs: number;
4006
+ transitionCounts: Record<string, number>;
4007
+ fillRate: number;
4008
+ positionsAdjusted: number;
4009
+ positionsNetChange: number;
4010
+ overbookedCount: number;
4011
+ };
4012
+ callMetrics: {
4013
+ conversionRate: number;
4014
+ totalCalls: number;
4015
+ callsToday: number;
4016
+ averageRatingToday: number;
4017
+ efficientCallsToday: number;
4018
+ ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
4019
+ assignmentCalls: number;
4020
+ followUpCalls: number;
4021
+ callbackCalls: number;
4022
+ ownResearchCalls: number;
4023
+ ownResearchLeadsAdded: number;
4024
+ ownResearchLeadsExistingInSystem: number;
4025
+ ownResearchLeadsNew: number;
4026
+ averagePerformanceScore: number;
4027
+ };
4028
+ agentCount: number;
4029
+ }>;
4030
+ };
4031
+ };
4032
+ getAdminSharedAggregate: {
4033
+ description: "Returns Bookings and Actives independently of the selected FA/SA tab.";
3284
4034
  query: z.ZodObject<{
3285
4035
  date: z.ZodOptional<z.ZodString>;
3286
4036
  office: z.ZodOptional<z.ZodString>;
@@ -3291,9 +4041,9 @@ export declare const dashboardWidgetsContract: {
3291
4041
  date?: string | undefined;
3292
4042
  office?: string | undefined;
3293
4043
  }>;
3294
- summary: "Get aggregated FA stats across all agents (Admin)";
4044
+ summary: "Get shared office-wide dashboard metrics (Admin)";
3295
4045
  method: "GET";
3296
- path: "/widgets/admin/fa-aggregate";
4046
+ path: "/widgets/admin/shared-aggregate";
3297
4047
  responses: {
3298
4048
  200: z.ZodObject<{
3299
4049
  actives: z.ZodObject<{
@@ -3456,101 +4206,10 @@ export declare const dashboardWidgetsContract: {
3456
4206
  pendingConfirmation: number;
3457
4207
  upcomingStarts: number;
3458
4208
  }>;
3459
- callMetrics: z.ZodObject<{
3460
- /**
3461
- * Aggregate metrics across all FA agents.
3462
- * Note: `performanceTier` from FaCallHistoryWidgetSchema is omitted — it is not
3463
- * meaningful as an aggregate. `performanceScore` is renamed to `averagePerformanceScore`
3464
- * to make clear it is an average across agents.
3465
- */
3466
- totalCalls: z.ZodNumber;
3467
- callsToday: z.ZodNumber;
3468
- averageRatingToday: z.ZodNumber;
3469
- efficientCallsToday: z.ZodNumber;
3470
- conversionRate: z.ZodNumber;
3471
- averagePerformanceScore: z.ZodNumber;
3472
- ratingBreakdown: z.ZodRecord<z.ZodNativeEnum<typeof import("../common/call-rating.schema").CallRating>, z.ZodNumber>;
3473
- assignmentCalls: z.ZodNumber;
3474
- followUpCalls: z.ZodNumber;
3475
- callbackCalls: z.ZodNumber;
3476
- ownResearchCalls: z.ZodNumber;
3477
- ownResearchLeadsAdded: z.ZodNumber;
3478
- ownResearchLeadsExistingInSystem: z.ZodNumber;
3479
- ownResearchLeadsNew: z.ZodNumber;
3480
- }, "strip", z.ZodTypeAny, {
3481
- conversionRate: number;
3482
- totalCalls: number;
3483
- callsToday: number;
3484
- averageRatingToday: number;
3485
- efficientCallsToday: number;
3486
- ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3487
- assignmentCalls: number;
3488
- followUpCalls: number;
3489
- callbackCalls: number;
3490
- ownResearchCalls: number;
3491
- ownResearchLeadsAdded: number;
3492
- ownResearchLeadsExistingInSystem: number;
3493
- ownResearchLeadsNew: number;
3494
- averagePerformanceScore: number;
3495
- }, {
3496
- conversionRate: number;
3497
- totalCalls: number;
3498
- callsToday: number;
3499
- averageRatingToday: number;
3500
- efficientCallsToday: number;
3501
- ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3502
- assignmentCalls: number;
3503
- followUpCalls: number;
3504
- callbackCalls: number;
3505
- ownResearchCalls: number;
3506
- ownResearchLeadsAdded: number;
3507
- ownResearchLeadsExistingInSystem: number;
3508
- ownResearchLeadsNew: number;
3509
- averagePerformanceScore: number;
3510
- }>;
3511
- jobs: z.ZodObject<{
3512
- totalOpenPositions: z.ZodNumber;
3513
- availableJobs: z.ZodNumber;
3514
- createdToday: z.ZodNumber;
3515
- filledPositions: z.ZodNumber;
3516
- transitionCounts: z.ZodRecord<z.ZodString, z.ZodNumber>;
3517
- fillRate: z.ZodNumber;
3518
- positionsAdjusted: z.ZodNumber;
3519
- positionsNetChange: z.ZodNumber;
3520
- overbookedCount: z.ZodNumber;
3521
- }, "strip", z.ZodTypeAny, {
3522
- filledPositions: number;
3523
- createdToday: number;
3524
- totalOpenPositions: number;
3525
- availableJobs: number;
3526
- transitionCounts: Record<string, number>;
3527
- fillRate: number;
3528
- positionsAdjusted: number;
3529
- positionsNetChange: number;
3530
- overbookedCount: number;
3531
- }, {
3532
- filledPositions: number;
3533
- createdToday: number;
3534
- totalOpenPositions: number;
3535
- availableJobs: number;
3536
- transitionCounts: Record<string, number>;
3537
- fillRate: number;
3538
- positionsAdjusted: number;
3539
- positionsNetChange: number;
3540
- overbookedCount: number;
3541
- }>;
3542
- agentCount: z.ZodNumber;
3543
4209
  }, "strip", z.ZodTypeAny, {
3544
- jobs: {
3545
- filledPositions: number;
3546
- createdToday: number;
3547
- totalOpenPositions: number;
3548
- availableJobs: number;
3549
- transitionCounts: Record<string, number>;
3550
- fillRate: number;
3551
- positionsAdjusted: number;
3552
- positionsNetChange: number;
3553
- overbookedCount: number;
4210
+ actives: {
4211
+ total: number;
4212
+ byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3554
4213
  };
3555
4214
  bookings: {
3556
4215
  forToday: {
@@ -3582,39 +4241,11 @@ export declare const dashboardWidgetsContract: {
3582
4241
  pendingConfirmation: number;
3583
4242
  upcomingStarts: number;
3584
4243
  };
4244
+ }, {
3585
4245
  actives: {
3586
4246
  total: number;
3587
4247
  byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3588
4248
  };
3589
- callMetrics: {
3590
- conversionRate: number;
3591
- totalCalls: number;
3592
- callsToday: number;
3593
- averageRatingToday: number;
3594
- efficientCallsToday: number;
3595
- ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3596
- assignmentCalls: number;
3597
- followUpCalls: number;
3598
- callbackCalls: number;
3599
- ownResearchCalls: number;
3600
- ownResearchLeadsAdded: number;
3601
- ownResearchLeadsExistingInSystem: number;
3602
- ownResearchLeadsNew: number;
3603
- averagePerformanceScore: number;
3604
- };
3605
- agentCount: number;
3606
- }, {
3607
- jobs: {
3608
- filledPositions: number;
3609
- createdToday: number;
3610
- totalOpenPositions: number;
3611
- availableJobs: number;
3612
- transitionCounts: Record<string, number>;
3613
- fillRate: number;
3614
- positionsAdjusted: number;
3615
- positionsNetChange: number;
3616
- overbookedCount: number;
3617
- };
3618
4249
  bookings: {
3619
4250
  forToday: {
3620
4251
  total: number;
@@ -3645,27 +4276,6 @@ export declare const dashboardWidgetsContract: {
3645
4276
  pendingConfirmation: number;
3646
4277
  upcomingStarts: number;
3647
4278
  };
3648
- actives: {
3649
- total: number;
3650
- byStatus: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3651
- };
3652
- callMetrics: {
3653
- conversionRate: number;
3654
- totalCalls: number;
3655
- callsToday: number;
3656
- averageRatingToday: number;
3657
- efficientCallsToday: number;
3658
- ratingBreakdown: Record<import("../common/call-rating.schema").CallRating, number>;
3659
- assignmentCalls: number;
3660
- followUpCalls: number;
3661
- callbackCalls: number;
3662
- ownResearchCalls: number;
3663
- ownResearchLeadsAdded: number;
3664
- ownResearchLeadsExistingInSystem: number;
3665
- ownResearchLeadsNew: number;
3666
- averagePerformanceScore: number;
3667
- };
3668
- agentCount: number;
3669
4279
  }>;
3670
4280
  };
3671
4281
  };
@@ -3853,9 +4463,9 @@ export declare const dashboardWidgetsContract: {
3853
4463
  }>;
3854
4464
  agentCount: z.ZodNumber;
3855
4465
  }, "strip", z.ZodTypeAny, {
3856
- workers: {
4466
+ actives: {
3857
4467
  total: number;
3858
- addedToday: number;
4468
+ byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3859
4469
  };
3860
4470
  bookings: {
3861
4471
  forToday: {
@@ -3887,15 +4497,15 @@ export declare const dashboardWidgetsContract: {
3887
4497
  pendingConfirmation: number;
3888
4498
  upcomingStarts: number;
3889
4499
  };
3890
- actives: {
4500
+ workers: {
3891
4501
  total: number;
3892
- byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
4502
+ addedToday: number;
3893
4503
  };
3894
4504
  agentCount: number;
3895
4505
  }, {
3896
- workers: {
4506
+ actives: {
3897
4507
  total: number;
3898
- addedToday: number;
4508
+ byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
3899
4509
  };
3900
4510
  bookings: {
3901
4511
  forToday: {
@@ -3927,14 +4537,141 @@ export declare const dashboardWidgetsContract: {
3927
4537
  pendingConfirmation: number;
3928
4538
  upcomingStarts: number;
3929
4539
  };
3930
- actives: {
4540
+ workers: {
3931
4541
  total: number;
3932
- byStatusSa: Partial<Record<"ACTIVE" | "PENDING" | "VACATION" | "LEFT_THE_SITE" | "MEDICAL_LEAVE" | "DAY_OFF" | "INJURY" | "OFF_SCHEDULE", number>>;
4542
+ addedToday: number;
3933
4543
  };
3934
4544
  agentCount: number;
3935
4545
  }>;
3936
4546
  };
3937
4547
  };
4548
+ getAdminSaContactHistory: {
4549
+ description: "Returns Phone and WhatsApp contact totals and normalized outcome breakdowns for the selected range.";
4550
+ query: z.ZodObject<{
4551
+ startDate: z.ZodString;
4552
+ endDate: z.ZodString;
4553
+ } & {
4554
+ office: z.ZodOptional<z.ZodString>;
4555
+ }, "strip", z.ZodTypeAny, {
4556
+ startDate: string;
4557
+ endDate: string;
4558
+ office?: string | undefined;
4559
+ }, {
4560
+ startDate: string;
4561
+ endDate: string;
4562
+ office?: string | undefined;
4563
+ }>;
4564
+ summary: "Get normalized Second Agent contact-history metrics (Admin)";
4565
+ method: "GET";
4566
+ path: "/widgets/admin/sa-contact-history";
4567
+ responses: {
4568
+ 200: z.ZodObject<{
4569
+ phone: z.ZodObject<{
4570
+ total: z.ZodNumber;
4571
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
4572
+ }, "strip", z.ZodTypeAny, {
4573
+ total: number;
4574
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4575
+ }, {
4576
+ total: number;
4577
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4578
+ }>;
4579
+ whatsapp: z.ZodObject<{
4580
+ total: z.ZodNumber;
4581
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
4582
+ }, "strip", z.ZodTypeAny, {
4583
+ total: number;
4584
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4585
+ }, {
4586
+ total: number;
4587
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4588
+ }>;
4589
+ data: z.ZodArray<z.ZodObject<{
4590
+ date: z.ZodString;
4591
+ phone: z.ZodObject<{
4592
+ total: z.ZodNumber;
4593
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
4594
+ }, "strip", z.ZodTypeAny, {
4595
+ total: number;
4596
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4597
+ }, {
4598
+ total: number;
4599
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4600
+ }>;
4601
+ whatsapp: z.ZodObject<{
4602
+ total: z.ZodNumber;
4603
+ byOutcome: z.ZodRecord<z.ZodEnum<["AWAITING_FEEDBACK", "INTERESTED", "CONNECTED", "NO_ANSWER", "BUSY", "NOT_INTERESTED", "INVALID_NUMBER", "FAILED"]>, z.ZodNumber>;
4604
+ }, "strip", z.ZodTypeAny, {
4605
+ total: number;
4606
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4607
+ }, {
4608
+ total: number;
4609
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4610
+ }>;
4611
+ }, "strip", z.ZodTypeAny, {
4612
+ phone: {
4613
+ total: number;
4614
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4615
+ };
4616
+ date: string;
4617
+ whatsapp: {
4618
+ total: number;
4619
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4620
+ };
4621
+ }, {
4622
+ phone: {
4623
+ total: number;
4624
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4625
+ };
4626
+ date: string;
4627
+ whatsapp: {
4628
+ total: number;
4629
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4630
+ };
4631
+ }>, "many">;
4632
+ }, "strip", z.ZodTypeAny, {
4633
+ phone: {
4634
+ total: number;
4635
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4636
+ };
4637
+ data: {
4638
+ phone: {
4639
+ total: number;
4640
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4641
+ };
4642
+ date: string;
4643
+ whatsapp: {
4644
+ total: number;
4645
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4646
+ };
4647
+ }[];
4648
+ whatsapp: {
4649
+ total: number;
4650
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4651
+ };
4652
+ }, {
4653
+ phone: {
4654
+ total: number;
4655
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4656
+ };
4657
+ data: {
4658
+ phone: {
4659
+ total: number;
4660
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4661
+ };
4662
+ date: string;
4663
+ whatsapp: {
4664
+ total: number;
4665
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4666
+ };
4667
+ }[];
4668
+ whatsapp: {
4669
+ total: number;
4670
+ byOutcome: Partial<Record<"NO_ANSWER" | "INVALID_NUMBER" | "INTERESTED" | "NOT_INTERESTED" | "CONNECTED" | "BUSY" | "AWAITING_FEEDBACK" | "FAILED", number>>;
4671
+ };
4672
+ }>;
4673
+ };
4674
+ };
3938
4675
  getActivesTrend: {
3939
4676
  description: "Returns time-series data for actives over a date range";
3940
4677
  query: z.ZodObject<{
@@ -4259,11 +4996,11 @@ export declare const dashboardWidgetsContract: {
4259
4996
  }, "strip", z.ZodTypeAny, {
4260
4997
  date: string;
4261
4998
  created: number;
4262
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
4999
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
4263
5000
  }, {
4264
5001
  date: string;
4265
5002
  created: number;
4266
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
5003
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
4267
5004
  }>, "many">;
4268
5005
  summary: z.ZodObject<{
4269
5006
  totalCreated: z.ZodNumber;
@@ -4283,7 +5020,7 @@ export declare const dashboardWidgetsContract: {
4283
5020
  data: {
4284
5021
  date: string;
4285
5022
  created: number;
4286
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
5023
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
4287
5024
  }[];
4288
5025
  }, {
4289
5026
  summary: {
@@ -4293,7 +5030,7 @@ export declare const dashboardWidgetsContract: {
4293
5030
  data: {
4294
5031
  date: string;
4295
5032
  created: number;
4296
- byStatus: Partial<Record<"ACTIVE" | "INACTIVE" | "APPROVED" | "PENDING_APPROVAL" | "REJECTED" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
5033
+ byStatus: Partial<Record<"ACTIVE" | "APPROVED" | "INACTIVE" | "REJECTED" | "PENDING_APPROVAL" | "CHANGED_COMPANY" | "CHANGED_AGENT" | "CHANGED_COMPANY_AND_AGENT", number>>;
4297
5034
  }[];
4298
5035
  }>;
4299
5036
  };
@@ -4799,11 +5536,11 @@ export declare const dashboardWidgetsContract: {
4799
5536
  }, "strip", z.ZodTypeAny, {
4800
5537
  date: string;
4801
5538
  total: number;
4802
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5539
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4803
5540
  }, {
4804
5541
  date: string;
4805
5542
  total: number;
4806
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5543
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4807
5544
  }>, "many">;
4808
5545
  summary: z.ZodObject<{
4809
5546
  averageDaily: z.ZodNumber;
@@ -4827,7 +5564,7 @@ export declare const dashboardWidgetsContract: {
4827
5564
  data: {
4828
5565
  date: string;
4829
5566
  total: number;
4830
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5567
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4831
5568
  }[];
4832
5569
  }, {
4833
5570
  summary: {
@@ -4838,7 +5575,7 @@ export declare const dashboardWidgetsContract: {
4838
5575
  data: {
4839
5576
  date: string;
4840
5577
  total: number;
4841
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5578
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4842
5579
  }[];
4843
5580
  }>;
4844
5581
  };
@@ -4870,11 +5607,11 @@ export declare const dashboardWidgetsContract: {
4870
5607
  }, "strip", z.ZodTypeAny, {
4871
5608
  date: string;
4872
5609
  total: number;
4873
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5610
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4874
5611
  }, {
4875
5612
  date: string;
4876
5613
  total: number;
4877
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5614
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4878
5615
  }>, "many">;
4879
5616
  summary: z.ZodObject<{
4880
5617
  averageDaily: z.ZodNumber;
@@ -4898,7 +5635,7 @@ export declare const dashboardWidgetsContract: {
4898
5635
  data: {
4899
5636
  date: string;
4900
5637
  total: number;
4901
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5638
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4902
5639
  }[];
4903
5640
  }, {
4904
5641
  summary: {
@@ -4909,7 +5646,7 @@ export declare const dashboardWidgetsContract: {
4909
5646
  data: {
4910
5647
  date: string;
4911
5648
  total: number;
4912
- byOutcome: Partial<Record<"BOOKED" | "NOT_INTERESTED" | "OFFER_SENT" | "TOO_FAR" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
5649
+ byOutcome: Partial<Record<"NOT_INTERESTED" | "BOOKED" | "TOO_FAR" | "OFFER_SENT" | "CONSENTED" | "DECLINED" | "WRONG_NUMBER" | "SNOOZED" | "BOOKING_CANCELLED", number>>;
4913
5650
  }[];
4914
5651
  }>;
4915
5652
  };
@@ -5365,8 +6102,14 @@ export type AdminAgentStatsResponse = z.infer<ReturnType<typeof createPaginatedR
5365
6102
  proofsBookingByType: z.ZodRecord<z.ZodNativeEnum<any>, z.ZodNumber>;
5366
6103
  offersSent: z.ZodNumber;
5367
6104
  offersBooked: z.ZodNumber;
6105
+ phoneContacts: z.ZodNumber;
6106
+ phoneContactsByOutcome: z.ZodRecord<typeof CandidateContactHistoryOutcomeSchema, z.ZodNumber>;
6107
+ whatsappContacts: z.ZodNumber;
6108
+ whatsappContactsByOutcome: z.ZodRecord<typeof CandidateContactHistoryOutcomeSchema, z.ZodNumber>;
5368
6109
  }>>>>;
5369
6110
  export type AdminAgentStatsItem = AdminAgentStatsResponse['items'][number];
5370
6111
  export type AdminFaAggregate = z.infer<typeof AdminFaAggregateSchema>;
5371
6112
  export type AdminSaAggregate = z.infer<typeof AdminSaAggregateSchema>;
6113
+ export type AdminSharedAggregate = z.infer<typeof AdminSharedAggregateSchema>;
6114
+ export type AdminContactHistoryMetrics = z.infer<typeof AdminContactHistoryMetricsSchema>;
5372
6115
  //# sourceMappingURL=dashboard-widgets.contract.d.ts.map