@dakkitor/api-contracts 1.1.10 → 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 (87) hide show
  1. package/dist/actives/actives.contract.d.ts +104 -104
  2. package/dist/actives/actives.contract.d.ts.map +1 -1
  3. package/dist/actives/actives.contract.js +3 -6
  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 +273 -182
  11. package/dist/bookings/bookings.contract.d.ts.map +1 -1
  12. package/dist/bookings/bookings.contract.js +25 -33
  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 +215 -268
  17. package/dist/client-contacts/client-contacts.contract.d.ts.map +1 -1
  18. package/dist/client-contacts/client-contacts.contract.js +21 -10
  19. package/dist/clients/clients.contract.d.ts +153 -125
  20. package/dist/clients/clients.contract.d.ts.map +1 -1
  21. package/dist/clients/clients.contract.js +44 -29
  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 +100 -0
  29. package/dist/common/common-schemas.d.ts.map +1 -1
  30. package/dist/common/common-schemas.js +268 -1
  31. package/dist/common/openapi-metadata.d.ts +6 -0
  32. package/dist/common/openapi-metadata.d.ts.map +1 -1
  33. package/dist/companies/companies.contract.d.ts +1108 -0
  34. package/dist/companies/companies.contract.d.ts.map +1 -0
  35. package/dist/companies/companies.contract.js +164 -0
  36. package/dist/cron-executions/cron-executions.contract.d.ts +1643 -0
  37. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -0
  38. package/dist/cron-executions/cron-executions.contract.js +271 -0
  39. package/dist/curated-workers/curated-workers.contract.d.ts +3183 -0
  40. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -0
  41. package/dist/curated-workers/curated-workers.contract.js +444 -0
  42. package/dist/dashboards/agent-daily-metrics.contract.d.ts +639 -0
  43. package/dist/dashboards/agent-daily-metrics.contract.d.ts.map +1 -0
  44. package/dist/dashboards/agent-daily-metrics.contract.js +118 -0
  45. package/dist/files/files.contract.d.ts +1258 -0
  46. package/dist/files/files.contract.d.ts.map +1 -0
  47. package/dist/files/files.contract.js +205 -0
  48. package/dist/health/health.contract.d.ts +161 -0
  49. package/dist/health/health.contract.d.ts.map +1 -0
  50. package/dist/health/health.contract.js +52 -0
  51. package/dist/index.d.ts +27370 -3319
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +63 -0
  54. package/dist/jobs/jobs.contract.d.ts +2303 -0
  55. package/dist/jobs/jobs.contract.d.ts.map +1 -0
  56. package/dist/jobs/jobs.contract.js +295 -0
  57. package/dist/lead-assignments/lead-assignments.contract.d.ts +1826 -0
  58. package/dist/lead-assignments/lead-assignments.contract.d.ts.map +1 -0
  59. package/dist/lead-assignments/lead-assignments.contract.js +187 -0
  60. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +1147 -0
  61. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts.map +1 -0
  62. package/dist/lead-distribution/agent-lead-distribution.contract.js +154 -0
  63. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +1085 -0
  64. package/dist/lead-distribution/lead-distribution-config.contract.d.ts.map +1 -0
  65. package/dist/lead-distribution/lead-distribution-config.contract.js +196 -0
  66. package/dist/leads/leads.contract.d.ts +1690 -0
  67. package/dist/leads/leads.contract.d.ts.map +1 -0
  68. package/dist/leads/leads.contract.js +328 -0
  69. package/dist/locations/locations.contract.d.ts +974 -0
  70. package/dist/locations/locations.contract.d.ts.map +1 -0
  71. package/dist/locations/locations.contract.js +154 -0
  72. package/dist/postcodes/postcodes.contract.d.ts +370 -0
  73. package/dist/postcodes/postcodes.contract.d.ts.map +1 -0
  74. package/dist/postcodes/postcodes.contract.js +90 -0
  75. package/dist/qualifications/qualifications.contract.d.ts +1489 -0
  76. package/dist/qualifications/qualifications.contract.d.ts.map +1 -0
  77. package/dist/qualifications/qualifications.contract.js +215 -0
  78. package/dist/trades/trades.contract.d.ts +799 -0
  79. package/dist/trades/trades.contract.d.ts.map +1 -0
  80. package/dist/trades/trades.contract.js +112 -0
  81. package/dist/users/users.contract.d.ts +102 -96
  82. package/dist/users/users.contract.d.ts.map +1 -1
  83. package/dist/users/users.contract.js +9 -21
  84. package/dist/workers/workers.contract.d.ts +3376 -0
  85. package/dist/workers/workers.contract.d.ts.map +1 -0
  86. package/dist/workers/workers.contract.js +363 -0
  87. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collaborations.contract.d.ts","sourceRoot":"","sources":["../../contracts/collaborations/collaborations.contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB;;GAEG;AACH,eAAO,MAAM,yBAAyB,mHAUM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,iCAAiC,iDAEM,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AA4BF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BM,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBF,CAAC;AAEnD,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAEM,CAAC;AAExD,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGS,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,oCAAoC,CAC5C,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,oCAAoC,CAC5C,CAAC;AAIF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHxC,CAAC"}
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collaborationsContractRouter = exports.PaginatedCollaborationResponseSchema = exports.CollaborationAutocompleteArraySchema = exports.CollaborationAutocompleteResponseSchema = exports.FilterCollaborationSchema = exports.UpsertCollaborationSchema = exports.UpdateCollaborationSchema = exports.CreateCollaborationSchema = exports.CollaborationSchema = exports.CollaborationSortableFieldsSchema = exports.CollaborationStatusSchema = 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
+ /**
13
+ * Collaboration Status Enum
14
+ */
15
+ exports.CollaborationStatusSchema = zod_1.z
16
+ .enum([
17
+ 'ACTIVE',
18
+ 'INACTIVE',
19
+ 'PENDING_APPROVAL',
20
+ 'REJECTED',
21
+ 'APPROVED',
22
+ 'CHANGED_COMPANY',
23
+ 'CHANGED_AGENT',
24
+ ])
25
+ .openapi({ title: 'CollaborationStatus' });
26
+ /**
27
+ * Collaboration Sortable Fields Enum
28
+ */
29
+ exports.CollaborationSortableFieldsSchema = zod_1.z
30
+ .enum(['createdAt', 'updatedAt', 'status'])
31
+ .openapi({ title: 'CollaborationSortableFields' });
32
+ /**
33
+ * Nested schemas for collaboration relationships
34
+ */
35
+ const CompanySummarySchema = zod_1.z
36
+ .object({
37
+ id: zod_1.z.string().uuid().describe('Company ID'),
38
+ name: zod_1.z.string().describe('Company Name'),
39
+ })
40
+ .openapi({ title: 'CompanySummary' });
41
+ const ClientSummarySchema = zod_1.z
42
+ .object({
43
+ id: zod_1.z.string().uuid().describe('Client ID'),
44
+ name: zod_1.z.string().describe('Client Name'),
45
+ })
46
+ .openapi({ title: 'ClientSummary' });
47
+ const UserSummaryForCollaborationSchema = zod_1.z
48
+ .object({
49
+ id: zod_1.z.string().uuid().describe('User ID'),
50
+ firstName: zod_1.z.string().describe('First Name'),
51
+ lastName: zod_1.z.string().describe('Last Name'),
52
+ email: zod_1.z.string().email().describe('Email'),
53
+ })
54
+ .openapi({ title: 'UserSummaryForCollaboration' });
55
+ /**
56
+ * Main Collaboration Schema
57
+ */
58
+ exports.CollaborationSchema = zod_1.z
59
+ .object({
60
+ id: zod_1.z.string().uuid().describe('Collaboration ID'),
61
+ company: CompanySummarySchema.describe('Company'),
62
+ client: ClientSummarySchema.describe('Client'),
63
+ user: UserSummaryForCollaborationSchema.describe('User (Agent)'),
64
+ status: exports.CollaborationStatusSchema.describe('Collaboration Status'),
65
+ userId: zod_1.z.string().uuid().describe('User ID'),
66
+ createdAt: zod_1.z
67
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
68
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
69
+ .describe('Creation Date'),
70
+ updatedAt: zod_1.z
71
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
72
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
73
+ .describe('Last Update Date'),
74
+ newCollaboration: zod_1.z
75
+ .object({
76
+ id: zod_1.z.string().uuid().describe('New Collaboration ID'),
77
+ })
78
+ .optional()
79
+ .nullable()
80
+ .describe('New Collaboration (when status is CHANGED_COMPANY or CHANGED_AGENT)'),
81
+ })
82
+ .openapi({ title: 'Collaboration' });
83
+ /**
84
+ * Create Collaboration Schema
85
+ */
86
+ exports.CreateCollaborationSchema = zod_1.z
87
+ .object({
88
+ company: common_schemas_1.ResourceIdSchema.describe('Company'),
89
+ client: common_schemas_1.ResourceIdSchema.describe('Client'),
90
+ user: common_schemas_1.ResourceIdSchema.optional().describe('User (ADMIN only)'),
91
+ status: exports.CollaborationStatusSchema.optional().describe('Collaboration Status'),
92
+ })
93
+ .openapi({ title: 'CreateCollaboration' });
94
+ /**
95
+ * Update Collaboration Schema
96
+ */
97
+ exports.UpdateCollaborationSchema = zod_1.z
98
+ .object({
99
+ status: exports.CollaborationStatusSchema.optional().describe('Collaboration Status'),
100
+ })
101
+ .openapi({ title: 'UpdateCollaboration' });
102
+ /**
103
+ * Upsert Collaboration Schema
104
+ */
105
+ exports.UpsertCollaborationSchema = zod_1.z
106
+ .object({
107
+ company: common_schemas_1.ResourceIdSchema.describe('Company'),
108
+ client: common_schemas_1.ResourceIdSchema.describe('Client'),
109
+ user: common_schemas_1.ResourceIdSchema.optional().describe('User (ADMIN only)'),
110
+ status: exports.CollaborationStatusSchema.optional().describe('Collaboration Status'),
111
+ })
112
+ .openapi({ title: 'UpsertCollaboration' });
113
+ /**
114
+ * Filter Collaboration Schema
115
+ */
116
+ exports.FilterCollaborationSchema = pagination_query_schema_1.PaginationQuerySchema.extend({
117
+ companyId: zod_1.z
118
+ .string()
119
+ .uuid()
120
+ .optional()
121
+ .nullable()
122
+ .describe('Filter by company ID'),
123
+ clientId: zod_1.z
124
+ .string()
125
+ .uuid()
126
+ .optional()
127
+ .nullable()
128
+ .describe('Filter by client ID'),
129
+ userId: zod_1.z.string().uuid().optional().nullable().describe('Filter by user ID'),
130
+ status: exports.CollaborationStatusSchema.optional()
131
+ .nullable()
132
+ .describe('Filter by collaboration status'),
133
+ sortBy: exports.CollaborationSortableFieldsSchema.optional()
134
+ .nullable()
135
+ .describe('The field to sort the results by'),
136
+ sortOrder: common_schemas_1.SortOrderSchema.optional()
137
+ .nullable()
138
+ .describe('The order to sort the results by'),
139
+ });
140
+ /**
141
+ * Collaboration Autocomplete Response Schema
142
+ */
143
+ exports.CollaborationAutocompleteResponseSchema = zod_1.z
144
+ .object({
145
+ id: zod_1.z.string().uuid().describe('Collaboration ID'),
146
+ client: zod_1.z
147
+ .object({
148
+ name: zod_1.z.string().describe('Client Name'),
149
+ })
150
+ .describe('Client'),
151
+ company: zod_1.z
152
+ .object({
153
+ name: zod_1.z.string().describe('Company Name'),
154
+ })
155
+ .describe('Company'),
156
+ user: zod_1.z
157
+ .object({
158
+ firstName: zod_1.z.string().describe('First Name'),
159
+ lastName: zod_1.z.string().describe('Last Name'),
160
+ })
161
+ .describe('User'),
162
+ })
163
+ .openapi({ title: 'CollaborationAutocomplete' });
164
+ exports.CollaborationAutocompleteArraySchema = zod_1.z
165
+ .array(exports.CollaborationAutocompleteResponseSchema)
166
+ .openapi({ title: 'CollaborationAutocompleteArray' });
167
+ exports.PaginatedCollaborationResponseSchema = (0, pagination_schema_1.createPaginatedResponseSchema)(exports.CollaborationSchema)
168
+ .describe('Collaborations retrieved successfully')
169
+ .openapi({ title: 'CollaborationsPaginatedResponse' });
170
+ const c = (0, core_1.initContract)();
171
+ exports.collaborationsContractRouter = c.router({
172
+ create: {
173
+ method: 'POST',
174
+ path: '/v2/collaborations',
175
+ responses: {
176
+ 201: exports.CollaborationSchema,
177
+ 409: error_schemas_1.ErrorResponseSchema,
178
+ },
179
+ body: exports.CreateCollaborationSchema,
180
+ summary: 'Create a new collaboration',
181
+ metadata: {
182
+ tags: ['Collaborations'],
183
+ openApi: { operationId: 'createCollaboration' },
184
+ },
185
+ },
186
+ findAll: {
187
+ method: 'GET',
188
+ path: '/v2/collaborations',
189
+ responses: {
190
+ 200: exports.PaginatedCollaborationResponseSchema,
191
+ },
192
+ query: exports.FilterCollaborationSchema,
193
+ summary: 'Get all collaborations',
194
+ metadata: {
195
+ tags: ['Collaborations'],
196
+ openApi: { operationId: 'findAllCollaborations' },
197
+ },
198
+ },
199
+ autocomplete: {
200
+ method: 'GET',
201
+ path: '/v2/collaborations/autocomplete',
202
+ responses: {
203
+ 200: exports.CollaborationAutocompleteArraySchema,
204
+ },
205
+ query: common_schemas_1.AutocompleteQuerySchema,
206
+ summary: 'Get collaborations for autocomplete',
207
+ metadata: {
208
+ tags: ['Collaborations'],
209
+ openApi: { operationId: 'autocompleteCollaborations' },
210
+ },
211
+ },
212
+ findOne: {
213
+ method: 'GET',
214
+ path: '/v2/collaborations/:id',
215
+ responses: {
216
+ 200: exports.CollaborationSchema,
217
+ 404: error_schemas_1.ErrorResponseSchema,
218
+ },
219
+ pathParams: zod_1.z.object({
220
+ id: zod_1.z.string().uuid().describe('Collaboration ID'),
221
+ }),
222
+ summary: 'Get a collaboration by ID',
223
+ metadata: {
224
+ tags: ['Collaborations'],
225
+ openApi: { operationId: 'findOneCollaboration' },
226
+ },
227
+ },
228
+ update: {
229
+ method: 'PATCH',
230
+ path: '/v2/collaborations/:id',
231
+ responses: {
232
+ 200: exports.CollaborationSchema,
233
+ 404: error_schemas_1.ErrorResponseSchema,
234
+ 409: error_schemas_1.ErrorResponseSchema,
235
+ },
236
+ pathParams: zod_1.z.object({
237
+ id: zod_1.z.string().uuid().describe('Collaboration ID'),
238
+ }),
239
+ body: exports.UpdateCollaborationSchema,
240
+ summary: 'Update a collaboration',
241
+ metadata: {
242
+ tags: ['Collaborations'],
243
+ openApi: { operationId: 'updateCollaboration' },
244
+ },
245
+ },
246
+ remove: {
247
+ method: 'DELETE',
248
+ path: '/v2/collaborations/:id',
249
+ responses: {
250
+ 204: zod_1.z.undefined(),
251
+ 404: error_schemas_1.ErrorResponseSchema,
252
+ },
253
+ pathParams: zod_1.z.object({
254
+ id: zod_1.z.string().uuid().describe('Collaboration ID'),
255
+ }),
256
+ body: c.noBody(),
257
+ summary: 'Delete a collaboration',
258
+ metadata: {
259
+ tags: ['Collaborations'],
260
+ openApi: { operationId: 'deleteCollaboration' },
261
+ },
262
+ },
263
+ upsert: {
264
+ method: 'PUT',
265
+ path: '/v2/collaborations',
266
+ responses: {
267
+ 201: exports.CollaborationSchema,
268
+ 409: error_schemas_1.ErrorResponseSchema,
269
+ },
270
+ body: exports.UpsertCollaborationSchema,
271
+ summary: 'Upsert a collaboration',
272
+ metadata: {
273
+ tags: ['Collaborations'],
274
+ openApi: { operationId: 'upsertCollaboration' },
275
+ },
276
+ },
277
+ }, {
278
+ commonResponses: {
279
+ 400: error_schemas_1.ErrorResponseSchema,
280
+ 401: error_schemas_1.ErrorResponseSchema,
281
+ 403: error_schemas_1.ErrorResponseSchema,
282
+ 500: error_schemas_1.ErrorResponseSchema,
283
+ },
284
+ });
@@ -17,4 +17,104 @@ export declare const DateRangeSchema: z.ZodObject<{
17
17
  export type SortOrder = z.infer<typeof SortOrderSchema>;
18
18
  export type RateUnit = z.infer<typeof RateUnitSchema>;
19
19
  export type DateRange = z.infer<typeof DateRangeSchema>;
20
+ export declare const EnglishLevelSchema: z.ZodEnum<["NONE", "BASIC", "INTERMEDIATE", "ADVANCED", "NATIVE"]>;
21
+ export type EnglishLevel = z.infer<typeof EnglishLevelSchema>;
22
+ export declare const NationalitySchema: z.ZodEnum<["AFGHAN", "ALBANIAN", "ALGERIAN", "AMERICAN", "ANDORRAN", "ANGOLAN", "ANTIGUANS", "ARGENTINEAN", "ARMENIAN", "AUSTRALIAN", "AUSTRIAN", "AZERBAIJANI", "BAHAMIAN", "BAHRAINI", "BANGLADESHI", "BARBADIAN", "BARBUDANS", "BELARUSIAN", "BELGIAN", "BELIZEAN", "BENINESE", "BHUTANESE", "BOLIVIAN", "BOSNIAN", "BRAZILIAN", "BRITISH", "BRUNEIAN", "BULGARIAN", "BURKINABE", "BURMESE", "BURUNDIAN", "CAMBODIAN", "CAMEROONIAN", "CANADIAN", "CAPE_VERDEAN", "CENTRAL_AFRICAN", "CHADIAN", "CHILEAN", "CHINESE", "COLOMBIAN", "COMORAN", "CONGOLESE", "COSTA_RICAN", "CROATIAN", "CUBAN", "CYPRIOT", "CZECH", "DANISH", "DJIBOUTI", "DOMINICAN", "DUTCH", "EAST_TIMORESE", "ECUADOREAN", "EGYPTIAN", "EMIRIAN", "EQUATORIAL_GUINEAN", "ERITREAN", "ESTONIAN", "ETHIOPIAN", "FIJIAN", "FILIPINO", "FINNISH", "FRENCH", "GABONESE", "GAMBIAN", "GEORGIAN", "GERMAN", "GHANAIAN", "GREEK", "GRENADIAN", "GUATEMALAN", "GUINEA_BISSAUAN", "GUINEAN", "GUYANESE", "HAITIAN", "HERZEGOVINIAN", "HONDURAN", "HUNGARIAN", "ICELANDER", "INDIAN", "INDONESIAN", "IRANIAN", "IRAQI", "IRISH", "ISRAELI", "ITALIAN", "IVORIAN", "JAMAICAN", "JAPANESE", "JORDANIAN", "KAZAKHSTANI", "KENYAN", "KITTIAN_AND_NEVISIAN", "KUWAITI", "KYRGYZ", "LAOTIAN", "LATVIAN", "LEBANESE", "LIBERIAN", "LIBYAN", "LIECHTENSTEINER", "LITHUANIAN", "LUXEMBOURGER", "MACEDONIAN", "MALAGASY", "MALAWIAN", "MALAYSIAN", "MALDIVAN", "MALIAN", "MALTESE", "MARSHALLESE", "MAURITANIAN", "MAURITIAN", "MEXICAN", "MICRONESIAN", "MOLDOVAN", "MONACAN", "MONGOLIAN", "MOROCCAN", "MOSOTHO", "MOTSWANA", "MOZAMBICAN", "NAMIBIAN", "NAURUAN", "NEPALESE", "NEW_ZEALANDER", "NI_VANUATU", "NICARAGUAN", "NIGERIEN", "NIGERIAN", "NORTH_KOREAN", "NORTHERN_IRISH", "NORWEGIAN", "OMANI", "PAKISTANI", "PALAUAN", "PANAMANIAN", "PAPUA_NEW_GUINEAN", "PARAGUAYAN", "PERUVIAN", "POLISH", "PORTUGUESE", "QATARI", "ROMANIAN", "RUSSIAN", "RWANDAN", "SAINT_LUCIAN", "SALVADORAN", "SAMOAN", "SAN_MARINESE", "SAO_TOMEAN", "SAUDI", "SCOTTISH", "SENEGALESE", "SERBIAN", "SEYCHELLOIS", "SIERRA_LEONEAN", "SINGAPOREAN", "SLOVAKIAN", "SLOVENIAN", "SOLOMON_ISLANDER", "SOMALI", "SOUTH_AFRICAN", "SOUTH_KOREAN", "SOUTH_SUDANESE", "SPANISH", "SRI_LANKAN", "SUDANESE", "SURINAMER", "SWAZI", "SWEDISH", "SWISS", "SYRIAN", "TAIWANESE", "TAJIK", "TANZANIAN", "THAI", "TOGOLESE", "TONGAN", "TRINIDADIAN_OR_TOBAGONIAN", "TUNISIAN", "TURKISH", "TUVALUAN", "UGANDAN", "UKRAINIAN", "URUGUAYAN", "UZBEKISTANI", "VENEZUELAN", "VIETNAMESE", "WELSH", "YEMENITE", "ZAMBIAN", "ZIMBABWEAN"]>;
23
+ export type Nationality = z.infer<typeof NationalitySchema>;
24
+ export declare const CreateLocationSchema: z.ZodObject<{
25
+ address: z.ZodOptional<z.ZodString>;
26
+ postcode: z.ZodOptional<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ address?: string | undefined;
29
+ postcode?: string | undefined;
30
+ }, {
31
+ address?: string | undefined;
32
+ postcode?: string | undefined;
33
+ }>;
34
+ export declare const LocationDetailsSchema: z.ZodObject<{
35
+ address: z.ZodNullable<z.ZodOptional<z.ZodString>>;
36
+ postcode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
37
+ county: z.ZodNullable<z.ZodOptional<z.ZodString>>;
38
+ adminDistrict: z.ZodNullable<z.ZodOptional<z.ZodString>>;
39
+ builtUpArea: z.ZodNullable<z.ZodOptional<z.ZodString>>;
40
+ postTown: z.ZodNullable<z.ZodOptional<z.ZodString>>;
41
+ areaCovered: z.ZodNullable<z.ZodOptional<z.ZodString>>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ address?: string | null | undefined;
44
+ postcode?: string | null | undefined;
45
+ county?: string | null | undefined;
46
+ adminDistrict?: string | null | undefined;
47
+ builtUpArea?: string | null | undefined;
48
+ postTown?: string | null | undefined;
49
+ areaCovered?: string | null | undefined;
50
+ }, {
51
+ address?: string | null | undefined;
52
+ postcode?: string | null | undefined;
53
+ county?: string | null | undefined;
54
+ adminDistrict?: string | null | undefined;
55
+ builtUpArea?: string | null | undefined;
56
+ postTown?: string | null | undefined;
57
+ areaCovered?: string | null | undefined;
58
+ }>;
59
+ export type CreateLocation = z.infer<typeof CreateLocationSchema>;
60
+ export type LocationDetails = z.infer<typeof LocationDetailsSchema>;
61
+ /**
62
+ * Common autocomplete query schema used across all autocomplete endpoints.
63
+ * Individual contracts can extend this if they need additional fields.
64
+ */
65
+ export declare const AutocompleteQuerySchema: z.ZodObject<{
66
+ query: z.ZodOptional<z.ZodString>;
67
+ id: z.ZodOptional<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ query?: string | undefined;
70
+ id?: string | undefined;
71
+ }, {
72
+ query?: string | undefined;
73
+ id?: string | undefined;
74
+ }>;
75
+ export type AutocompleteQuery = z.infer<typeof AutocompleteQuerySchema>;
76
+ export declare const ResourceIdSchema: z.ZodObject<{
77
+ id: z.ZodString;
78
+ }, "strip", z.ZodTypeAny, {
79
+ id: string;
80
+ }, {
81
+ id: string;
82
+ }>;
83
+ export type ResourceId = z.infer<typeof ResourceIdSchema>;
84
+ export declare const UserSummarySchema: z.ZodObject<{
85
+ id: z.ZodString;
86
+ firstName: z.ZodString;
87
+ lastName: z.ZodString;
88
+ email: z.ZodString;
89
+ }, "strip", z.ZodTypeAny, {
90
+ id: string;
91
+ firstName: string;
92
+ lastName: string;
93
+ email: string;
94
+ }, {
95
+ id: string;
96
+ firstName: string;
97
+ lastName: string;
98
+ email: string;
99
+ }>;
100
+ export type UserSummary = z.infer<typeof UserSummarySchema>;
101
+ export declare const PayRangeSchema: z.ZodObject<{
102
+ minRate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
103
+ maxRate: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ minRate?: number | null | undefined;
106
+ maxRate?: number | null | undefined;
107
+ }, {
108
+ minRate?: number | null | undefined;
109
+ maxRate?: number | null | undefined;
110
+ }>;
111
+ export type PayRange = z.infer<typeof PayRangeSchema>;
112
+ export declare const MessageResponseSchema: z.ZodObject<{
113
+ message: z.ZodString;
114
+ }, "strip", z.ZodTypeAny, {
115
+ message: string;
116
+ }, {
117
+ message: string;
118
+ }>;
119
+ export type MessageResponse = z.infer<typeof MessageResponseSchema>;
20
120
  //# sourceMappingURL=common-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-schemas.d.ts","sourceRoot":"","sources":["../../contracts/common/common-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AAEH,eAAO,MAAM,eAAe,4BAEM,CAAC;AAEnC,eAAO,MAAM,cAAc,gCAEM,CAAC;AAElC,eAAO,MAAM,eAAe;;;;;;;;;EAaM,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"common-schemas.d.ts","sourceRoot":"","sources":["../../contracts/common/common-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AAEH,eAAO,MAAM,eAAe,4BAEM,CAAC;AAEnC,eAAO,MAAM,cAAc,gCAEM,CAAC;AAElC,eAAO,MAAM,eAAe;;;;;;;;;EAaM,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,kBAAkB,oEAEM,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,iBAAiB,i6EAoMM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;EAYM,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAOM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;EAeM,CAAC;AAElC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,qBAAqB;;;;;;EAIM,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DateRangeSchema = exports.RateUnitSchema = exports.SortOrderSchema = void 0;
3
+ exports.MessageResponseSchema = exports.PayRangeSchema = exports.UserSummarySchema = exports.ResourceIdSchema = exports.AutocompleteQuerySchema = exports.LocationDetailsSchema = exports.CreateLocationSchema = exports.NationalitySchema = exports.EnglishLevelSchema = exports.DateRangeSchema = exports.RateUnitSchema = exports.SortOrderSchema = void 0;
4
4
  const zod_openapi_1 = require("@anatine/zod-openapi");
5
5
  const zod_1 = require("zod");
6
6
  (0, zod_openapi_1.extendZodWithOpenApi)(zod_1.z);
@@ -27,3 +27,270 @@ exports.DateRangeSchema = zod_1.z
27
27
  .describe('End of the date range (inclusive)'),
28
28
  })
