@dakkitor/api-contracts 1.1.9 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/actives/actives.contract.d.ts +263 -263
  2. package/dist/actives/actives.contract.d.ts.map +1 -1
  3. package/dist/actives/actives.contract.js +9 -17
  4. package/dist/agent-client-links/agent-client-links.contract.d.ts +1905 -0
  5. package/dist/agent-client-links/agent-client-links.contract.d.ts.map +1 -0
  6. package/dist/agent-client-links/agent-client-links.contract.js +127 -0
  7. package/dist/auth/auth.contract.d.ts +319 -0
  8. package/dist/auth/auth.contract.d.ts.map +1 -0
  9. package/dist/auth/auth.contract.js +63 -0
  10. package/dist/bookings/bookings.contract.d.ts +2183 -0
  11. package/dist/bookings/bookings.contract.d.ts.map +1 -0
  12. package/dist/bookings/bookings.contract.js +278 -0
  13. package/dist/call-history/call-history.contract.d.ts +1164 -0
  14. package/dist/call-history/call-history.contract.d.ts.map +1 -0
  15. package/dist/call-history/call-history.contract.js +254 -0
  16. package/dist/client-contacts/client-contacts.contract.d.ts +421 -472
  17. package/dist/client-contacts/client-contacts.contract.d.ts.map +1 -1
  18. package/dist/client-contacts/client-contacts.contract.js +26 -15
  19. package/dist/clients/clients.contract.d.ts +336 -308
  20. package/dist/clients/clients.contract.d.ts.map +1 -1
  21. package/dist/clients/clients.contract.js +49 -52
  22. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts +3013 -0
  23. package/dist/collaboration-checkings/collaboration-checkings.contract.d.ts.map +1 -0
  24. package/dist/collaboration-checkings/collaboration-checkings.contract.js +247 -0
  25. package/dist/collaborations/collaborations.contract.d.ts +2229 -0
  26. package/dist/collaborations/collaborations.contract.d.ts.map +1 -0
  27. package/dist/collaborations/collaborations.contract.js +284 -0
  28. package/dist/common/common-schemas.d.ts +120 -0
  29. package/dist/common/common-schemas.d.ts.map +1 -0
  30. package/dist/common/common-schemas.js +296 -0
  31. package/dist/common/error-schemas.d.ts +6 -6
  32. package/dist/common/openapi-metadata.d.ts +6 -0
  33. package/dist/common/openapi-metadata.d.ts.map +1 -1
  34. package/dist/common/pagination-query.schema.d.ts +17 -0
  35. package/dist/common/pagination-query.schema.d.ts.map +1 -0
  36. package/dist/common/pagination-query.schema.js +15 -0
  37. package/dist/common/pagination.schema.d.ts +2 -2
  38. package/dist/companies/companies.contract.d.ts +1108 -0
  39. package/dist/companies/companies.contract.d.ts.map +1 -0
  40. package/dist/companies/companies.contract.js +164 -0
  41. package/dist/cron-executions/cron-executions.contract.d.ts +1643 -0
  42. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -0
  43. package/dist/cron-executions/cron-executions.contract.js +271 -0
  44. package/dist/curated-workers/curated-workers.contract.d.ts +3183 -0
  45. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -0
  46. package/dist/curated-workers/curated-workers.contract.js +444 -0
  47. package/dist/dashboards/agent-daily-metrics.contract.d.ts +639 -0
  48. package/dist/dashboards/agent-daily-metrics.contract.d.ts.map +1 -0
  49. package/dist/dashboards/agent-daily-metrics.contract.js +118 -0
  50. package/dist/files/files.contract.d.ts +1258 -0
  51. package/dist/files/files.contract.d.ts.map +1 -0
  52. package/dist/files/files.contract.js +205 -0
  53. package/dist/health/health.contract.d.ts +161 -0
  54. package/dist/health/health.contract.d.ts.map +1 -0
  55. package/dist/health/health.contract.js +52 -0
  56. package/dist/index.d.ts +28596 -3088
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +68 -0
  59. package/dist/jobs/jobs.contract.d.ts +2303 -0
  60. package/dist/jobs/jobs.contract.d.ts.map +1 -0
  61. package/dist/jobs/jobs.contract.js +295 -0
  62. package/dist/lead-assignments/lead-assignments.contract.d.ts +1826 -0
  63. package/dist/lead-assignments/lead-assignments.contract.d.ts.map +1 -0
  64. package/dist/lead-assignments/lead-assignments.contract.js +187 -0
  65. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +1147 -0
  66. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts.map +1 -0
  67. package/dist/lead-distribution/agent-lead-distribution.contract.js +154 -0
  68. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +1085 -0
  69. package/dist/lead-distribution/lead-distribution-config.contract.d.ts.map +1 -0
  70. package/dist/lead-distribution/lead-distribution-config.contract.js +196 -0
  71. package/dist/leads/leads.contract.d.ts +1690 -0
  72. package/dist/leads/leads.contract.d.ts.map +1 -0
  73. package/dist/leads/leads.contract.js +328 -0
  74. package/dist/locations/locations.contract.d.ts +974 -0
  75. package/dist/locations/locations.contract.d.ts.map +1 -0
  76. package/dist/locations/locations.contract.js +154 -0
  77. package/dist/postcodes/postcodes.contract.d.ts +370 -0
  78. package/dist/postcodes/postcodes.contract.d.ts.map +1 -0
  79. package/dist/postcodes/postcodes.contract.js +90 -0
  80. package/dist/qualifications/qualifications.contract.d.ts +1489 -0
  81. package/dist/qualifications/qualifications.contract.d.ts.map +1 -0
  82. package/dist/qualifications/qualifications.contract.js +215 -0
  83. package/dist/trades/trades.contract.d.ts +799 -0
  84. package/dist/trades/trades.contract.d.ts.map +1 -0
  85. package/dist/trades/trades.contract.js +112 -0
  86. package/dist/users/users.contract.d.ts +315 -299
  87. package/dist/users/users.contract.d.ts.map +1 -1
  88. package/dist/users/users.contract.js +13 -29
  89. package/dist/workers/workers.contract.d.ts +3376 -0
  90. package/dist/workers/workers.contract.d.ts.map +1 -0
  91. package/dist/workers/workers.contract.js +363 -0
  92. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bookings.contract.d.ts","sourceRoot":"","sources":["../../contracts/bookings/bookings.contract.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFlC,CAAC"}
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bookingsContractRouter = exports.BookingArraySchema = exports.PaginatedBookingResponseSchema = exports.FilterBookingSchema = exports.UpdateBookingSchema = exports.CreateBookingSchema = exports.BookingSchema = exports.BookingJobSchema = exports.BookingWorkerSchema = exports.FilterJobInBookingSchema = exports.BookingItemSchema = exports.BookingPaySchema = exports.BookingSortableFieldsSchema = exports.BookingStatusSchema = void 0;
4
+ const zod_openapi_1 = require("@anatine/zod-openapi");
5
+ const core_1 = require("@ts-rest/core");
6
+ const zod_1 = require("zod");
7
+ const common_schemas_1 = require("../common/common-schemas");
8
+ const error_schemas_1 = require("../common/error-schemas");
9
+ const pagination_query_schema_1 = require("../common/pagination-query.schema");
10
+ const pagination_schema_1 = require("../common/pagination.schema");
11
+ (0, zod_openapi_1.extendZodWithOpenApi)(zod_1.z);
12
+ // Enum Schemas
13
+ exports.BookingStatusSchema = zod_1.z
14
+ .enum([
15
+ 'PENDING',
16
+ 'CONFIRMED',
17
+ 'CANCELLED',
18
+ 'COMPLETED',
19
+ 'REFUSED_BECAUSE_OF_NATIONALITY',
20
+ 'REFUSED_NOT_ENOUGH_EXPERIENCE',
21
+ 'REFUSED_JOB_FILLED',
22
+ 'REFUSED_IGNORED_DENIED',
23
+ 'REFUSED_BECAUSE_OF_DISTANCE',
24
+ 'WAITING_FOR_CONFIRMATION',
25
+ 'JOB_CANCELLED',
26
+ 'ANOTHER_SITUATION',
27
+ 'YELLOW_FOR_TOMORROW',
28
+ 'SPOKE_WITH_WORKER_IN_THE_MORNING',
29
+ 'ON_THE_WAY_TO_THE_SITE',
30
+ 'AT_THE_INDUCTION',
31
+ 'STARTED_THE_JOB',
32
+ 'DIDNT_START_BECAUSE_OF_WORKER',
33
+ 'DIDNT_START_BECAUSE_OF_US',
34
+ 'DIDNT_START_BECAUSE_OF_CONSTRUCTION_SITE',
35
+ 'DIDNT_START_BECAUSE_OF_AGENCY',
36
+ 'DIDNT_START_BECAUSE_OF_TOOLS_REQUIREMENTS',
37
+ ])
38
+ .openapi({ title: 'BookingStatus' });
39
+ exports.BookingSortableFieldsSchema = zod_1.z
40
+ .enum(['status', 'startDate', 'createdAt', 'updatedAt'])
41
+ .openapi({ title: 'BookingSortableFields' });
42
+ // Nested Schemas
43
+ exports.BookingPaySchema = zod_1.z
44
+ .object({
45
+ rate: zod_1.z.number().describe('Pay Rate'),
46
+ unit: common_schemas_1.RateUnitSchema.describe('Pay Unit'),
47
+ })
48
+ .openapi({ title: 'BookingPay' });
49
+ // ResourceIdSchema is imported from common-schemas
50
+ exports.BookingItemSchema = zod_1.z
51
+ .object({
52
+ worker: common_schemas_1.ResourceIdSchema.describe('Worker to Book'),
53
+ startDate: zod_1.z.string().datetime().describe('Start Date'),
54
+ endDate: zod_1.z.string().datetime().nullable().optional().describe('End Date'),
55
+ status: exports.BookingStatusSchema.optional().describe('Booking Status'),
56
+ pay: exports.BookingPaySchema.optional().describe('Pay Information'),
57
+ })
58
+ .openapi({ title: 'BookingItem' });
59
+ exports.FilterJobInBookingSchema = zod_1.z
60
+ .object({
61
+ userId: zod_1.z
62
+ .string()
63
+ .uuid()
64
+ .optional()
65
+ .nullable()
66
+ .describe('Filter by User ID'),
67
+ clientId: zod_1.z
68
+ .string()
69
+ .uuid()
70
+ .optional()
71
+ .nullable()
72
+ .describe('Filter by Client ID'),
73
+ companyId: zod_1.z
74
+ .string()
75
+ .uuid()
76
+ .optional()
77
+ .nullable()
78
+ .describe('Filter by Company ID'),
79
+ tradeId: zod_1.z
80
+ .string()
81
+ .uuid()
82
+ .optional()
83
+ .nullable()
84
+ .describe('Filter by Trade ID'),
85
+ })
86
+ .openapi({ title: 'FilterJobInBooking' });
87
+ // Simplified schemas for related entities (to avoid circular dependencies)
88
+ // BookingUserSchema replaced by UserSummarySchema
89
+ exports.BookingWorkerSchema = zod_1.z.object({
90
+ id: zod_1.z.string().uuid(),
91
+ firstName: zod_1.z.string(),
92
+ lastName: zod_1.z.string(),
93
+ });
94
+ exports.BookingJobSchema = zod_1.z.object({
95
+ id: zod_1.z.string().uuid(),
96
+ title: zod_1.z.string(),
97
+ });
98
+ // Main Schemas
99
+ exports.BookingSchema = zod_1.z
100
+ .object({
101
+ id: zod_1.z.string().uuid().describe('Booking ID'),
102
+ status: exports.BookingStatusSchema.describe('Booking Status'),
103
+ startDate: zod_1.z
104
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
105
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
106
+ .describe('Start Date'),
107
+ endDate: zod_1.z
108
+ .union([zod_1.z.string().datetime(), zod_1.z.date(), zod_1.z.null()])
109
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
110
+ .nullable()
111
+ .optional()
112
+ .describe('End Date'),
113
+ worker: exports.BookingWorkerSchema.describe('Worker'),
114
+ user: common_schemas_1.UserSummarySchema.describe('User'),
115
+ pay: exports.BookingPaySchema.describe('Pay Information'),
116
+ job: exports.BookingJobSchema.describe('Job'),
117
+ userId: zod_1.z.string().uuid().describe('User ID'),
118
+ createdAt: zod_1.z
119
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
120
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
121
+ .describe('Creation Date'),
122
+ updatedAt: zod_1.z
123
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
124
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
125
+ .describe('Last Update Date'),
126
+ })
127
+ .openapi({ title: 'Booking' });
128
+ exports.CreateBookingSchema = zod_1.z
129
+ .object({
130
+ job: common_schemas_1.ResourceIdSchema.describe('Job'),
131
+ bookings: zod_1.z.array(exports.BookingItemSchema).describe('List of Workers to Book'),
132
+ })
133
+ .openapi({ title: 'CreateBooking' });
134
+ exports.UpdateBookingSchema = zod_1.z
135
+ .object({
136
+ startDate: zod_1.z.string().datetime().optional().describe('Start Date'),
137
+ endDate: zod_1.z.string().datetime().optional().describe('End Date'),
138
+ status: exports.BookingStatusSchema.optional().describe('Booking Status'),
139
+ })
140
+ .openapi({ title: 'UpdateBooking' });
141
+ exports.FilterBookingSchema = pagination_query_schema_1.PaginationQuerySchema.extend({
142
+ workerName: zod_1.z
143
+ .string()
144
+ .optional()
145
+ .nullable()
146
+ .describe('Fuzzy search by worker full name'),
147
+ job: exports.FilterJobInBookingSchema.optional()
148
+ .nullable()
149
+ .describe('Filter by job details'),
150
+ createdAt: common_schemas_1.DateRangeSchema.optional()
151
+ .nullable()
152
+ .describe('Filter by created date range'),
153
+ startDate: common_schemas_1.DateRangeSchema.optional()
154
+ .nullable()
155
+ .describe('Filter by start date range'),
156
+ endDate: common_schemas_1.DateRangeSchema.optional()
157
+ .nullable()
158
+ .describe('Filter by end date range'),
159
+ sortBy: exports.BookingSortableFieldsSchema.optional()
160
+ .nullable()
161
+ .describe('Field to sort by'),
162
+ sortOrder: common_schemas_1.SortOrderSchema.optional().nullable().describe('Sort order'),
163
+ status: exports.BookingStatusSchema.optional()
164
+ .nullable()
165
+ .describe('Filter by status'),
166
+ clientId: zod_1.z
167
+ .string()
168
+ .uuid()
169
+ .optional()
170
+ .nullable()
171
+ .describe('Filter by Client ID'),
172
+ companyId: zod_1.z
173
+ .string()
174
+ .uuid()
175
+ .optional()
176
+ .nullable()
177
+ .describe('Filter by Company ID'),
178
+ agentName: zod_1.z
179
+ .string()
180
+ .optional()
181
+ .nullable()
182
+ .describe('Fuzzy search by agent name'),
183
+ });
184
+ exports.PaginatedBookingResponseSchema = (0, pagination_schema_1.createPaginatedResponseSchema)(exports.BookingSchema)
185
+ .describe('Bookings retrieved successfully')
186
+ .openapi({ title: 'BookingsPaginatedResponse' });
187
+ exports.BookingArraySchema = zod_1.z
188
+ .array(exports.BookingSchema)
189
+ .openapi({ title: 'BookingArray' });
190
+ // Contract Definition
191
+ const c = (0, core_1.initContract)();
192
+ exports.bookingsContractRouter = c.router({
193
+ create: {
194
+ method: 'POST',
195
+ path: '/v2/bookings',
196
+ responses: {
197
+ 201: exports.BookingArraySchema,
198
+ 409: error_schemas_1.ErrorResponseSchema,
199
+ },
200
+ body: exports.CreateBookingSchema,
201
+ summary: 'Create new bookings (bulk operation)',
202
+ metadata: {
203
+ tags: ['Bookings'],
204
+ openApi: { operationId: 'createBookings' },
205
+ },
206
+ },
207
+ findAll: {
208
+ method: 'GET',
209
+ path: '/v2/bookings',
210
+ responses: {
211
+ 200: exports.PaginatedBookingResponseSchema,
212
+ },
213
+ query: exports.FilterBookingSchema,
214
+ summary: 'Get all bookings',
215
+ metadata: {
216
+ tags: ['Bookings'],
217
+ openApi: { operationId: 'findAllBookings' },
218
+ },
219
+ },
220
+ findOne: {
221
+ method: 'GET',
222
+ path: '/v2/bookings/:id',
223
+ responses: {
224
+ 200: exports.BookingSchema,
225
+ 404: error_schemas_1.ErrorResponseSchema,
226
+ },
227
+ pathParams: zod_1.z.object({
228
+ id: zod_1.z.string().uuid().describe('Booking ID'),
229
+ }),
230
+ summary: 'Get a booking by ID',
231
+ metadata: {
232
+ tags: ['Bookings'],
233
+ openApi: { operationId: 'findBookingById' },
234
+ },
235
+ },
236
+ update: {
237
+ method: 'PATCH',
238
+ path: '/v2/bookings/:id',
239
+ responses: {
240
+ 200: exports.BookingSchema,
241
+ 404: error_schemas_1.ErrorResponseSchema,
242
+ 409: error_schemas_1.ErrorResponseSchema,
243
+ },
244
+ pathParams: zod_1.z.object({
245
+ id: zod_1.z.string().uuid().describe('Booking ID'),
246
+ }),
247
+ body: exports.UpdateBookingSchema,
248
+ summary: 'Update a booking',
249
+ metadata: {
250
+ tags: ['Bookings'],
251
+ openApi: { operationId: 'updateBooking' },
252
+ },
253
+ },
254
+ remove: {
255
+ method: 'DELETE',
256
+ path: '/v2/bookings/:id',
257
+ responses: {
258
+ 204: zod_1.z.undefined(),
259
+ 404: error_schemas_1.ErrorResponseSchema,
260
+ },
261
+ pathParams: zod_1.z.object({
262
+ id: zod_1.z.string().uuid().describe('Booking ID'),
263
+ }),
264
+ body: c.noBody(),
265
+ summary: 'Delete a booking',
266
+ metadata: {
267
+ tags: ['Bookings'],
268
+ openApi: { operationId: 'deleteBooking' },
269
+ },
270
+ },
271
+ }, {
272
+ commonResponses: {
273
+ 400: error_schemas_1.ErrorResponseSchema,
274
+ 401: error_schemas_1.ErrorResponseSchema,
275
+ 403: error_schemas_1.ErrorResponseSchema,
276
+ 500: error_schemas_1.ErrorResponseSchema,
277
+ },
278
+ });