@dakkitor/api-contracts 1.1.108 → 1.1.111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actives/actives.contract.d.ts +3059 -3059
- package/dist/agent-client-links/agent-client-links.contract.d.ts +74 -74
- package/dist/bookings/bookings.contract.d.ts +11037 -11037
- package/dist/call-history/call-history.contract.d.ts +294 -294
- package/dist/client-contacts/client-contacts.contract.d.ts +186 -186
- package/dist/clients/clients.contract.d.ts +99 -99
- package/dist/clients/clients.contract.d.ts.map +1 -1
- package/dist/clients/clients.contract.js +5 -5
- package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +440 -440
- package/dist/collaborations/collaborations.contract.d.ts +328 -328
- package/dist/companies/companies.contract.d.ts +22 -22
- package/dist/curated-workers/curated-workers.contract.d.ts +76 -76
- package/dist/dashboards/agent-daily-metrics.contract.d.ts +3 -3
- package/dist/dashboards/dashboard-widgets.contract.d.ts +274 -194
- package/dist/dashboards/dashboard-widgets.contract.d.ts.map +1 -1
- package/dist/dashboards/dashboard-widgets.contract.js +130 -98
- package/dist/dashboards/dashboard.contract.d.ts +14 -14
- package/dist/files/files.contract.d.ts +24 -24
- package/dist/jobs/jobs.contract.d.ts +907 -907
- package/dist/lead-assignments/lead-assignments.contract.d.ts +160 -160
- package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +34 -34
- package/dist/lead-distribution/lead-distribution-config.contract.d.ts +7 -7
- package/dist/leads/leads.contract.d.ts +136 -136
- package/dist/postcodes/postcodes.contract.d.ts +18 -18
- package/dist/qualifications/qualifications.contract.d.ts +22 -22
- package/dist/trades/trades.contract.d.ts +16 -16
- package/dist/users/users.contract.d.ts +6 -6
- package/dist/workers/workers.contract.d.ts +288 -288
- package/package.json +41 -41
- package/dist/abilities/interconnection.json +0 -370
- package/dist/abilities/second-agent.abilities copy.json +0 -370
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-widgets.contract.d.ts","sourceRoot":"","sources":["../../contracts/dashboards/dashboard-widgets.contract.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-widgets.contract.d.ts","sourceRoot":"","sources":["../../contracts/dashboards/dashboard-widgets.contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,28 +7,42 @@
|
|
|
7
7
|
* Provides role-specific widgets for First Agent (FA) and Second Agent (SA).
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.dashboardWidgetsContract = exports.CollaborationsTrendSchema = exports.WorkersTrendSchema = exports.CallPerformanceTrendSchema = exports.BookingsTrendSchema = exports.ActivesTrendSchema = exports.SaActivesWidgetSchema = exports.SaBookingsWidgetSchema = exports.SaWorkersWidgetSchema = exports.FaBookingsWidgetSchema = exports.FaActivesWidgetSchema = exports.AllAgentsCallHistoryResponseSchema = exports.AllAgentsCallHistoryQuerySchema = exports.AgentCallHistoryItemSchema = exports.FaCallHistoryWidgetSchema = exports.FaCheckingsWidgetSchema = exports.FaClientsWidgetSchema = exports.FaPipelineWidgetSchema = exports.TrendDataPointSchema = exports.DateRangeQuerySchema = void 0;
|
|
10
|
+
exports.dashboardWidgetsContract = exports.CollaborationsTrendSchema = exports.WorkersTrendSchema = exports.CallPerformanceTrendSchema = exports.BookingsTrendSchema = exports.ActivesTrendSchema = exports.SaActivesWidgetSchema = exports.SaBookingsWidgetSchema = exports.SaWorkersWidgetSchema = exports.FaBookingsWidgetSchema = exports.FaActivesWidgetSchema = exports.AllAgentsCallHistoryResponseSchema = exports.AllAgentsCallHistoryQuerySchema = exports.AgentCallHistoryItemSchema = exports.FaCallHistoryWidgetSchema = exports.FaCheckingsWidgetSchema = exports.FaClientsWidgetSchema = exports.FaPipelineWidgetSchema = exports.TrendDataPointSchema = exports.DateRangeQuerySchema = exports.DashboardWidgetQuerySchema = void 0;
|
|
11
11
|
const core_1 = require("@ts-rest/core");
|
|
12
12
|
const zod_1 = require("zod");
|
|
13
13
|
const pagination_schema_1 = require("../common/pagination.schema");
|
|
14
14
|
const pagination_query_schema_1 = require("../common/pagination-query.schema");
|
|
15
|
+
const clients_contract_1 = require("../clients/clients.contract");
|
|
16
|
+
const collaborations_contract_1 = require("../collaborations/collaborations.contract");
|
|
17
|
+
const bookings_contract_1 = require("../bookings/bookings.contract");
|
|
18
|
+
const actives_contract_1 = require("../actives/actives.contract");
|
|
19
|
+
const workers_contract_1 = require("../workers/workers.contract");
|
|
15
20
|
const c = (0, core_1.initContract)();
|
|
16
21
|
// =============================================================================
|
|
17
22
|
// COMMON SCHEMAS
|
|
18
23
|
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Common query parameters for dashboard widgets
|
|
26
|
+
*/
|
|
27
|
+
exports.DashboardWidgetQuerySchema = zod_1.z.object({
|
|
28
|
+
date: zod_1.z
|
|
29
|
+
.string()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("Date in YYYY-MM-DD format. Defaults to today if not provided."),
|
|
32
|
+
});
|
|
19
33
|
/**
|
|
20
34
|
* Date range filter for historical queries
|
|
21
35
|
*/
|
|
22
36
|
exports.DateRangeQuerySchema = zod_1.z.object({
|
|
23
|
-
startDate: zod_1.z.string().describe(
|
|
24
|
-
endDate: zod_1.z.string().describe(
|
|
37
|
+
startDate: zod_1.z.string().describe("Start date in YYYY-MM-DD format"),
|
|
38
|
+
endDate: zod_1.z.string().describe("End date in YYYY-MM-DD format"),
|
|
25
39
|
});
|
|
26
40
|
/**
|
|
27
41
|
* Common trend data point for time-series charts
|
|
28
42
|
*/
|
|
29
43
|
exports.TrendDataPointSchema = zod_1.z.object({
|
|
30
|
-
date: zod_1.z.string().describe(
|
|
31
|
-
value: zod_1.z.number().describe(
|
|
44
|
+
date: zod_1.z.string().describe("Date in YYYY-MM-DD format"),
|
|
45
|
+
value: zod_1.z.number().describe("Metric value for this date"),
|
|
32
46
|
});
|
|
33
47
|
// =============================================================================
|
|
34
48
|
// FIRST AGENT (FA) WIDGET SCHEMAS
|
|
@@ -39,8 +53,8 @@ exports.TrendDataPointSchema = zod_1.z.object({
|
|
|
39
53
|
exports.FaPipelineWidgetSchema = zod_1.z.object({
|
|
40
54
|
collaborations: zod_1.z.object({
|
|
41
55
|
total: zod_1.z.number(),
|
|
42
|
-
byStatus: zod_1.z.record(
|
|
43
|
-
recentCount: zod_1.z.number().describe(
|
|
56
|
+
byStatus: zod_1.z.record(collaborations_contract_1.CollaborationStatusSchema, zod_1.z.number()),
|
|
57
|
+
recentCount: zod_1.z.number().describe("Collaborations created in last 7 days"),
|
|
44
58
|
}),
|
|
45
59
|
summary: zod_1.z.object({
|
|
46
60
|
activeCollaborations: zod_1.z.number(),
|
|
@@ -52,8 +66,8 @@ exports.FaPipelineWidgetSchema = zod_1.z.object({
|
|
|
52
66
|
*/
|
|
53
67
|
exports.FaClientsWidgetSchema = zod_1.z.object({
|
|
54
68
|
total: zod_1.z.number(),
|
|
55
|
-
byStatus: zod_1.z.record(
|
|
56
|
-
recentlyAdded: zod_1.z.number().describe(
|
|
69
|
+
byStatus: zod_1.z.record(clients_contract_1.ClientStatusSchema, zod_1.z.number()),
|
|
70
|
+
recentlyAdded: zod_1.z.number().describe("Clients added in last 7 days"),
|
|
57
71
|
pendingVerification: zod_1.z.number(),
|
|
58
72
|
});
|
|
59
73
|
/**
|
|
@@ -63,7 +77,7 @@ exports.FaCheckingsWidgetSchema = zod_1.z.object({
|
|
|
63
77
|
total: zod_1.z.number(),
|
|
64
78
|
byDecision: zod_1.z.record(zod_1.z.string(), zod_1.z.number()),
|
|
65
79
|
pendingCount: zod_1.z.number(),
|
|
66
|
-
recentlyCompleted: zod_1.z.number().describe(
|
|
80
|
+
recentlyCompleted: zod_1.z.number().describe("Checkings completed in last 7 days"),
|
|
67
81
|
});
|
|
68
82
|
/**
|
|
69
83
|
* FA Call History Widget - Call performance metrics
|
|
@@ -72,13 +86,18 @@ exports.FaCallHistoryWidgetSchema = zod_1.z.object({
|
|
|
72
86
|
totalCalls: zod_1.z.number(),
|
|
73
87
|
callsToday: zod_1.z.number(),
|
|
74
88
|
callsThisWeek: zod_1.z.number(),
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
89
|
+
averageRatingToday: zod_1.z
|
|
90
|
+
.number()
|
|
91
|
+
.describe("Average rating weight for today (0-1)"),
|
|
92
|
+
efficientCallsToday: zod_1.z
|
|
93
|
+
.number()
|
|
94
|
+
.describe("Number of calls today with rating >= 3"),
|
|
95
|
+
conversionRate: zod_1.z.number().describe("Conversion rate (0-1)"),
|
|
96
|
+
performanceScore: zod_1.z.number().describe("Overall performance score (0-100)"),
|
|
97
|
+
performanceTier: zod_1.z.enum(["high", "medium", "low", "new"]),
|
|
79
98
|
ratingBreakdown: zod_1.z
|
|
80
99
|
.record(zod_1.z.string(), zod_1.z.number())
|
|
81
|
-
.describe(
|
|
100
|
+
.describe("Calls by rating type"),
|
|
82
101
|
});
|
|
83
102
|
/**
|
|
84
103
|
* Agent Call History Item - Call performance metrics for a single agent
|
|
@@ -87,12 +106,12 @@ exports.AgentCallHistoryItemSchema = zod_1.z.object({
|
|
|
87
106
|
agentId: zod_1.z.string().uuid(),
|
|
88
107
|
agentName: zod_1.z.string(),
|
|
89
108
|
agentEmail: zod_1.z.string().email(),
|
|
90
|
-
callsOnDate: zod_1.z.number().describe(
|
|
91
|
-
totalCalls: zod_1.z.number().describe(
|
|
92
|
-
averageRating: zod_1.z.number().describe(
|
|
93
|
-
conversionRate: zod_1.z.number().describe(
|
|
94
|
-
performanceScore: zod_1.z.number().describe(
|
|
95
|
-
performanceTier: zod_1.z.enum([
|
|
109
|
+
callsOnDate: zod_1.z.number().describe("Number of calls on the specified date"),
|
|
110
|
+
totalCalls: zod_1.z.number().describe("Total calls (all time)"),
|
|
111
|
+
averageRating: zod_1.z.number().describe("Average rating weight (0-1)"),
|
|
112
|
+
conversionRate: zod_1.z.number().describe("Conversion rate (0-1)"),
|
|
113
|
+
performanceScore: zod_1.z.number().describe("Overall performance score (0-100)"),
|
|
114
|
+
performanceTier: zod_1.z.enum(["high", "medium", "low", "new"]),
|
|
96
115
|
});
|
|
97
116
|
/**
|
|
98
117
|
* Query parameters for all agents call history endpoint
|
|
@@ -101,7 +120,7 @@ exports.AllAgentsCallHistoryQuerySchema = pagination_query_schema_1.PaginationQu
|
|
|
101
120
|
date: zod_1.z
|
|
102
121
|
.string()
|
|
103
122
|
.optional()
|
|
104
|
-
.describe(
|
|
123
|
+
.describe("Date in YYYY-MM-DD format. Defaults to today if not provided."),
|
|
105
124
|
});
|
|
106
125
|
/**
|
|
107
126
|
* Paginated response for all agents call history
|
|
@@ -113,19 +132,21 @@ exports.AllAgentsCallHistoryResponseSchema = (0, pagination_schema_1.createPagin
|
|
|
113
132
|
exports.FaActivesWidgetSchema = zod_1.z.object({
|
|
114
133
|
today: zod_1.z.object({
|
|
115
134
|
total: zod_1.z.number(),
|
|
116
|
-
byStatusFa: zod_1.z.record(
|
|
135
|
+
byStatusFa: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
117
136
|
}),
|
|
118
|
-
pendingApproval: zod_1.z.number().describe('Actives pending FA approval'),
|
|
119
137
|
});
|
|
120
138
|
/**
|
|
121
139
|
* FA Bookings Widget - Booking management (FA perspective)
|
|
122
140
|
*/
|
|
123
141
|
exports.FaBookingsWidgetSchema = zod_1.z.object({
|
|
124
|
-
|
|
125
|
-
byStatus: zod_1.z.record(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
142
|
+
totalToday: zod_1.z.number().describe("Total bookings created today"),
|
|
143
|
+
byStatus: zod_1.z.record(bookings_contract_1.BookingStatusSchema, zod_1.z.number()),
|
|
144
|
+
ongoingBookings: zod_1.z
|
|
145
|
+
.number()
|
|
146
|
+
.describe("Bookings where today is between startDate and endDate (or no endDate)"),
|
|
147
|
+
startingToday: zod_1.z.number().describe("Bookings with startDate equal to today"),
|
|
148
|
+
pendingConfirmation: zod_1.z.number().describe("Bookings awaiting confirmation"),
|
|
149
|
+
upcomingStarts: zod_1.z.number().describe("All future bookings not starting today"),
|
|
129
150
|
});
|
|
130
151
|
// =============================================================================
|
|
131
152
|
// SECOND AGENT (SA) WIDGET SCHEMAS
|
|
@@ -134,20 +155,23 @@ exports.FaBookingsWidgetSchema = zod_1.z.object({
|
|
|
134
155
|
* SA Workers Widget - Worker recruitment summary
|
|
135
156
|
*/
|
|
136
157
|
exports.SaWorkersWidgetSchema = zod_1.z.object({
|
|
137
|
-
total: zod_1.z.number().describe(
|
|
158
|
+
total: zod_1.z.number().describe("Total workers created by this agent"),
|
|
138
159
|
addedThisWeek: zod_1.z.number(),
|
|
139
160
|
addedThisMonth: zod_1.z.number(),
|
|
140
|
-
byAvailability: zod_1.z.record(
|
|
161
|
+
byAvailability: zod_1.z.record(workers_contract_1.AvailabilitySchema, zod_1.z.number()).optional(),
|
|
141
162
|
});
|
|
142
163
|
/**
|
|
143
164
|
* SA Bookings Widget - Booking management (SA perspective)
|
|
144
165
|
*/
|
|
145
166
|
exports.SaBookingsWidgetSchema = zod_1.z.object({
|
|
146
|
-
|
|
147
|
-
byStatus: zod_1.z.record(
|
|
148
|
-
|
|
167
|
+
totalToday: zod_1.z.number().describe("Total bookings created today"),
|
|
168
|
+
byStatus: zod_1.z.record(bookings_contract_1.BookingStatusSchema, zod_1.z.number()),
|
|
169
|
+
ongoingBookings: zod_1.z
|
|
170
|
+
.number()
|
|
171
|
+
.describe("Bookings where today is between startDate and endDate (or no endDate)"),
|
|
172
|
+
startingToday: zod_1.z.number().describe("Bookings with startDate equal to today"),
|
|
149
173
|
waitingForConfirmation: zod_1.z.number(),
|
|
150
|
-
upcomingStarts: zod_1.z.number().describe(
|
|
174
|
+
upcomingStarts: zod_1.z.number().describe("All future bookings not starting today"),
|
|
151
175
|
});
|
|
152
176
|
/**
|
|
153
177
|
* SA Actives Widget - Today's active workers (SA perspective)
|
|
@@ -155,9 +179,8 @@ exports.SaBookingsWidgetSchema = zod_1.z.object({
|
|
|
155
179
|
exports.SaActivesWidgetSchema = zod_1.z.object({
|
|
156
180
|
today: zod_1.z.object({
|
|
157
181
|
total: zod_1.z.number(),
|
|
158
|
-
byStatusSa: zod_1.z.record(
|
|
182
|
+
byStatusSa: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
159
183
|
}),
|
|
160
|
-
pendingConfirmation: zod_1.z.number().describe('Actives pending SA confirmation'),
|
|
161
184
|
});
|
|
162
185
|
// =============================================================================
|
|
163
186
|
// HISTORICAL TREND SCHEMAS
|
|
@@ -169,7 +192,7 @@ exports.ActivesTrendSchema = zod_1.z.object({
|
|
|
169
192
|
data: zod_1.z.array(zod_1.z.object({
|
|
170
193
|
date: zod_1.z.string(),
|
|
171
194
|
total: zod_1.z.number(),
|
|
172
|
-
byStatus: zod_1.z.record(
|
|
195
|
+
byStatus: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
173
196
|
})),
|
|
174
197
|
summary: zod_1.z.object({
|
|
175
198
|
averageDaily: zod_1.z.number(),
|
|
@@ -184,7 +207,7 @@ exports.BookingsTrendSchema = zod_1.z.object({
|
|
|
184
207
|
data: zod_1.z.array(zod_1.z.object({
|
|
185
208
|
date: zod_1.z.string(),
|
|
186
209
|
total: zod_1.z.number(),
|
|
187
|
-
byStatus: zod_1.z.record(
|
|
210
|
+
byStatus: zod_1.z.record(bookings_contract_1.BookingStatusSchema, zod_1.z.number()),
|
|
188
211
|
})),
|
|
189
212
|
summary: zod_1.z.object({
|
|
190
213
|
averageDaily: zod_1.z.number(),
|
|
@@ -229,7 +252,7 @@ exports.CollaborationsTrendSchema = zod_1.z.object({
|
|
|
229
252
|
data: zod_1.z.array(zod_1.z.object({
|
|
230
253
|
date: zod_1.z.string(),
|
|
231
254
|
created: zod_1.z.number(),
|
|
232
|
-
byStatus: zod_1.z.record(
|
|
255
|
+
byStatus: zod_1.z.record(collaborations_contract_1.CollaborationStatusSchema, zod_1.z.number()),
|
|
233
256
|
})),
|
|
234
257
|
summary: zod_1.z.object({
|
|
235
258
|
totalCreated: zod_1.z.number(),
|
|
@@ -244,150 +267,159 @@ exports.dashboardWidgetsContract = c.router({
|
|
|
244
267
|
// FIRST AGENT (FA) WIDGETS
|
|
245
268
|
// -------------------------------------------------------------------------
|
|
246
269
|
getFaPipeline: {
|
|
247
|
-
method:
|
|
248
|
-
path:
|
|
270
|
+
method: "GET",
|
|
271
|
+
path: "/widgets/fa/pipeline",
|
|
272
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
249
273
|
responses: {
|
|
250
274
|
200: exports.FaPipelineWidgetSchema,
|
|
251
275
|
},
|
|
252
|
-
summary:
|
|
253
|
-
description:
|
|
276
|
+
summary: "Get FA collaboration pipeline widget data",
|
|
277
|
+
description: "Returns collaboration pipeline overview for First Agent dashboard",
|
|
254
278
|
},
|
|
255
279
|
getFaClients: {
|
|
256
|
-
method:
|
|
257
|
-
path:
|
|
280
|
+
method: "GET",
|
|
281
|
+
path: "/widgets/fa/clients",
|
|
282
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
258
283
|
responses: {
|
|
259
284
|
200: exports.FaClientsWidgetSchema,
|
|
260
285
|
},
|
|
261
|
-
summary:
|
|
262
|
-
description:
|
|
286
|
+
summary: "Get FA clients widget data",
|
|
287
|
+
description: "Returns client portfolio summary for First Agent dashboard",
|
|
263
288
|
},
|
|
264
289
|
getFaCheckings: {
|
|
265
|
-
method:
|
|
266
|
-
path:
|
|
290
|
+
method: "GET",
|
|
291
|
+
path: "/widgets/fa/checkings",
|
|
292
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
267
293
|
responses: {
|
|
268
294
|
200: exports.FaCheckingsWidgetSchema,
|
|
269
295
|
},
|
|
270
|
-
summary:
|
|
271
|
-
description:
|
|
296
|
+
summary: "Get FA collaboration checkings widget data",
|
|
297
|
+
description: "Returns collaboration checking status for First Agent dashboard",
|
|
272
298
|
},
|
|
273
299
|
getFaCallHistory: {
|
|
274
|
-
method:
|
|
275
|
-
path:
|
|
300
|
+
method: "GET",
|
|
301
|
+
path: "/widgets/fa/call-history",
|
|
302
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
276
303
|
responses: {
|
|
277
304
|
200: exports.FaCallHistoryWidgetSchema,
|
|
278
305
|
},
|
|
279
|
-
summary:
|
|
280
|
-
description:
|
|
306
|
+
summary: "Get FA call history widget data",
|
|
307
|
+
description: "Returns call performance metrics for First Agent dashboard",
|
|
281
308
|
},
|
|
282
309
|
getAllAvailableAgentsCallHistory: {
|
|
283
|
-
method:
|
|
284
|
-
path:
|
|
310
|
+
method: "GET",
|
|
311
|
+
path: "/widgets/agents/call-history",
|
|
285
312
|
query: exports.AllAgentsCallHistoryQuerySchema,
|
|
286
313
|
responses: {
|
|
287
314
|
200: exports.AllAgentsCallHistoryResponseSchema,
|
|
288
315
|
},
|
|
289
|
-
summary:
|
|
290
|
-
description:
|
|
316
|
+
summary: "Get call history for all available agents",
|
|
317
|
+
description: "Returns paginated call performance metrics for all agents marked as available in lead distribution",
|
|
291
318
|
},
|
|
292
319
|
getFaActives: {
|
|
293
|
-
method:
|
|
294
|
-
path:
|
|
320
|
+
method: "GET",
|
|
321
|
+
path: "/widgets/fa/actives",
|
|
322
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
295
323
|
responses: {
|
|
296
324
|
200: exports.FaActivesWidgetSchema,
|
|
297
325
|
},
|
|
298
|
-
summary:
|
|
326
|
+
summary: "Get FA actives widget data",
|
|
299
327
|
description: "Returns today's active workers from FA perspective",
|
|
300
328
|
},
|
|
301
329
|
getFaBookings: {
|
|
302
|
-
method:
|
|
303
|
-
path:
|
|
330
|
+
method: "GET",
|
|
331
|
+
path: "/widgets/fa/bookings",
|
|
332
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
304
333
|
responses: {
|
|
305
334
|
200: exports.FaBookingsWidgetSchema,
|
|
306
335
|
},
|
|
307
|
-
summary:
|
|
308
|
-
description:
|
|
336
|
+
summary: "Get FA bookings widget data",
|
|
337
|
+
description: "Returns booking management summary for First Agent dashboard",
|
|
309
338
|
},
|
|
310
339
|
// -------------------------------------------------------------------------
|
|
311
340
|
// SECOND AGENT (SA) WIDGETS
|
|
312
341
|
// -------------------------------------------------------------------------
|
|
313
342
|
getSaWorkers: {
|
|
314
|
-
method:
|
|
315
|
-
path:
|
|
343
|
+
method: "GET",
|
|
344
|
+
path: "/widgets/sa/workers",
|
|
345
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
316
346
|
responses: {
|
|
317
347
|
200: exports.SaWorkersWidgetSchema,
|
|
318
348
|
},
|
|
319
|
-
summary:
|
|
320
|
-
description:
|
|
349
|
+
summary: "Get SA workers widget data",
|
|
350
|
+
description: "Returns worker recruitment summary for Second Agent dashboard",
|
|
321
351
|
},
|
|
322
352
|
getSaBookings: {
|
|
323
|
-
method:
|
|
324
|
-
path:
|
|
353
|
+
method: "GET",
|
|
354
|
+
path: "/widgets/sa/bookings",
|
|
355
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
325
356
|
responses: {
|
|
326
357
|
200: exports.SaBookingsWidgetSchema,
|
|
327
358
|
},
|
|
328
|
-
summary:
|
|
329
|
-
description:
|
|
359
|
+
summary: "Get SA bookings widget data",
|
|
360
|
+
description: "Returns booking management summary for Second Agent dashboard",
|
|
330
361
|
},
|
|
331
362
|
getSaActives: {
|
|
332
|
-
method:
|
|
333
|
-
path:
|
|
363
|
+
method: "GET",
|
|
364
|
+
path: "/widgets/sa/actives",
|
|
365
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
334
366
|
responses: {
|
|
335
367
|
200: exports.SaActivesWidgetSchema,
|
|
336
368
|
},
|
|
337
|
-
summary:
|
|
369
|
+
summary: "Get SA actives widget data",
|
|
338
370
|
description: "Returns today's active workers from SA perspective",
|
|
339
371
|
},
|
|
340
372
|
// -------------------------------------------------------------------------
|
|
341
373
|
// HISTORICAL TRENDS
|
|
342
374
|
// -------------------------------------------------------------------------
|
|
343
375
|
getActivesTrend: {
|
|
344
|
-
method:
|
|
345
|
-
path:
|
|
376
|
+
method: "GET",
|
|
377
|
+
path: "/trends/actives",
|
|
346
378
|
query: exports.DateRangeQuerySchema,
|
|
347
379
|
responses: {
|
|
348
380
|
200: exports.ActivesTrendSchema,
|
|
349
381
|
},
|
|
350
|
-
summary:
|
|
351
|
-
description:
|
|
382
|
+
summary: "Get actives historical trend",
|
|
383
|
+
description: "Returns time-series data for actives over a date range",
|
|
352
384
|
},
|
|
353
385
|
getBookingsTrend: {
|
|
354
|
-
method:
|
|
355
|
-
path:
|
|
386
|
+
method: "GET",
|
|
387
|
+
path: "/trends/bookings",
|
|
356
388
|
query: exports.DateRangeQuerySchema,
|
|
357
389
|
responses: {
|
|
358
390
|
200: exports.BookingsTrendSchema,
|
|
359
391
|
},
|
|
360
|
-
summary:
|
|
361
|
-
description:
|
|
392
|
+
summary: "Get bookings historical trend",
|
|
393
|
+
description: "Returns time-series data for bookings over a date range",
|
|
362
394
|
},
|
|
363
395
|
getCallPerformanceTrend: {
|
|
364
|
-
method:
|
|
365
|
-
path:
|
|
396
|
+
method: "GET",
|
|
397
|
+
path: "/trends/call-performance",
|
|
366
398
|
query: exports.DateRangeQuerySchema,
|
|
367
399
|
responses: {
|
|
368
400
|
200: exports.CallPerformanceTrendSchema,
|
|
369
401
|
},
|
|
370
|
-
summary:
|
|
371
|
-
description:
|
|
402
|
+
summary: "Get call performance historical trend",
|
|
403
|
+
description: "Returns time-series data for call performance over a date range",
|
|
372
404
|
},
|
|
373
405
|
getWorkersTrend: {
|
|
374
|
-
method:
|
|
375
|
-
path:
|
|
406
|
+
method: "GET",
|
|
407
|
+
path: "/trends/workers",
|
|
376
408
|
query: exports.DateRangeQuerySchema,
|
|
377
409
|
responses: {
|
|
378
410
|
200: exports.WorkersTrendSchema,
|
|
379
411
|
},
|
|
380
|
-
summary:
|
|
381
|
-
description:
|
|
412
|
+
summary: "Get workers historical trend (SA only)",
|
|
413
|
+
description: "Returns time-series data for worker additions over a date range",
|
|
382
414
|
},
|
|
383
415
|
getCollaborationsTrend: {
|
|
384
|
-
method:
|
|
385
|
-
path:
|
|
416
|
+
method: "GET",
|
|
417
|
+
path: "/trends/collaborations",
|
|
386
418
|
query: exports.DateRangeQuerySchema,
|
|
387
419
|
responses: {
|
|
388
420
|
200: exports.CollaborationsTrendSchema,
|
|
389
421
|
},
|
|
390
|
-
summary:
|
|
391
|
-
description:
|
|
422
|
+
summary: "Get collaborations historical trend (FA only)",
|
|
423
|
+
description: "Returns time-series data for collaborations over a date range",
|
|
392
424
|
},
|
|
393
425
|
});
|
|
@@ -6,14 +6,14 @@ export declare const PerformanceMetricsSchema: z.ZodObject<{
|
|
|
6
6
|
status: z.ZodEnum<["AVAILABLE", "PAUSED", "EXCLUDED"]>;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
8
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
9
|
-
conversionRate: number;
|
|
10
9
|
score: number;
|
|
11
10
|
tier: string;
|
|
11
|
+
conversionRate: number;
|
|
12
12
|
}, {
|
|
13
13
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
14
|
-
conversionRate: number;
|
|
15
14
|
score: number;
|
|
16
15
|
tier: string;
|
|
16
|
+
conversionRate: number;
|
|
17
17
|
}>;
|
|
18
18
|
export declare const DashboardMetricsSchema: z.ZodObject<{
|
|
19
19
|
totalJobs: z.ZodNumber;
|
|
@@ -29,14 +29,14 @@ export declare const DashboardMetricsSchema: z.ZodObject<{
|
|
|
29
29
|
status: z.ZodEnum<["AVAILABLE", "PAUSED", "EXCLUDED"]>;
|
|
30
30
|
}, "strip", z.ZodTypeAny, {
|
|
31
31
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
32
|
-
conversionRate: number;
|
|
33
32
|
score: number;
|
|
34
33
|
tier: string;
|
|
34
|
+
conversionRate: number;
|
|
35
35
|
}, {
|
|
36
36
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
37
|
-
conversionRate: number;
|
|
38
37
|
score: number;
|
|
39
38
|
tier: string;
|
|
39
|
+
conversionRate: number;
|
|
40
40
|
}>>;
|
|
41
41
|
totalCollaborations: z.ZodNumber;
|
|
42
42
|
collaborationsByStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
@@ -52,9 +52,9 @@ export declare const DashboardMetricsSchema: z.ZodObject<{
|
|
|
52
52
|
collaborationCheckingsByStatus: Record<string, number>;
|
|
53
53
|
performance: {
|
|
54
54
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
55
|
-
conversionRate: number;
|
|
56
55
|
score: number;
|
|
57
56
|
tier: string;
|
|
57
|
+
conversionRate: number;
|
|
58
58
|
} | null;
|
|
59
59
|
totalCollaborations: number;
|
|
60
60
|
collaborationsByStatus: Record<string, number>;
|
|
@@ -70,9 +70,9 @@ export declare const DashboardMetricsSchema: z.ZodObject<{
|
|
|
70
70
|
collaborationCheckingsByStatus: Record<string, number>;
|
|
71
71
|
performance: {
|
|
72
72
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
73
|
-
conversionRate: number;
|
|
74
73
|
score: number;
|
|
75
74
|
tier: string;
|
|
75
|
+
conversionRate: number;
|
|
76
76
|
} | null;
|
|
77
77
|
totalCollaborations: number;
|
|
78
78
|
collaborationsByStatus: Record<string, number>;
|
|
@@ -116,17 +116,17 @@ export declare const AgentCallPerformanceMetricsSchema: z.ZodObject<{
|
|
|
116
116
|
performanceTier: z.ZodEnum<["high", "medium", "low", "new"]>;
|
|
117
117
|
}, "strip", z.ZodTypeAny, {
|
|
118
118
|
date: string;
|
|
119
|
-
conversionRate: number;
|
|
120
119
|
totalCalls: number;
|
|
121
120
|
averageRatingWeight: number;
|
|
121
|
+
conversionRate: number;
|
|
122
122
|
successVariance: number;
|
|
123
123
|
performanceScore: number;
|
|
124
124
|
performanceTier: "high" | "medium" | "low" | "new";
|
|
125
125
|
}, {
|
|
126
126
|
date: string;
|
|
127
|
-
conversionRate: number;
|
|
128
127
|
totalCalls: number;
|
|
129
128
|
averageRatingWeight: number;
|
|
129
|
+
conversionRate: number;
|
|
130
130
|
successVariance: number;
|
|
131
131
|
performanceScore: number;
|
|
132
132
|
performanceTier: "high" | "medium" | "low" | "new";
|
|
@@ -171,14 +171,14 @@ export declare const dashboardContract: {
|
|
|
171
171
|
status: z.ZodEnum<["AVAILABLE", "PAUSED", "EXCLUDED"]>;
|
|
172
172
|
}, "strip", z.ZodTypeAny, {
|
|
173
173
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
174
|
-
conversionRate: number;
|
|
175
174
|
score: number;
|
|
176
175
|
tier: string;
|
|
176
|
+
conversionRate: number;
|
|
177
177
|
}, {
|
|
178
178
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
179
|
-
conversionRate: number;
|
|
180
179
|
score: number;
|
|
181
180
|
tier: string;
|
|
181
|
+
conversionRate: number;
|
|
182
182
|
}>>;
|
|
183
183
|
totalCollaborations: z.ZodNumber;
|
|
184
184
|
collaborationsByStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
@@ -194,9 +194,9 @@ export declare const dashboardContract: {
|
|
|
194
194
|
collaborationCheckingsByStatus: Record<string, number>;
|
|
195
195
|
performance: {
|
|
196
196
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
197
|
-
conversionRate: number;
|
|
198
197
|
score: number;
|
|
199
198
|
tier: string;
|
|
199
|
+
conversionRate: number;
|
|
200
200
|
} | null;
|
|
201
201
|
totalCollaborations: number;
|
|
202
202
|
collaborationsByStatus: Record<string, number>;
|
|
@@ -212,9 +212,9 @@ export declare const dashboardContract: {
|
|
|
212
212
|
collaborationCheckingsByStatus: Record<string, number>;
|
|
213
213
|
performance: {
|
|
214
214
|
status: "AVAILABLE" | "PAUSED" | "EXCLUDED";
|
|
215
|
-
conversionRate: number;
|
|
216
215
|
score: number;
|
|
217
216
|
tier: string;
|
|
217
|
+
conversionRate: number;
|
|
218
218
|
} | null;
|
|
219
219
|
totalCollaborations: number;
|
|
220
220
|
collaborationsByStatus: Record<string, number>;
|
|
@@ -279,17 +279,17 @@ export declare const dashboardContract: {
|
|
|
279
279
|
performanceTier: z.ZodEnum<["high", "medium", "low", "new"]>;
|
|
280
280
|
}, "strip", z.ZodTypeAny, {
|
|
281
281
|
date: string;
|
|
282
|
-
conversionRate: number;
|
|
283
282
|
totalCalls: number;
|
|
284
283
|
averageRatingWeight: number;
|
|
284
|
+
conversionRate: number;
|
|
285
285
|
successVariance: number;
|
|
286
286
|
performanceScore: number;
|
|
287
287
|
performanceTier: "high" | "medium" | "low" | "new";
|
|
288
288
|
}, {
|
|
289
289
|
date: string;
|
|
290
|
-
conversionRate: number;
|
|
291
290
|
totalCalls: number;
|
|
292
291
|
averageRatingWeight: number;
|
|
292
|
+
conversionRate: number;
|
|
293
293
|
successVariance: number;
|
|
294
294
|
performanceScore: number;
|
|
295
295
|
performanceTier: "high" | "medium" | "low" | "new";
|