29
29
  .openapi({ title: 'DateRange' });
30
+ exports.EnglishLevelSchema = zod_1.z
31
+ .enum(['NONE', 'BASIC', 'INTERMEDIATE', 'ADVANCED', 'NATIVE'])
32
+ .openapi({ title: 'EnglishLevel' });
33
+ exports.NationalitySchema = zod_1.z
34
+ .enum([
35
+ 'AFGHAN',
36
+ 'ALBANIAN',
37
+ 'ALGERIAN',
38
+ 'AMERICAN',
39
+ 'ANDORRAN',
40
+ 'ANGOLAN',
41
+ 'ANTIGUANS',
42
+ 'ARGENTINEAN',
43
+ 'ARMENIAN',
44
+ 'AUSTRALIAN',
45
+ 'AUSTRIAN',
46
+ 'AZERBAIJANI',
47
+ 'BAHAMIAN',
48
+ 'BAHRAINI',
49
+ 'BANGLADESHI',
50
+ 'BARBADIAN',
51
+ 'BARBUDANS',
52
+ 'BELARUSIAN',
53
+ 'BELGIAN',
54
+ 'BELIZEAN',
55
+ 'BENINESE',
56
+ 'BHUTANESE',
57
+ 'BOLIVIAN',
58
+ 'BOSNIAN',
59
+ 'BRAZILIAN',
60
+ 'BRITISH',
61
+ 'BRUNEIAN',
62
+ 'BULGARIAN',
63
+ 'BURKINABE',
64
+ 'BURMESE',
65
+ 'BURUNDIAN',
66
+ 'CAMBODIAN',
67
+ 'CAMEROONIAN',
68
+ 'CANADIAN',
69
+ 'CAPE_VERDEAN',
70
+ 'CENTRAL_AFRICAN',
71
+ 'CHADIAN',
72
+ 'CHILEAN',
73
+ 'CHINESE',
74
+ 'COLOMBIAN',
75
+ 'COMORAN',
76
+ 'CONGOLESE',
77
+ 'COSTA_RICAN',
78
+ 'CROATIAN',
79
+ 'CUBAN',
80
+ 'CYPRIOT',
81
+ 'CZECH',
82
+ 'DANISH',
83
+ 'DJIBOUTI',
84
+ 'DOMINICAN',
85
+ 'DUTCH',
86
+ 'EAST_TIMORESE',
87
+ 'ECUADOREAN',
88
+ 'EGYPTIAN',
89
+ 'EMIRIAN',
90
+ 'EQUATORIAL_GUINEAN',
91
+ 'ERITREAN',
92
+ 'ESTONIAN',
93
+ 'ETHIOPIAN',
94
+ 'FIJIAN',
95
+ 'FILIPINO',
96
+ 'FINNISH',
97
+ 'FRENCH',
98
+ 'GABONESE',
99
+ 'GAMBIAN',
100
+ 'GEORGIAN',
101
+ 'GERMAN',
102
+ 'GHANAIAN',
103
+ 'GREEK',
104
+ 'GRENADIAN',
105
+ 'GUATEMALAN',
106
+ 'GUINEA_BISSAUAN',
107
+ 'GUINEAN',
108
+ 'GUYANESE',
109
+ 'HAITIAN',
110
+ 'HERZEGOVINIAN',
111
+ 'HONDURAN',
112
+ 'HUNGARIAN',
113
+ 'ICELANDER',
114
+ 'INDIAN',
115
+ 'INDONESIAN',
116
+ 'IRANIAN',
117
+ 'IRAQI',
118
+ 'IRISH',
119
+ 'ISRAELI',
120
+ 'ITALIAN',
121
+ 'IVORIAN',
122
+ 'JAMAICAN',
123
+ 'JAPANESE',
124
+ 'JORDANIAN',
125
+ 'KAZAKHSTANI',
126
+ 'KENYAN',
127
+ 'KITTIAN_AND_NEVISIAN',
128
+ 'KUWAITI',
129
+ 'KYRGYZ',
130
+ 'LAOTIAN',
131
+ 'LATVIAN',
132
+ 'LEBANESE',
133
+ 'LIBERIAN',
134
+ 'LIBYAN',
135
+ 'LIECHTENSTEINER',
136
+ 'LITHUANIAN',
137
+ 'LUXEMBOURGER',
138
+ 'MACEDONIAN',
139
+ 'MALAGASY',
140
+ 'MALAWIAN',
141
+ 'MALAYSIAN',
142
+ 'MALDIVAN',
143
+ 'MALIAN',
144
+ 'MALTESE',
145
+ 'MARSHALLESE',
146
+ 'MAURITANIAN',
147
+ 'MAURITIAN',
148
+ 'MEXICAN',
149
+ 'MICRONESIAN',
150
+ 'MOLDOVAN',
151
+ 'MONACAN',
152
+ 'MONGOLIAN',
153
+ 'MOROCCAN',
154
+ 'MOSOTHO',
155
+ 'MOTSWANA',
156
+ 'MOZAMBICAN',
157
+ 'NAMIBIAN',
158
+ 'NAURUAN',
159
+ 'NEPALESE',
160
+ 'NEW_ZEALANDER',
161
+ 'NI_VANUATU',
162
+ 'NICARAGUAN',
163
+ 'NIGERIEN',
164
+ 'NIGERIAN',
165
+ 'NORTH_KOREAN',
166
+ 'NORTHERN_IRISH',
167
+ 'NORWEGIAN',
168
+ 'OMANI',
169
+ 'PAKISTANI',
170
+ 'PALAUAN',
171
+ 'PANAMANIAN',
172
+ 'PAPUA_NEW_GUINEAN',
173
+ 'PARAGUAYAN',
174
+ 'PERUVIAN',
175
+ 'POLISH',
176
+ 'PORTUGUESE',
177
+ 'QATARI',
178
+ 'ROMANIAN',
179
+ 'RUSSIAN',
180
+ 'RWANDAN',
181
+ 'SAINT_LUCIAN',
182
+ 'SALVADORAN',
183
+ 'SAMOAN',
184
+ 'SAN_MARINESE',
185
+ 'SAO_TOMEAN',
186
+ 'SAUDI',
187
+ 'SCOTTISH',
188
+ 'SENEGALESE',
189
+ 'SERBIAN',
190
+ 'SEYCHELLOIS',
191
+ 'SIERRA_LEONEAN',
192
+ 'SINGAPOREAN',
193
+ 'SLOVAKIAN',
194
+ 'SLOVENIAN',
195
+ 'SOLOMON_ISLANDER',
196
+ 'SOMALI',
197
+ 'SOUTH_AFRICAN',
198
+ 'SOUTH_KOREAN',
199
+ 'SOUTH_SUDANESE',
200
+ 'SPANISH',
201
+ 'SRI_LANKAN',
202
+ 'SUDANESE',
203
+ 'SURINAMER',
204
+ 'SWAZI',
205
+ 'SWEDISH',
206
+ 'SWISS',
207
+ 'SYRIAN',
208
+ 'TAIWANESE',
209
+ 'TAJIK',
210
+ 'TANZANIAN',
211
+ 'THAI',
212
+ 'TOGOLESE',
213
+ 'TONGAN',
214
+ 'TRINIDADIAN_OR_TOBAGONIAN',
215
+ 'TUNISIAN',
216
+ 'TURKISH',
217
+ 'TUVALUAN',
218
+ 'UGANDAN',
219
+ 'UKRAINIAN',
220
+ 'URUGUAYAN',
221
+ 'UZBEKISTANI',
222
+ 'VENEZUELAN',
223
+ 'VIETNAMESE',
224
+ 'WELSH',
225
+ 'YEMENITE',
226
+ 'ZAMBIAN',
227
+ 'ZIMBABWEAN',
228
+ ])
229
+ .openapi({ title: 'Nationality' });
230
+ // Location schemas matching the actual DTOs
231
+ exports.CreateLocationSchema = zod_1.z.object({
232
+ address: zod_1.z.string().optional().describe('Street address'),
233
+ postcode: zod_1.z.string().max(8).optional().describe('Postcode'),
234
+ });
235
+ exports.LocationDetailsSchema = zod_1.z.object({
236
+ address: zod_1.z.string().optional().nullable().describe('Street address'),
237
+ postcode: zod_1.z.string().optional().nullable().describe('Full postcode'),
238
+ county: zod_1.z.string().optional().nullable().describe('County'),
239
+ adminDistrict: zod_1.z
240
+ .string()
241
+ .optional()
242
+ .nullable()
243
+ .describe('Administrative district'),
244
+ builtUpArea: zod_1.z.string().optional().nullable().describe('Built-up area'),
245
+ postTown: zod_1.z.string().optional().nullable().describe('Post town'),
246
+ areaCovered: zod_1.z.string().optional().nullable().describe('Area covered'),
247
+ });
248
+ /**
249
+ * Common autocomplete query schema used across all autocomplete endpoints.
250
+ * Individual contracts can extend this if they need additional fields.
251
+ */
252
+ exports.AutocompleteQuerySchema = zod_1.z
253
+ .object({
254
+ query: zod_1.z
255
+ .string()
256
+ .optional()
257
+ .describe('Search query string to filter results'),
258
+ id: zod_1.z
259
+ .string()
260
+ .uuid()
261
+ .optional()
262
+ .describe('Specific record ID to include in results'),
263
+ })
264
+ .openapi({ title: 'AutocompleteQuery' });
265
+ exports.ResourceIdSchema = zod_1.z.object({
266
+ id: zod_1.z.string().uuid().describe('The unique identifier of the resource'),
267
+ });
268
+ exports.UserSummarySchema = zod_1.z
269
+ .object({
270
+ id: zod_1.z.string().uuid().describe('User ID'),
271
+ firstName: zod_1.z.string().describe('First Name'),
272
+ lastName: zod_1.z.string().describe('Last Name'),
273
+ email: zod_1.z.string().email().describe('Email Address'),
274
+ })
275
+ .openapi({ title: 'UserSummary' });
276
+ exports.PayRangeSchema = zod_1.z
277
+ .object({
278
+ minRate: zod_1.z
279
+ .number()
280
+ .min(0)
281
+ .optional()
282
+ .nullable()
283
+ .describe('Minimum hourly pay rate (inclusive)'),
284
+ maxRate: zod_1.z
285
+ .number()
286
+ .min(0)
287
+ .optional()
288
+ .nullable()
289
+ .describe('Maximum hourly pay rate (inclusive)'),
290
+ })
291
+ .openapi({ title: 'PayRange' });
292
+ exports.MessageResponseSchema = zod_1.z
293
+ .object({
294
+ message: zod_1.z.string().describe('Response message'),
295
+ })
296
+ .openapi({ title: 'MessageResponse' });