@dakkitor/api-contracts 1.1.109 → 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 +224 -150
- package/dist/dashboards/dashboard-widgets.contract.d.ts.map +1 -1
- package/dist/dashboards/dashboard-widgets.contract.js +124 -101
- 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
|
|
@@ -74,16 +88,16 @@ exports.FaCallHistoryWidgetSchema = zod_1.z.object({
|
|
|
74
88
|
callsThisWeek: zod_1.z.number(),
|
|
75
89
|
averageRatingToday: zod_1.z
|
|
76
90
|
.number()
|
|
77
|
-
.describe(
|
|
91
|
+
.describe("Average rating weight for today (0-1)"),
|
|
78
92
|
efficientCallsToday: zod_1.z
|
|
79
93
|
.number()
|
|
80
|
-
.describe(
|
|
81
|
-
conversionRate: zod_1.z.number().describe(
|
|
82
|
-
performanceScore: zod_1.z.number().describe(
|
|
83
|
-
performanceTier: zod_1.z.enum([
|
|
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"]),
|
|
84
98
|
ratingBreakdown: zod_1.z
|
|
85
99
|
.record(zod_1.z.string(), zod_1.z.number())
|
|
86
|
-
.describe(
|
|
100
|
+
.describe("Calls by rating type"),
|
|
87
101
|
});
|
|
88
102
|
/**
|
|
89
103
|
* Agent Call History Item - Call performance metrics for a single agent
|
|
@@ -92,12 +106,12 @@ exports.AgentCallHistoryItemSchema = zod_1.z.object({
|
|
|
92
106
|
agentId: zod_1.z.string().uuid(),
|
|
93
107
|
agentName: zod_1.z.string(),
|
|
94
108
|
agentEmail: zod_1.z.string().email(),
|
|
95
|
-
callsOnDate: zod_1.z.number().describe(
|
|
96
|
-
totalCalls: zod_1.z.number().describe(
|
|
97
|
-
averageRating: zod_1.z.number().describe(
|
|
98
|
-
conversionRate: zod_1.z.number().describe(
|
|
99
|
-
performanceScore: zod_1.z.number().describe(
|
|
100
|
-
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"]),
|
|
101
115
|
});
|
|
102
116
|
/**
|
|
103
117
|
* Query parameters for all agents call history endpoint
|
|
@@ -106,7 +120,7 @@ exports.AllAgentsCallHistoryQuerySchema = pagination_query_schema_1.PaginationQu
|
|
|
106
120
|
date: zod_1.z
|
|
107
121
|
.string()
|
|
108
122
|
.optional()
|
|
109
|
-
.describe(
|
|
123
|
+
.describe("Date in YYYY-MM-DD format. Defaults to today if not provided."),
|
|
110
124
|
});
|
|
111
125
|
/**
|
|
112
126
|
* Paginated response for all agents call history
|
|
@@ -118,21 +132,21 @@ exports.AllAgentsCallHistoryResponseSchema = (0, pagination_schema_1.createPagin
|
|
|
118
132
|
exports.FaActivesWidgetSchema = zod_1.z.object({
|
|
119
133
|
today: zod_1.z.object({
|
|
120
134
|
total: zod_1.z.number(),
|
|
121
|
-
byStatusFa: zod_1.z.record(
|
|
135
|
+
byStatusFa: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
122
136
|
}),
|
|
123
137
|
});
|
|
124
138
|
/**
|
|
125
139
|
* FA Bookings Widget - Booking management (FA perspective)
|
|
126
140
|
*/
|
|
127
141
|
exports.FaBookingsWidgetSchema = zod_1.z.object({
|
|
128
|
-
totalToday: zod_1.z.number().describe(
|
|
129
|
-
byStatus: zod_1.z.record(
|
|
130
|
-
|
|
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
|
|
131
145
|
.number()
|
|
132
|
-
.describe(
|
|
133
|
-
startingToday: zod_1.z.number().describe(
|
|
134
|
-
pendingConfirmation: zod_1.z.number().describe(
|
|
135
|
-
upcomingStarts: zod_1.z.number().describe(
|
|
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"),
|
|
136
150
|
});
|
|
137
151
|
// =============================================================================
|
|
138
152
|
// SECOND AGENT (SA) WIDGET SCHEMAS
|
|
@@ -141,23 +155,23 @@ exports.FaBookingsWidgetSchema = zod_1.z.object({
|
|
|
141
155
|
* SA Workers Widget - Worker recruitment summary
|
|
142
156
|
*/
|
|
143
157
|
exports.SaWorkersWidgetSchema = zod_1.z.object({
|
|
144
|
-
total: zod_1.z.number().describe(
|
|
158
|
+
total: zod_1.z.number().describe("Total workers created by this agent"),
|
|
145
159
|
addedThisWeek: zod_1.z.number(),
|
|
146
160
|
addedThisMonth: zod_1.z.number(),
|
|
147
|
-
byAvailability: zod_1.z.record(
|
|
161
|
+
byAvailability: zod_1.z.record(workers_contract_1.AvailabilitySchema, zod_1.z.number()).optional(),
|
|
148
162
|
});
|
|
149
163
|
/**
|
|
150
164
|
* SA Bookings Widget - Booking management (SA perspective)
|
|
151
165
|
*/
|
|
152
166
|
exports.SaBookingsWidgetSchema = zod_1.z.object({
|
|
153
|
-
totalToday: zod_1.z.number().describe(
|
|
154
|
-
byStatus: zod_1.z.record(
|
|
155
|
-
|
|
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
|
|
156
170
|
.number()
|
|
157
|
-
.describe(
|
|
158
|
-
startingToday: zod_1.z.number().describe(
|
|
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"),
|
|
159
173
|
waitingForConfirmation: zod_1.z.number(),
|
|
160
|
-
upcomingStarts: zod_1.z.number().describe(
|
|
174
|
+
upcomingStarts: zod_1.z.number().describe("All future bookings not starting today"),
|
|
161
175
|
});
|
|
162
176
|
/**
|
|
163
177
|
* SA Actives Widget - Today's active workers (SA perspective)
|
|
@@ -165,7 +179,7 @@ exports.SaBookingsWidgetSchema = zod_1.z.object({
|
|
|
165
179
|
exports.SaActivesWidgetSchema = zod_1.z.object({
|
|
166
180
|
today: zod_1.z.object({
|
|
167
181
|
total: zod_1.z.number(),
|
|
168
|
-
byStatusSa: zod_1.z.record(
|
|
182
|
+
byStatusSa: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
169
183
|
}),
|
|
170
184
|
});
|
|
171
185
|
// =============================================================================
|
|
@@ -178,7 +192,7 @@ exports.ActivesTrendSchema = zod_1.z.object({
|
|
|
178
192
|
data: zod_1.z.array(zod_1.z.object({
|
|
179
193
|
date: zod_1.z.string(),
|
|
180
194
|
total: zod_1.z.number(),
|
|
181
|
-
byStatus: zod_1.z.record(
|
|
195
|
+
byStatus: zod_1.z.record(actives_contract_1.ActiveStatusSchema, zod_1.z.number()),
|
|
182
196
|
})),
|
|
183
197
|
summary: zod_1.z.object({
|
|
184
198
|
averageDaily: zod_1.z.number(),
|
|
@@ -193,7 +207,7 @@ exports.BookingsTrendSchema = zod_1.z.object({
|
|
|
193
207
|
data: zod_1.z.array(zod_1.z.object({
|
|
194
208
|
date: zod_1.z.string(),
|
|
195
209
|
total: zod_1.z.number(),
|
|
196
|
-
byStatus: zod_1.z.record(
|
|
210
|
+
byStatus: zod_1.z.record(bookings_contract_1.BookingStatusSchema, zod_1.z.number()),
|
|
197
211
|
})),
|
|
198
212
|
summary: zod_1.z.object({
|
|
199
213
|
averageDaily: zod_1.z.number(),
|
|
@@ -238,7 +252,7 @@ exports.CollaborationsTrendSchema = zod_1.z.object({
|
|
|
238
252
|
data: zod_1.z.array(zod_1.z.object({
|
|
239
253
|
date: zod_1.z.string(),
|
|
240
254
|
created: zod_1.z.number(),
|
|
241
|
-
byStatus: zod_1.z.record(
|
|
255
|
+
byStatus: zod_1.z.record(collaborations_contract_1.CollaborationStatusSchema, zod_1.z.number()),
|
|
242
256
|
})),
|
|
243
257
|
summary: zod_1.z.object({
|
|
244
258
|
totalCreated: zod_1.z.number(),
|
|
@@ -253,150 +267,159 @@ exports.dashboardWidgetsContract = c.router({
|
|
|
253
267
|
// FIRST AGENT (FA) WIDGETS
|
|
254
268
|
// -------------------------------------------------------------------------
|
|
255
269
|
getFaPipeline: {
|
|
256
|
-
method:
|
|
257
|
-
path:
|
|
270
|
+
method: "GET",
|
|
271
|
+
path: "/widgets/fa/pipeline",
|
|
272
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
258
273
|
responses: {
|
|
259
274
|
200: exports.FaPipelineWidgetSchema,
|
|
260
275
|
},
|
|
261
|
-
summary:
|
|
262
|
-
description:
|
|
276
|
+
summary: "Get FA collaboration pipeline widget data",
|
|
277
|
+
description: "Returns collaboration pipeline overview for First Agent dashboard",
|
|
263
278
|
},
|
|
264
279
|
getFaClients: {
|
|
265
|
-
method:
|
|
266
|
-
path:
|
|
280
|
+
method: "GET",
|
|
281
|
+
path: "/widgets/fa/clients",
|
|
282
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
267
283
|
responses: {
|
|
268
284
|
200: exports.FaClientsWidgetSchema,
|
|
269
285
|
},
|
|
270
|
-
summary:
|
|
271
|
-
description:
|
|
286
|
+
summary: "Get FA clients widget data",
|
|
287
|
+
description: "Returns client portfolio summary for First Agent dashboard",
|
|
272
288
|
},
|
|
273
289
|
getFaCheckings: {
|
|
274
|
-
method:
|
|
275
|
-
path:
|
|
290
|
+
method: "GET",
|
|
291
|
+
path: "/widgets/fa/checkings",
|
|
292
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
276
293
|
responses: {
|
|
277
294
|
200: exports.FaCheckingsWidgetSchema,
|
|
278
295
|
},
|
|
279
|
-
summary:
|
|
280
|
-
description:
|
|
296
|
+
summary: "Get FA collaboration checkings widget data",
|
|
297
|
+
description: "Returns collaboration checking status for First Agent dashboard",
|
|
281
298
|
},
|
|
282
299
|
getFaCallHistory: {
|
|
283
|
-
method:
|
|
284
|
-
path:
|
|
300
|
+
method: "GET",
|
|
301
|
+
path: "/widgets/fa/call-history",
|
|
302
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
285
303
|
responses: {
|
|
286
304
|
200: exports.FaCallHistoryWidgetSchema,
|
|
287
305
|
},
|
|
288
|
-
summary:
|
|
289
|
-
description:
|
|
306
|
+
summary: "Get FA call history widget data",
|
|
307
|
+
description: "Returns call performance metrics for First Agent dashboard",
|
|
290
308
|
},
|
|
291
309
|
getAllAvailableAgentsCallHistory: {
|
|
292
|
-
method:
|
|
293
|
-
path:
|
|
310
|
+
method: "GET",
|
|
311
|
+
path: "/widgets/agents/call-history",
|
|
294
312
|
query: exports.AllAgentsCallHistoryQuerySchema,
|
|
295
313
|
responses: {
|
|
296
314
|
200: exports.AllAgentsCallHistoryResponseSchema,
|
|
297
315
|
},
|
|
298
|
-
summary:
|
|
299
|
-
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",
|
|
300
318
|
},
|
|
301
319
|
getFaActives: {
|
|
302
|
-
method:
|
|
303
|
-
path:
|
|
320
|
+
method: "GET",
|
|
321
|
+
path: "/widgets/fa/actives",
|
|
322
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
304
323
|
responses: {
|
|
305
324
|
200: exports.FaActivesWidgetSchema,
|
|
306
325
|
},
|
|
307
|
-
summary:
|
|
326
|
+
summary: "Get FA actives widget data",
|
|
308
327
|
description: "Returns today's active workers from FA perspective",
|
|
309
328
|
},
|
|
310
329
|
getFaBookings: {
|
|
311
|
-
method:
|
|
312
|
-
path:
|
|
330
|
+
method: "GET",
|
|
331
|
+
path: "/widgets/fa/bookings",
|
|
332
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
313
333
|
responses: {
|
|
314
334
|
200: exports.FaBookingsWidgetSchema,
|
|
315
335
|
},
|
|
316
|
-
summary:
|
|
317
|
-
description:
|
|
336
|
+
summary: "Get FA bookings widget data",
|
|
337
|
+
description: "Returns booking management summary for First Agent dashboard",
|
|
318
338
|
},
|
|
319
339
|
// -------------------------------------------------------------------------
|
|
320
340
|
// SECOND AGENT (SA) WIDGETS
|
|
321
341
|
// -------------------------------------------------------------------------
|
|
322
342
|
getSaWorkers: {
|
|
323
|
-
method:
|
|
324
|
-
path:
|
|
343
|
+
method: "GET",
|
|
344
|
+
path: "/widgets/sa/workers",
|
|
345
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
325
346
|
responses: {
|
|
326
347
|
200: exports.SaWorkersWidgetSchema,
|
|
327
348
|
},
|
|
328
|
-
summary:
|
|
329
|
-
description:
|
|
349
|
+
summary: "Get SA workers widget data",
|
|
350
|
+
description: "Returns worker recruitment summary for Second Agent dashboard",
|
|
330
351
|
},
|
|
331
352
|
getSaBookings: {
|
|
332
|
-
method:
|
|
333
|
-
path:
|
|
353
|
+
method: "GET",
|
|
354
|
+
path: "/widgets/sa/bookings",
|
|
355
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
334
356
|
responses: {
|
|
335
357
|
200: exports.SaBookingsWidgetSchema,
|
|
336
358
|
},
|
|
337
|
-
summary:
|
|
338
|
-
description:
|
|
359
|
+
summary: "Get SA bookings widget data",
|
|
360
|
+
description: "Returns booking management summary for Second Agent dashboard",
|
|
339
361
|
},
|
|
340
362
|
getSaActives: {
|
|
341
|
-
method:
|
|
342
|
-
path:
|
|
363
|
+
method: "GET",
|
|
364
|
+
path: "/widgets/sa/actives",
|
|
365
|
+
query: exports.DashboardWidgetQuerySchema,
|
|
343
366
|
responses: {
|
|
344
367
|
200: exports.SaActivesWidgetSchema,
|
|
345
368
|
},
|
|
346
|
-
summary:
|
|
369
|
+
summary: "Get SA actives widget data",
|
|
347
370
|
description: "Returns today's active workers from SA perspective",
|
|
348
371
|
},
|
|
349
372
|
// -------------------------------------------------------------------------
|
|
350
373
|
// HISTORICAL TRENDS
|
|
351
374
|
// -------------------------------------------------------------------------
|
|
352
375
|
getActivesTrend: {
|
|
353
|
-
method:
|
|
354
|
-
path:
|
|
376
|
+
method: "GET",
|
|
377
|
+
path: "/trends/actives",
|
|
355
378
|
query: exports.DateRangeQuerySchema,
|
|
356
379
|
responses: {
|
|
357
380
|
200: exports.ActivesTrendSchema,
|
|
358
381
|
},
|
|
359
|
-
summary:
|
|
360
|
-
description:
|
|
382
|
+
summary: "Get actives historical trend",
|
|
383
|
+
description: "Returns time-series data for actives over a date range",
|
|
361
384
|
},
|
|
362
385
|
getBookingsTrend: {
|
|
363
|
-
method:
|
|
364
|
-
path:
|
|
386
|
+
method: "GET",
|
|
387
|
+
path: "/trends/bookings",
|
|
365
388
|
query: exports.DateRangeQuerySchema,
|
|
366
389
|
responses: {
|
|
367
390
|
200: exports.BookingsTrendSchema,
|
|
368
391
|
},
|
|
369
|
-
summary:
|
|
370
|
-
description:
|
|
392
|
+
summary: "Get bookings historical trend",
|
|
393
|
+
description: "Returns time-series data for bookings over a date range",
|
|
371
394
|
},
|
|
372
395
|
getCallPerformanceTrend: {
|
|
373
|
-
method:
|
|
374
|
-
path:
|
|
396
|
+
method: "GET",
|
|
397
|
+
path: "/trends/call-performance",
|
|
375
398
|
query: exports.DateRangeQuerySchema,
|
|
376
399
|
responses: {
|
|
377
400
|
200: exports.CallPerformanceTrendSchema,
|
|
378
401
|
},
|
|
379
|
-
summary:
|
|
380
|
-
description:
|
|
402
|
+
summary: "Get call performance historical trend",
|
|
403
|
+
description: "Returns time-series data for call performance over a date range",
|
|
381
404
|
},
|
|
382
405
|
getWorkersTrend: {
|
|
383
|
-
method:
|
|
384
|
-
path:
|
|
406
|
+
method: "GET",
|
|
407
|
+
path: "/trends/workers",
|
|
385
408
|
query: exports.DateRangeQuerySchema,
|
|
386
409
|
responses: {
|
|
387
410
|
200: exports.WorkersTrendSchema,
|
|
388
411
|
},
|
|
389
|
-
summary:
|
|
390
|
-
description:
|
|
412
|
+
summary: "Get workers historical trend (SA only)",
|
|
413
|
+
description: "Returns time-series data for worker additions over a date range",
|
|
391
414
|
},
|
|
392
415
|
getCollaborationsTrend: {
|
|
393
|
-
method:
|
|
394
|
-
path:
|
|
416
|
+
method: "GET",
|
|
417
|
+
path: "/trends/collaborations",
|
|
395
418
|
query: exports.DateRangeQuerySchema,
|
|
396
419
|
responses: {
|
|
397
420
|
200: exports.CollaborationsTrendSchema,
|
|
398
421
|
},
|
|
399
|
-
summary:
|
|
400
|
-
description:
|
|
422
|
+
summary: "Get collaborations historical trend (FA only)",
|
|
423
|
+
description: "Returns time-series data for collaborations over a date range",
|
|
401
424
|
},
|
|
402
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";
|