@dakkitor/api-contracts 1.1.84 → 1.1.85

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.
@@ -0,0 +1,1165 @@
1
+ /**
2
+ * Project: Internal Recruitment Platform API
3
+ * File: dashboard-widgets.contract.ts
4
+ *
5
+ * Description: Defines the API contracts for modular dashboard widget endpoints.
6
+ * Provides role-specific widgets for First Agent (FA) and Second Agent (SA).
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Date range filter for historical queries
11
+ */
12
+ export declare const DateRangeQuerySchema: z.ZodObject<{
13
+ startDate: z.ZodString;
14
+ endDate: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ startDate: string;
17
+ endDate: string;
18
+ }, {
19
+ startDate: string;
20
+ endDate: string;
21
+ }>;
22
+ /**
23
+ * Common trend data point for time-series charts
24
+ */
25
+ export declare const TrendDataPointSchema: z.ZodObject<{
26
+ date: z.ZodString;
27
+ value: z.ZodNumber;
28
+ }, "strip", z.ZodTypeAny, {
29
+ value: number;
30
+ date: string;
31
+ }, {
32
+ value: number;
33
+ date: string;
34
+ }>;
35
+ /**
36
+ * FA Pipeline Widget - Collaboration pipeline overview
37
+ */
38
+ export declare const FaPipelineWidgetSchema: z.ZodObject<{
39
+ collaborations: z.ZodObject<{
40
+ total: z.ZodNumber;
41
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
42
+ recentCount: z.ZodNumber;
43
+ }, "strip", z.ZodTypeAny, {
44
+ total: number;
45
+ byStatus: Record<string, number>;
46
+ recentCount: number;
47
+ }, {
48
+ total: number;
49
+ byStatus: Record<string, number>;
50
+ recentCount: number;
51
+ }>;
52
+ summary: z.ZodObject<{
53
+ activeCollaborations: z.ZodNumber;
54
+ pendingApproval: z.ZodNumber;
55
+ }, "strip", z.ZodTypeAny, {
56
+ activeCollaborations: number;
57
+ pendingApproval: number;
58
+ }, {
59
+ activeCollaborations: number;
60
+ pendingApproval: number;
61
+ }>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ collaborations: {
64
+ total: number;
65
+ byStatus: Record<string, number>;
66
+ recentCount: number;
67
+ };
68
+ summary: {
69
+ activeCollaborations: number;
70
+ pendingApproval: number;
71
+ };
72
+ }, {
73
+ collaborations: {
74
+ total: number;
75
+ byStatus: Record<string, number>;
76
+ recentCount: number;
77
+ };
78
+ summary: {
79
+ activeCollaborations: number;
80
+ pendingApproval: number;
81
+ };
82
+ }>;
83
+ /**
84
+ * FA Clients Widget - Client portfolio summary
85
+ */
86
+ export declare const FaClientsWidgetSchema: z.ZodObject<{
87
+ total: z.ZodNumber;
88
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
89
+ recentlyAdded: z.ZodNumber;
90
+ pendingVerification: z.ZodNumber;
91
+ }, "strip", z.ZodTypeAny, {
92
+ total: number;
93
+ byStatus: Record<string, number>;
94
+ recentlyAdded: number;
95
+ pendingVerification: number;
96
+ }, {
97
+ total: number;
98
+ byStatus: Record<string, number>;
99
+ recentlyAdded: number;
100
+ pendingVerification: number;
101
+ }>;
102
+ /**
103
+ * FA Collaboration Checkings Widget - Checking process status
104
+ */
105
+ export declare const FaCheckingsWidgetSchema: z.ZodObject<{
106
+ total: z.ZodNumber;
107
+ byDecision: z.ZodRecord<z.ZodString, z.ZodNumber>;
108
+ pendingCount: z.ZodNumber;
109
+ recentlyCompleted: z.ZodNumber;
110
+ }, "strip", z.ZodTypeAny, {
111
+ total: number;
112
+ byDecision: Record<string, number>;
113
+ pendingCount: number;
114
+ recentlyCompleted: number;
115
+ }, {
116
+ total: number;
117
+ byDecision: Record<string, number>;
118
+ pendingCount: number;
119
+ recentlyCompleted: number;
120
+ }>;
121
+ /**
122
+ * FA Call History Widget - Call performance metrics
123
+ */
124
+ export declare const FaCallHistoryWidgetSchema: z.ZodObject<{
125
+ totalCalls: z.ZodNumber;
126
+ callsToday: z.ZodNumber;
127
+ callsThisWeek: z.ZodNumber;
128
+ averageRating: z.ZodNumber;
129
+ conversionRate: z.ZodNumber;
130
+ performanceScore: z.ZodNumber;
131
+ performanceTier: z.ZodEnum<["high", "medium", "low", "new"]>;
132
+ ratingBreakdown: z.ZodRecord<z.ZodString, z.ZodNumber>;
133
+ }, "strip", z.ZodTypeAny, {
134
+ totalCalls: number;
135
+ callsToday: number;
136
+ callsThisWeek: number;
137
+ averageRating: number;
138
+ conversionRate: number;
139
+ performanceScore: number;
140
+ performanceTier: "high" | "medium" | "low" | "new";
141
+ ratingBreakdown: Record<string, number>;
142
+ }, {
143
+ totalCalls: number;
144
+ callsToday: number;
145
+ callsThisWeek: number;
146
+ averageRating: number;
147
+ conversionRate: number;
148
+ performanceScore: number;
149
+ performanceTier: "high" | "medium" | "low" | "new";
150
+ ratingBreakdown: Record<string, number>;
151
+ }>;
152
+ /**
153
+ * FA Actives Widget - Today's active workers (FA perspective)
154
+ */
155
+ export declare const FaActivesWidgetSchema: z.ZodObject<{
156
+ today: z.ZodObject<{
157
+ total: z.ZodNumber;
158
+ byStatusFa: z.ZodRecord<z.ZodString, z.ZodNumber>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ total: number;
161
+ byStatusFa: Record<string, number>;
162
+ }, {
163
+ total: number;
164
+ byStatusFa: Record<string, number>;
165
+ }>;
166
+ pendingApproval: z.ZodNumber;
167
+ }, "strip", z.ZodTypeAny, {
168
+ pendingApproval: number;
169
+ today: {
170
+ total: number;
171
+ byStatusFa: Record<string, number>;
172
+ };
173
+ }, {
174
+ pendingApproval: number;
175
+ today: {
176
+ total: number;
177
+ byStatusFa: Record<string, number>;
178
+ };
179
+ }>;
180
+ /**
181
+ * FA Bookings Widget - Booking management (FA perspective)
182
+ */
183
+ export declare const FaBookingsWidgetSchema: z.ZodObject<{
184
+ total: z.ZodNumber;
185
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
186
+ activeBookings: z.ZodNumber;
187
+ pendingConfirmation: z.ZodNumber;
188
+ upcomingStarts: z.ZodNumber;
189
+ }, "strip", z.ZodTypeAny, {
190
+ total: number;
191
+ byStatus: Record<string, number>;
192
+ activeBookings: number;
193
+ pendingConfirmation: number;
194
+ upcomingStarts: number;
195
+ }, {
196
+ total: number;
197
+ byStatus: Record<string, number>;
198
+ activeBookings: number;
199
+ pendingConfirmation: number;
200
+ upcomingStarts: number;
201
+ }>;
202
+ /**
203
+ * SA Workers Widget - Worker recruitment summary
204
+ */
205
+ export declare const SaWorkersWidgetSchema: z.ZodObject<{
206
+ total: z.ZodNumber;
207
+ addedThisWeek: z.ZodNumber;
208
+ addedThisMonth: z.ZodNumber;
209
+ byAvailability: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
210
+ }, "strip", z.ZodTypeAny, {
211
+ total: number;
212
+ addedThisWeek: number;
213
+ addedThisMonth: number;
214
+ byAvailability?: Record<string, number> | undefined;
215
+ }, {
216
+ total: number;
217
+ addedThisWeek: number;
218
+ addedThisMonth: number;
219
+ byAvailability?: Record<string, number> | undefined;
220
+ }>;
221
+ /**
222
+ * SA Bookings Widget - Booking management (SA perspective)
223
+ */
224
+ export declare const SaBookingsWidgetSchema: z.ZodObject<{
225
+ total: z.ZodNumber;
226
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
227
+ activeBookings: z.ZodNumber;
228
+ waitingForConfirmation: z.ZodNumber;
229
+ upcomingStarts: z.ZodNumber;
230
+ }, "strip", z.ZodTypeAny, {
231
+ total: number;
232
+ byStatus: Record<string, number>;
233
+ activeBookings: number;
234
+ upcomingStarts: number;
235
+ waitingForConfirmation: number;
236
+ }, {
237
+ total: number;
238
+ byStatus: Record<string, number>;
239
+ activeBookings: number;
240
+ upcomingStarts: number;
241
+ waitingForConfirmation: number;
242
+ }>;
243
+ /**
244
+ * SA Actives Widget - Today's active workers (SA perspective)
245
+ */
246
+ export declare const SaActivesWidgetSchema: z.ZodObject<{
247
+ today: z.ZodObject<{
248
+ total: z.ZodNumber;
249
+ byStatusSa: z.ZodRecord<z.ZodString, z.ZodNumber>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ total: number;
252
+ byStatusSa: Record<string, number>;
253
+ }, {
254
+ total: number;
255
+ byStatusSa: Record<string, number>;
256
+ }>;
257
+ pendingConfirmation: z.ZodNumber;
258
+ }, "strip", z.ZodTypeAny, {
259
+ today: {
260
+ total: number;
261
+ byStatusSa: Record<string, number>;
262
+ };
263
+ pendingConfirmation: number;
264
+ }, {
265
+ today: {
266
+ total: number;
267
+ byStatusSa: Record<string, number>;
268
+ };
269
+ pendingConfirmation: number;
270
+ }>;
271
+ /**
272
+ * Actives trend data for charts
273
+ */
274
+ export declare const ActivesTrendSchema: z.ZodObject<{
275
+ data: z.ZodArray<z.ZodObject<{
276
+ date: z.ZodString;
277
+ total: z.ZodNumber;
278
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
279
+ }, "strip", z.ZodTypeAny, {
280
+ date: string;
281
+ total: number;
282
+ byStatus: Record<string, number>;
283
+ }, {
284
+ date: string;
285
+ total: number;
286
+ byStatus: Record<string, number>;
287
+ }>, "many">;
288
+ summary: z.ZodObject<{
289
+ averageDaily: z.ZodNumber;
290
+ peakDay: z.ZodNullable<z.ZodString>;
291
+ peakValue: z.ZodNumber;
292
+ }, "strip", z.ZodTypeAny, {
293
+ averageDaily: number;
294
+ peakDay: string | null;
295
+ peakValue: number;
296
+ }, {
297
+ averageDaily: number;
298
+ peakDay: string | null;
299
+ peakValue: number;
300
+ }>;
301
+ }, "strip", z.ZodTypeAny, {
302
+ summary: {
303
+ averageDaily: number;
304
+ peakDay: string | null;
305
+ peakValue: number;
306
+ };
307
+ data: {
308
+ date: string;
309
+ total: number;
310
+ byStatus: Record<string, number>;
311
+ }[];
312
+ }, {
313
+ summary: {
314
+ averageDaily: number;
315
+ peakDay: string | null;
316
+ peakValue: number;
317
+ };
318
+ data: {
319
+ date: string;
320
+ total: number;
321
+ byStatus: Record<string, number>;
322
+ }[];
323
+ }>;
324
+ /**
325
+ * Bookings trend data for charts
326
+ */
327
+ export declare const BookingsTrendSchema: z.ZodObject<{
328
+ data: z.ZodArray<z.ZodObject<{
329
+ date: z.ZodString;
330
+ total: z.ZodNumber;
331
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ date: string;
334
+ total: number;
335
+ byStatus: Record<string, number>;
336
+ }, {
337
+ date: string;
338
+ total: number;
339
+ byStatus: Record<string, number>;
340
+ }>, "many">;
341
+ summary: z.ZodObject<{
342
+ averageDaily: z.ZodNumber;
343
+ totalCreated: z.ZodNumber;
344
+ }, "strip", z.ZodTypeAny, {
345
+ averageDaily: number;
346
+ totalCreated: number;
347
+ }, {
348
+ averageDaily: number;
349
+ totalCreated: number;
350
+ }>;
351
+ }, "strip", z.ZodTypeAny, {
352
+ summary: {
353
+ averageDaily: number;
354
+ totalCreated: number;
355
+ };
356
+ data: {
357
+ date: string;
358
+ total: number;
359
+ byStatus: Record<string, number>;
360
+ }[];
361
+ }, {
362
+ summary: {
363
+ averageDaily: number;
364
+ totalCreated: number;
365
+ };
366
+ data: {
367
+ date: string;
368
+ total: number;
369
+ byStatus: Record<string, number>;
370
+ }[];
371
+ }>;
372
+ /**
373
+ * Call performance trend data for charts
374
+ */
375
+ export declare const CallPerformanceTrendSchema: z.ZodObject<{
376
+ data: z.ZodArray<z.ZodObject<{
377
+ date: z.ZodString;
378
+ totalCalls: z.ZodNumber;
379
+ averageRating: z.ZodNumber;
380
+ conversionRate: z.ZodNumber;
381
+ performanceScore: z.ZodNumber;
382
+ }, "strip", z.ZodTypeAny, {
383
+ date: string;
384
+ totalCalls: number;
385
+ averageRating: number;
386
+ conversionRate: number;
387
+ performanceScore: number;
388
+ }, {
389
+ date: string;
390
+ totalCalls: number;
391
+ averageRating: number;
392
+ conversionRate: number;
393
+ performanceScore: number;
394
+ }>, "many">;
395
+ summary: z.ZodObject<{
396
+ averageDailyCalls: z.ZodNumber;
397
+ overallConversionRate: z.ZodNumber;
398
+ overallAverageRating: z.ZodNumber;
399
+ }, "strip", z.ZodTypeAny, {
400
+ averageDailyCalls: number;
401
+ overallConversionRate: number;
402
+ overallAverageRating: number;
403
+ }, {
404
+ averageDailyCalls: number;
405
+ overallConversionRate: number;
406
+ overallAverageRating: number;
407
+ }>;
408
+ }, "strip", z.ZodTypeAny, {
409
+ summary: {
410
+ averageDailyCalls: number;
411
+ overallConversionRate: number;
412
+ overallAverageRating: number;
413
+ };
414
+ data: {
415
+ date: string;
416
+ totalCalls: number;
417
+ averageRating: number;
418
+ conversionRate: number;
419
+ performanceScore: number;
420
+ }[];
421
+ }, {
422
+ summary: {
423
+ averageDailyCalls: number;
424
+ overallConversionRate: number;
425
+ overallAverageRating: number;
426
+ };
427
+ data: {
428
+ date: string;
429
+ totalCalls: number;
430
+ averageRating: number;
431
+ conversionRate: number;
432
+ performanceScore: number;
433
+ }[];
434
+ }>;
435
+ /**
436
+ * Workers trend data for charts (SA only)
437
+ */
438
+ export declare const WorkersTrendSchema: z.ZodObject<{
439
+ data: z.ZodArray<z.ZodObject<{
440
+ date: z.ZodString;
441
+ added: z.ZodNumber;
442
+ cumulativeTotal: z.ZodNumber;
443
+ }, "strip", z.ZodTypeAny, {
444
+ date: string;
445
+ added: number;
446
+ cumulativeTotal: number;
447
+ }, {
448
+ date: string;
449
+ added: number;
450
+ cumulativeTotal: number;
451
+ }>, "many">;
452
+ summary: z.ZodObject<{
453
+ totalAdded: z.ZodNumber;
454
+ averagePerDay: z.ZodNumber;
455
+ }, "strip", z.ZodTypeAny, {
456
+ totalAdded: number;
457
+ averagePerDay: number;
458
+ }, {
459
+ totalAdded: number;
460
+ averagePerDay: number;
461
+ }>;
462
+ }, "strip", z.ZodTypeAny, {
463
+ summary: {
464
+ totalAdded: number;
465
+ averagePerDay: number;
466
+ };
467
+ data: {
468
+ date: string;
469
+ added: number;
470
+ cumulativeTotal: number;
471
+ }[];
472
+ }, {
473
+ summary: {
474
+ totalAdded: number;
475
+ averagePerDay: number;
476
+ };
477
+ data: {
478
+ date: string;
479
+ added: number;
480
+ cumulativeTotal: number;
481
+ }[];
482
+ }>;
483
+ /**
484
+ * Collaborations trend data for charts (FA only)
485
+ */
486
+ export declare const CollaborationsTrendSchema: z.ZodObject<{
487
+ data: z.ZodArray<z.ZodObject<{
488
+ date: z.ZodString;
489
+ created: z.ZodNumber;
490
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
491
+ }, "strip", z.ZodTypeAny, {
492
+ date: string;
493
+ byStatus: Record<string, number>;
494
+ created: number;
495
+ }, {
496
+ date: string;
497
+ byStatus: Record<string, number>;
498
+ created: number;
499
+ }>, "many">;
500
+ summary: z.ZodObject<{
501
+ totalCreated: z.ZodNumber;
502
+ activeCount: z.ZodNumber;
503
+ }, "strip", z.ZodTypeAny, {
504
+ totalCreated: number;
505
+ activeCount: number;
506
+ }, {
507
+ totalCreated: number;
508
+ activeCount: number;
509
+ }>;
510
+ }, "strip", z.ZodTypeAny, {
511
+ summary: {
512
+ totalCreated: number;
513
+ activeCount: number;
514
+ };
515
+ data: {
516
+ date: string;
517
+ byStatus: Record<string, number>;
518
+ created: number;
519
+ }[];
520
+ }, {
521
+ summary: {
522
+ totalCreated: number;
523
+ activeCount: number;
524
+ };
525
+ data: {
526
+ date: string;
527
+ byStatus: Record<string, number>;
528
+ created: number;
529
+ }[];
530
+ }>;
531
+ export declare const dashboardWidgetsContract: {
532
+ getFaPipeline: {
533
+ summary: "Get FA collaboration pipeline widget data";
534
+ description: "Returns collaboration pipeline overview for First Agent dashboard";
535
+ method: "GET";
536
+ path: "/widgets/fa/pipeline";
537
+ responses: {
538
+ 200: z.ZodObject<{
539
+ collaborations: z.ZodObject<{
540
+ total: z.ZodNumber;
541
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
542
+ recentCount: z.ZodNumber;
543
+ }, "strip", z.ZodTypeAny, {
544
+ total: number;
545
+ byStatus: Record<string, number>;
546
+ recentCount: number;
547
+ }, {
548
+ total: number;
549
+ byStatus: Record<string, number>;
550
+ recentCount: number;
551
+ }>;
552
+ summary: z.ZodObject<{
553
+ activeCollaborations: z.ZodNumber;
554
+ pendingApproval: z.ZodNumber;
555
+ }, "strip", z.ZodTypeAny, {
556
+ activeCollaborations: number;
557
+ pendingApproval: number;
558
+ }, {
559
+ activeCollaborations: number;
560
+ pendingApproval: number;
561
+ }>;
562
+ }, "strip", z.ZodTypeAny, {
563
+ collaborations: {
564
+ total: number;
565
+ byStatus: Record<string, number>;
566
+ recentCount: number;
567
+ };
568
+ summary: {
569
+ activeCollaborations: number;
570
+ pendingApproval: number;
571
+ };
572
+ }, {
573
+ collaborations: {
574
+ total: number;
575
+ byStatus: Record<string, number>;
576
+ recentCount: number;
577
+ };
578
+ summary: {
579
+ activeCollaborations: number;
580
+ pendingApproval: number;
581
+ };
582
+ }>;
583
+ };
584
+ };
585
+ getFaClients: {
586
+ summary: "Get FA clients widget data";
587
+ description: "Returns client portfolio summary for First Agent dashboard";
588
+ method: "GET";
589
+ path: "/widgets/fa/clients";
590
+ responses: {
591
+ 200: z.ZodObject<{
592
+ total: z.ZodNumber;
593
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
594
+ recentlyAdded: z.ZodNumber;
595
+ pendingVerification: z.ZodNumber;
596
+ }, "strip", z.ZodTypeAny, {
597
+ total: number;
598
+ byStatus: Record<string, number>;
599
+ recentlyAdded: number;
600
+ pendingVerification: number;
601
+ }, {
602
+ total: number;
603
+ byStatus: Record<string, number>;
604
+ recentlyAdded: number;
605
+ pendingVerification: number;
606
+ }>;
607
+ };
608
+ };
609
+ getFaCheckings: {
610
+ summary: "Get FA collaboration checkings widget data";
611
+ description: "Returns collaboration checking status for First Agent dashboard";
612
+ method: "GET";
613
+ path: "/widgets/fa/checkings";
614
+ responses: {
615
+ 200: z.ZodObject<{
616
+ total: z.ZodNumber;
617
+ byDecision: z.ZodRecord<z.ZodString, z.ZodNumber>;
618
+ pendingCount: z.ZodNumber;
619
+ recentlyCompleted: z.ZodNumber;
620
+ }, "strip", z.ZodTypeAny, {
621
+ total: number;
622
+ byDecision: Record<string, number>;
623
+ pendingCount: number;
624
+ recentlyCompleted: number;
625
+ }, {
626
+ total: number;
627
+ byDecision: Record<string, number>;
628
+ pendingCount: number;
629
+ recentlyCompleted: number;
630
+ }>;
631
+ };
632
+ };
633
+ getFaCallHistory: {
634
+ summary: "Get FA call history widget data";
635
+ description: "Returns call performance metrics for First Agent dashboard";
636
+ method: "GET";
637
+ path: "/widgets/fa/call-history";
638
+ responses: {
639
+ 200: z.ZodObject<{
640
+ totalCalls: z.ZodNumber;
641
+ callsToday: z.ZodNumber;
642
+ callsThisWeek: z.ZodNumber;
643
+ averageRating: z.ZodNumber;
644
+ conversionRate: z.ZodNumber;
645
+ performanceScore: z.ZodNumber;
646
+ performanceTier: z.ZodEnum<["high", "medium", "low", "new"]>;
647
+ ratingBreakdown: z.ZodRecord<z.ZodString, z.ZodNumber>;
648
+ }, "strip", z.ZodTypeAny, {
649
+ totalCalls: number;
650
+ callsToday: number;
651
+ callsThisWeek: number;
652
+ averageRating: number;
653
+ conversionRate: number;
654
+ performanceScore: number;
655
+ performanceTier: "high" | "medium" | "low" | "new";
656
+ ratingBreakdown: Record<string, number>;
657
+ }, {
658
+ totalCalls: number;
659
+ callsToday: number;
660
+ callsThisWeek: number;
661
+ averageRating: number;
662
+ conversionRate: number;
663
+ performanceScore: number;
664
+ performanceTier: "high" | "medium" | "low" | "new";
665
+ ratingBreakdown: Record<string, number>;
666
+ }>;
667
+ };
668
+ };
669
+ getFaActives: {
670
+ summary: "Get FA actives widget data";
671
+ description: "Returns today's active workers from FA perspective";
672
+ method: "GET";
673
+ path: "/widgets/fa/actives";
674
+ responses: {
675
+ 200: z.ZodObject<{
676
+ today: z.ZodObject<{
677
+ total: z.ZodNumber;
678
+ byStatusFa: z.ZodRecord<z.ZodString, z.ZodNumber>;
679
+ }, "strip", z.ZodTypeAny, {
680
+ total: number;
681
+ byStatusFa: Record<string, number>;
682
+ }, {
683
+ total: number;
684
+ byStatusFa: Record<string, number>;
685
+ }>;
686
+ pendingApproval: z.ZodNumber;
687
+ }, "strip", z.ZodTypeAny, {
688
+ pendingApproval: number;
689
+ today: {
690
+ total: number;
691
+ byStatusFa: Record<string, number>;
692
+ };
693
+ }, {
694
+ pendingApproval: number;
695
+ today: {
696
+ total: number;
697
+ byStatusFa: Record<string, number>;
698
+ };
699
+ }>;
700
+ };
701
+ };
702
+ getFaBookings: {
703
+ summary: "Get FA bookings widget data";
704
+ description: "Returns booking management summary for First Agent dashboard";
705
+ method: "GET";
706
+ path: "/widgets/fa/bookings";
707
+ responses: {
708
+ 200: z.ZodObject<{
709
+ total: z.ZodNumber;
710
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
711
+ activeBookings: z.ZodNumber;
712
+ pendingConfirmation: z.ZodNumber;
713
+ upcomingStarts: z.ZodNumber;
714
+ }, "strip", z.ZodTypeAny, {
715
+ total: number;
716
+ byStatus: Record<string, number>;
717
+ activeBookings: number;
718
+ pendingConfirmation: number;
719
+ upcomingStarts: number;
720
+ }, {
721
+ total: number;
722
+ byStatus: Record<string, number>;
723
+ activeBookings: number;
724
+ pendingConfirmation: number;
725
+ upcomingStarts: number;
726
+ }>;
727
+ };
728
+ };
729
+ getSaWorkers: {
730
+ summary: "Get SA workers widget data";
731
+ description: "Returns worker recruitment summary for Second Agent dashboard";
732
+ method: "GET";
733
+ path: "/widgets/sa/workers";
734
+ responses: {
735
+ 200: z.ZodObject<{
736
+ total: z.ZodNumber;
737
+ addedThisWeek: z.ZodNumber;
738
+ addedThisMonth: z.ZodNumber;
739
+ byAvailability: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
740
+ }, "strip", z.ZodTypeAny, {
741
+ total: number;
742
+ addedThisWeek: number;
743
+ addedThisMonth: number;
744
+ byAvailability?: Record<string, number> | undefined;
745
+ }, {
746
+ total: number;
747
+ addedThisWeek: number;
748
+ addedThisMonth: number;
749
+ byAvailability?: Record<string, number> | undefined;
750
+ }>;
751
+ };
752
+ };
753
+ getSaBookings: {
754
+ summary: "Get SA bookings widget data";
755
+ description: "Returns booking management summary for Second Agent dashboard";
756
+ method: "GET";
757
+ path: "/widgets/sa/bookings";
758
+ responses: {
759
+ 200: z.ZodObject<{
760
+ total: z.ZodNumber;
761
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
762
+ activeBookings: z.ZodNumber;
763
+ waitingForConfirmation: z.ZodNumber;
764
+ upcomingStarts: z.ZodNumber;
765
+ }, "strip", z.ZodTypeAny, {
766
+ total: number;
767
+ byStatus: Record<string, number>;
768
+ activeBookings: number;
769
+ upcomingStarts: number;
770
+ waitingForConfirmation: number;
771
+ }, {
772
+ total: number;
773
+ byStatus: Record<string, number>;
774
+ activeBookings: number;
775
+ upcomingStarts: number;
776
+ waitingForConfirmation: number;
777
+ }>;
778
+ };
779
+ };
780
+ getSaActives: {
781
+ summary: "Get SA actives widget data";
782
+ description: "Returns today's active workers from SA perspective";
783
+ method: "GET";
784
+ path: "/widgets/sa/actives";
785
+ responses: {
786
+ 200: z.ZodObject<{
787
+ today: z.ZodObject<{
788
+ total: z.ZodNumber;
789
+ byStatusSa: z.ZodRecord<z.ZodString, z.ZodNumber>;
790
+ }, "strip", z.ZodTypeAny, {
791
+ total: number;
792
+ byStatusSa: Record<string, number>;
793
+ }, {
794
+ total: number;
795
+ byStatusSa: Record<string, number>;
796
+ }>;
797
+ pendingConfirmation: z.ZodNumber;
798
+ }, "strip", z.ZodTypeAny, {
799
+ today: {
800
+ total: number;
801
+ byStatusSa: Record<string, number>;
802
+ };
803
+ pendingConfirmation: number;
804
+ }, {
805
+ today: {
806
+ total: number;
807
+ byStatusSa: Record<string, number>;
808
+ };
809
+ pendingConfirmation: number;
810
+ }>;
811
+ };
812
+ };
813
+ getActivesTrend: {
814
+ summary: "Get actives historical trend";
815
+ query: z.ZodObject<{
816
+ startDate: z.ZodString;
817
+ endDate: z.ZodString;
818
+ }, "strip", z.ZodTypeAny, {
819
+ startDate: string;
820
+ endDate: string;
821
+ }, {
822
+ startDate: string;
823
+ endDate: string;
824
+ }>;
825
+ description: "Returns time-series data for actives over a date range";
826
+ method: "GET";
827
+ path: "/trends/actives";
828
+ responses: {
829
+ 200: z.ZodObject<{
830
+ data: z.ZodArray<z.ZodObject<{
831
+ date: z.ZodString;
832
+ total: z.ZodNumber;
833
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
834
+ }, "strip", z.ZodTypeAny, {
835
+ date: string;
836
+ total: number;
837
+ byStatus: Record<string, number>;
838
+ }, {
839
+ date: string;
840
+ total: number;
841
+ byStatus: Record<string, number>;
842
+ }>, "many">;
843
+ summary: z.ZodObject<{
844
+ averageDaily: z.ZodNumber;
845
+ peakDay: z.ZodNullable<z.ZodString>;
846
+ peakValue: z.ZodNumber;
847
+ }, "strip", z.ZodTypeAny, {
848
+ averageDaily: number;
849
+ peakDay: string | null;
850
+ peakValue: number;
851
+ }, {
852
+ averageDaily: number;
853
+ peakDay: string | null;
854
+ peakValue: number;
855
+ }>;
856
+ }, "strip", z.ZodTypeAny, {
857
+ summary: {
858
+ averageDaily: number;
859
+ peakDay: string | null;
860
+ peakValue: number;
861
+ };
862
+ data: {
863
+ date: string;
864
+ total: number;
865
+ byStatus: Record<string, number>;
866
+ }[];
867
+ }, {
868
+ summary: {
869
+ averageDaily: number;
870
+ peakDay: string | null;
871
+ peakValue: number;
872
+ };
873
+ data: {
874
+ date: string;
875
+ total: number;
876
+ byStatus: Record<string, number>;
877
+ }[];
878
+ }>;
879
+ };
880
+ };
881
+ getBookingsTrend: {
882
+ summary: "Get bookings historical trend";
883
+ query: z.ZodObject<{
884
+ startDate: z.ZodString;
885
+ endDate: z.ZodString;
886
+ }, "strip", z.ZodTypeAny, {
887
+ startDate: string;
888
+ endDate: string;
889
+ }, {
890
+ startDate: string;
891
+ endDate: string;
892
+ }>;
893
+ description: "Returns time-series data for bookings over a date range";
894
+ method: "GET";
895
+ path: "/trends/bookings";
896
+ responses: {
897
+ 200: z.ZodObject<{
898
+ data: z.ZodArray<z.ZodObject<{
899
+ date: z.ZodString;
900
+ total: z.ZodNumber;
901
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
902
+ }, "strip", z.ZodTypeAny, {
903
+ date: string;
904
+ total: number;
905
+ byStatus: Record<string, number>;
906
+ }, {
907
+ date: string;
908
+ total: number;
909
+ byStatus: Record<string, number>;
910
+ }>, "many">;
911
+ summary: z.ZodObject<{
912
+ averageDaily: z.ZodNumber;
913
+ totalCreated: z.ZodNumber;
914
+ }, "strip", z.ZodTypeAny, {
915
+ averageDaily: number;
916
+ totalCreated: number;
917
+ }, {
918
+ averageDaily: number;
919
+ totalCreated: number;
920
+ }>;
921
+ }, "strip", z.ZodTypeAny, {
922
+ summary: {
923
+ averageDaily: number;
924
+ totalCreated: number;
925
+ };
926
+ data: {
927
+ date: string;
928
+ total: number;
929
+ byStatus: Record<string, number>;
930
+ }[];
931
+ }, {
932
+ summary: {
933
+ averageDaily: number;
934
+ totalCreated: number;
935
+ };
936
+ data: {
937
+ date: string;
938
+ total: number;
939
+ byStatus: Record<string, number>;
940
+ }[];
941
+ }>;
942
+ };
943
+ };
944
+ getCallPerformanceTrend: {
945
+ summary: "Get call performance historical trend";
946
+ query: z.ZodObject<{
947
+ startDate: z.ZodString;
948
+ endDate: z.ZodString;
949
+ }, "strip", z.ZodTypeAny, {
950
+ startDate: string;
951
+ endDate: string;
952
+ }, {
953
+ startDate: string;
954
+ endDate: string;
955
+ }>;
956
+ description: "Returns time-series data for call performance over a date range";
957
+ method: "GET";
958
+ path: "/trends/call-performance";
959
+ responses: {
960
+ 200: z.ZodObject<{
961
+ data: z.ZodArray<z.ZodObject<{
962
+ date: z.ZodString;
963
+ totalCalls: z.ZodNumber;
964
+ averageRating: z.ZodNumber;
965
+ conversionRate: z.ZodNumber;
966
+ performanceScore: z.ZodNumber;
967
+ }, "strip", z.ZodTypeAny, {
968
+ date: string;
969
+ totalCalls: number;
970
+ averageRating: number;
971
+ conversionRate: number;
972
+ performanceScore: number;
973
+ }, {
974
+ date: string;
975
+ totalCalls: number;
976
+ averageRating: number;
977
+ conversionRate: number;
978
+ performanceScore: number;
979
+ }>, "many">;
980
+ summary: z.ZodObject<{
981
+ averageDailyCalls: z.ZodNumber;
982
+ overallConversionRate: z.ZodNumber;
983
+ overallAverageRating: z.ZodNumber;
984
+ }, "strip", z.ZodTypeAny, {
985
+ averageDailyCalls: number;
986
+ overallConversionRate: number;
987
+ overallAverageRating: number;
988
+ }, {
989
+ averageDailyCalls: number;
990
+ overallConversionRate: number;
991
+ overallAverageRating: number;
992
+ }>;
993
+ }, "strip", z.ZodTypeAny, {
994
+ summary: {
995
+ averageDailyCalls: number;
996
+ overallConversionRate: number;
997
+ overallAverageRating: number;
998
+ };
999
+ data: {
1000
+ date: string;
1001
+ totalCalls: number;
1002
+ averageRating: number;
1003
+ conversionRate: number;
1004
+ performanceScore: number;
1005
+ }[];
1006
+ }, {
1007
+ summary: {
1008
+ averageDailyCalls: number;
1009
+ overallConversionRate: number;
1010
+ overallAverageRating: number;
1011
+ };
1012
+ data: {
1013
+ date: string;
1014
+ totalCalls: number;
1015
+ averageRating: number;
1016
+ conversionRate: number;
1017
+ performanceScore: number;
1018
+ }[];
1019
+ }>;
1020
+ };
1021
+ };
1022
+ getWorkersTrend: {
1023
+ summary: "Get workers historical trend (SA only)";
1024
+ query: z.ZodObject<{
1025
+ startDate: z.ZodString;
1026
+ endDate: z.ZodString;
1027
+ }, "strip", z.ZodTypeAny, {
1028
+ startDate: string;
1029
+ endDate: string;
1030
+ }, {
1031
+ startDate: string;
1032
+ endDate: string;
1033
+ }>;
1034
+ description: "Returns time-series data for worker additions over a date range";
1035
+ method: "GET";
1036
+ path: "/trends/workers";
1037
+ responses: {
1038
+ 200: z.ZodObject<{
1039
+ data: z.ZodArray<z.ZodObject<{
1040
+ date: z.ZodString;
1041
+ added: z.ZodNumber;
1042
+ cumulativeTotal: z.ZodNumber;
1043
+ }, "strip", z.ZodTypeAny, {
1044
+ date: string;
1045
+ added: number;
1046
+ cumulativeTotal: number;
1047
+ }, {
1048
+ date: string;
1049
+ added: number;
1050
+ cumulativeTotal: number;
1051
+ }>, "many">;
1052
+ summary: z.ZodObject<{
1053
+ totalAdded: z.ZodNumber;
1054
+ averagePerDay: z.ZodNumber;
1055
+ }, "strip", z.ZodTypeAny, {
1056
+ totalAdded: number;
1057
+ averagePerDay: number;
1058
+ }, {
1059
+ totalAdded: number;
1060
+ averagePerDay: number;
1061
+ }>;
1062
+ }, "strip", z.ZodTypeAny, {
1063
+ summary: {
1064
+ totalAdded: number;
1065
+ averagePerDay: number;
1066
+ };
1067
+ data: {
1068
+ date: string;
1069
+ added: number;
1070
+ cumulativeTotal: number;
1071
+ }[];
1072
+ }, {
1073
+ summary: {
1074
+ totalAdded: number;
1075
+ averagePerDay: number;
1076
+ };
1077
+ data: {
1078
+ date: string;
1079
+ added: number;
1080
+ cumulativeTotal: number;
1081
+ }[];
1082
+ }>;
1083
+ };
1084
+ };
1085
+ getCollaborationsTrend: {
1086
+ summary: "Get collaborations historical trend (FA only)";
1087
+ query: z.ZodObject<{
1088
+ startDate: z.ZodString;
1089
+ endDate: z.ZodString;
1090
+ }, "strip", z.ZodTypeAny, {
1091
+ startDate: string;
1092
+ endDate: string;
1093
+ }, {
1094
+ startDate: string;
1095
+ endDate: string;
1096
+ }>;
1097
+ description: "Returns time-series data for collaborations over a date range";
1098
+ method: "GET";
1099
+ path: "/trends/collaborations";
1100
+ responses: {
1101
+ 200: z.ZodObject<{
1102
+ data: z.ZodArray<z.ZodObject<{
1103
+ date: z.ZodString;
1104
+ created: z.ZodNumber;
1105
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
1106
+ }, "strip", z.ZodTypeAny, {
1107
+ date: string;
1108
+ byStatus: Record<string, number>;
1109
+ created: number;
1110
+ }, {
1111
+ date: string;
1112
+ byStatus: Record<string, number>;
1113
+ created: number;
1114
+ }>, "many">;
1115
+ summary: z.ZodObject<{
1116
+ totalCreated: z.ZodNumber;
1117
+ activeCount: z.ZodNumber;
1118
+ }, "strip", z.ZodTypeAny, {
1119
+ totalCreated: number;
1120
+ activeCount: number;
1121
+ }, {
1122
+ totalCreated: number;
1123
+ activeCount: number;
1124
+ }>;
1125
+ }, "strip", z.ZodTypeAny, {
1126
+ summary: {
1127
+ totalCreated: number;
1128
+ activeCount: number;
1129
+ };
1130
+ data: {
1131
+ date: string;
1132
+ byStatus: Record<string, number>;
1133
+ created: number;
1134
+ }[];
1135
+ }, {
1136
+ summary: {
1137
+ totalCreated: number;
1138
+ activeCount: number;
1139
+ };
1140
+ data: {
1141
+ date: string;
1142
+ byStatus: Record<string, number>;
1143
+ created: number;
1144
+ }[];
1145
+ }>;
1146
+ };
1147
+ };
1148
+ };
1149
+ export type DateRangeQuery = z.infer<typeof DateRangeQuerySchema>;
1150
+ export type TrendDataPoint = z.infer<typeof TrendDataPointSchema>;
1151
+ export type FaPipelineWidget = z.infer<typeof FaPipelineWidgetSchema>;
1152
+ export type FaClientsWidget = z.infer<typeof FaClientsWidgetSchema>;
1153
+ export type FaCheckingsWidget = z.infer<typeof FaCheckingsWidgetSchema>;
1154
+ export type FaCallHistoryWidget = z.infer<typeof FaCallHistoryWidgetSchema>;
1155
+ export type FaActivesWidget = z.infer<typeof FaActivesWidgetSchema>;
1156
+ export type FaBookingsWidget = z.infer<typeof FaBookingsWidgetSchema>;
1157
+ export type SaWorkersWidget = z.infer<typeof SaWorkersWidgetSchema>;
1158
+ export type SaBookingsWidget = z.infer<typeof SaBookingsWidgetSchema>;
1159
+ export type SaActivesWidget = z.infer<typeof SaActivesWidgetSchema>;
1160
+ export type ActivesTrend = z.infer<typeof ActivesTrendSchema>;
1161
+ export type BookingsTrend = z.infer<typeof BookingsTrendSchema>;
1162
+ export type CallPerformanceTrend = z.infer<typeof CallPerformanceTrendSchema>;
1163
+ export type WorkersTrend = z.infer<typeof WorkersTrendSchema>;
1164
+ export type CollaborationsTrend = z.infer<typeof CollaborationsTrendSchema>;
1165
+ //# sourceMappingURL=dashboard-widgets.contract.d.ts.map