@dakkitor/api-contracts 1.1.10 → 1.1.12

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 (89) hide show
  1. package/dist/actives/actives.contract.d.ts +59 -60
  2. package/dist/actives/actives.contract.d.ts.map +1 -1
  3. package/dist/actives/actives.contract.js +16 -19
  4. package/dist/agent-client-links/agent-client-links.contract.d.ts +1909 -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 +371 -280
  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 +375 -426
  17. package/dist/client-contacts/client-contacts.contract.d.ts.map +1 -1
  18. package/dist/client-contacts/client-contacts.contract.js +24 -13
  19. package/dist/clients/clients.contract.d.ts +317 -289
  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/error-schemas.d.ts +7 -7
  32. package/dist/common/error-schemas.d.ts.map +1 -1
  33. package/dist/common/openapi-metadata.d.ts +6 -0
  34. package/dist/common/openapi-metadata.d.ts.map +1 -1
  35. package/dist/companies/companies.contract.d.ts +1108 -0
  36. package/dist/companies/companies.contract.d.ts.map +1 -0
  37. package/dist/companies/companies.contract.js +164 -0
  38. package/dist/cron-executions/cron-executions.contract.d.ts +1643 -0
  39. package/dist/cron-executions/cron-executions.contract.d.ts.map +1 -0
  40. package/dist/cron-executions/cron-executions.contract.js +271 -0
  41. package/dist/curated-workers/curated-workers.contract.d.ts +3183 -0
  42. package/dist/curated-workers/curated-workers.contract.d.ts.map +1 -0
  43. package/dist/curated-workers/curated-workers.contract.js +444 -0
  44. package/dist/dashboards/agent-daily-metrics.contract.d.ts +639 -0
  45. package/dist/dashboards/agent-daily-metrics.contract.d.ts.map +1 -0
  46. package/dist/dashboards/agent-daily-metrics.contract.js +118 -0
  47. package/dist/files/files.contract.d.ts +1258 -0
  48. package/dist/files/files.contract.d.ts.map +1 -0
  49. package/dist/files/files.contract.js +205 -0
  50. package/dist/health/health.contract.d.ts +161 -0
  51. package/dist/health/health.contract.d.ts.map +1 -0
  52. package/dist/health/health.contract.js +52 -0
  53. package/dist/index.d.ts +27393 -3342
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +63 -0
  56. package/dist/jobs/jobs.contract.d.ts +2303 -0
  57. package/dist/jobs/jobs.contract.d.ts.map +1 -0
  58. package/dist/jobs/jobs.contract.js +295 -0
  59. package/dist/lead-assignments/lead-assignments.contract.d.ts +1826 -0
  60. package/dist/lead-assignments/lead-assignments.contract.d.ts.map +1 -0
  61. package/dist/lead-assignments/lead-assignments.contract.js +187 -0
  62. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts +1147 -0
  63. package/dist/lead-distribution/agent-lead-distribution.contract.d.ts.map +1 -0
  64. package/dist/lead-distribution/agent-lead-distribution.contract.js +154 -0
  65. package/dist/lead-distribution/lead-distribution-config.contract.d.ts +1085 -0
  66. package/dist/lead-distribution/lead-distribution-config.contract.d.ts.map +1 -0
  67. package/dist/lead-distribution/lead-distribution-config.contract.js +196 -0
  68. package/dist/leads/leads.contract.d.ts +1690 -0
  69. package/dist/leads/leads.contract.d.ts.map +1 -0
  70. package/dist/leads/leads.contract.js +328 -0
  71. package/dist/locations/locations.contract.d.ts +974 -0
  72. package/dist/locations/locations.contract.d.ts.map +1 -0
  73. package/dist/locations/locations.contract.js +154 -0
  74. package/dist/postcodes/postcodes.contract.d.ts +370 -0
  75. package/dist/postcodes/postcodes.contract.d.ts.map +1 -0
  76. package/dist/postcodes/postcodes.contract.js +90 -0
  77. package/dist/qualifications/qualifications.contract.d.ts +1489 -0
  78. package/dist/qualifications/qualifications.contract.d.ts.map +1 -0
  79. package/dist/qualifications/qualifications.contract.js +215 -0
  80. package/dist/trades/trades.contract.d.ts +799 -0
  81. package/dist/trades/trades.contract.d.ts.map +1 -0
  82. package/dist/trades/trades.contract.js +112 -0
  83. package/dist/users/users.contract.d.ts +162 -152
  84. package/dist/users/users.contract.d.ts.map +1 -1
  85. package/dist/users/users.contract.js +16 -28
  86. package/dist/workers/workers.contract.d.ts +3376 -0
  87. package/dist/workers/workers.contract.d.ts.map +1 -0
  88. package/dist/workers/workers.contract.js +363 -0
  89. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.contract.d.ts","sourceRoot":"","sources":["../../contracts/locations/locations.contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAUhE,eAAO,MAAM,mBAAmB,uDAEG,CAAC;AAEpC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDM,CAAC;AAGlC,eAAO,MAAM,oBAAoB;;;;;;;;;EAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;;;;;;;EAE/B,CAAC;AAIH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAIhC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmF7B,CAAC"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.locationsContract = exports.CreateLocationSchema = exports.FilterLocationSchema = exports.UpdateLocationSchema = exports.LocationSchema = exports.PostcodeLevelSchema = void 0;
4
+ const core_1 = require("@ts-rest/core");
5
+ const zod_1 = require("zod");
6
+ const common_schemas_1 = require("../common/common-schemas");
7
+ Object.defineProperty(exports, "CreateLocationSchema", { enumerable: true, get: function () { return common_schemas_1.CreateLocationSchema; } });
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
+ const c = (0, core_1.initContract)();
12
+ // --- Schemas ---
13
+ // PostcodeLevel enum - matches the TypeORM enum
14
+ exports.PostcodeLevelSchema = zod_1.z
15
+ .enum(['POSTCODE', 'SECTOR', 'DISTRICT', 'AREA'])
16
+ .describe('Type of the location');
17
+ exports.LocationSchema = zod_1.z
18
+ .object({
19
+ id: zod_1.z.string().uuid().describe('Unique identifier for the location'),
20
+ address: zod_1.z
21
+ .string()
22
+ .nullable()
23
+ .optional()
24
+ .describe('The specific address line'),
25
+ type: exports.PostcodeLevelSchema,
26
+ postcode: zod_1.z.string().optional().describe('The postcode or relevant part'),
27
+ county: zod_1.z
28
+ .string()
29
+ .nullable()
30
+ .optional()
31
+ .describe('County associated with the postcode'),
32
+ adminDistrict: zod_1.z
33
+ .string()
34
+ .nullable()
35
+ .optional()
36
+ .describe('Administrative district'),
37
+ builtUpArea: zod_1.z
38
+ .string()
39
+ .nullable()
40
+ .optional()
41
+ .describe('Built-up area description'),
42
+ postTown: zod_1.z.string().nullable().optional().describe('Primary post town'),
43
+ areaCovered: zod_1.z
44
+ .string()
45
+ .nullable()
46
+ .optional()
47
+ .describe('Description of the area covered'),
48
+ country: zod_1.z
49
+ .string()
50
+ .nullable()
51
+ .optional()
52
+ .describe('Country associated with the postcode'),
53
+ region: zod_1.z
54
+ .string()
55
+ .nullable()
56
+ .optional()
57
+ .describe('Region associated with the postcode'),
58
+ createdAt: zod_1.z
59
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
60
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
61
+ .describe('Creation timestamp'),
62
+ updatedAt: zod_1.z
63
+ .union([zod_1.z.string().datetime(), zod_1.z.date()])
64
+ .transform((val) => (val instanceof Date ? val.toISOString() : val))
65
+ .describe('Last update timestamp'),
66
+ })
67
+ .openapi({ title: 'Location' });
68
+ // Reuse CreateLocationSchema from common-schemas
69
+ exports.UpdateLocationSchema = common_schemas_1.CreateLocationSchema;
70
+ exports.FilterLocationSchema = pagination_query_schema_1.PaginationQuerySchema.openapi({
71
+ title: 'FilterLocation',
72
+ });
73
+ // --- Contract ---
74
+ exports.locationsContract = c.router({
75
+ create: {
76
+ method: 'POST',
77
+ path: '/locations',
78
+ body: common_schemas_1.CreateLocationSchema,
79
+ responses: {
80
+ 201: exports.LocationSchema,
81
+ },
82
+ summary: 'Create a new location',
83
+ metadata: {
84
+ tags: ['Locations'],
85
+ },
86
+ },
87
+ findAll: {
88
+ method: 'GET',
89
+ path: '/locations',
90
+ query: exports.FilterLocationSchema,
91
+ responses: {
92
+ 200: (0, pagination_schema_1.createPaginatedResponseSchema)(exports.LocationSchema),
93
+ },
94
+ summary: 'Get all locations',
95
+ metadata: {
96
+ tags: ['Locations'],
97
+ },
98
+ },
99
+ findOne: {
100
+ method: 'GET',
101
+ path: '/locations/:id',
102
+ pathParams: zod_1.z.object({
103
+ id: zod_1.z.string().uuid(),
104
+ }),
105
+ responses: {
106
+ 200: exports.LocationSchema,
107
+ 404: error_schemas_1.ErrorResponseSchema,
108
+ },
109
+ summary: 'Get a location by ID',
110
+ metadata: {
111
+ tags: ['Locations'],
112
+ },
113
+ },
114
+ update: {
115
+ method: 'PATCH',
116
+ path: '/locations/:id',
117
+ pathParams: zod_1.z.object({
118
+ id: zod_1.z.string().uuid(),
119
+ }),
120
+ body: exports.UpdateLocationSchema,
121
+ responses: {
122
+ 200: exports.LocationSchema,
123
+ 404: error_schemas_1.ErrorResponseSchema,
124
+ },
125
+ summary: 'Update a location by ID',
126
+ metadata: {
127
+ tags: ['Locations'],
128
+ },
129
+ },
130
+ remove: {
131
+ method: 'DELETE',
132
+ path: '/locations/:id',
133
+ pathParams: zod_1.z.object({
134
+ id: zod_1.z.string().uuid(),
135
+ }),
136
+ body: c.noBody(),
137
+ responses: {
138
+ 204: zod_1.z.undefined(),
139
+ 404: error_schemas_1.ErrorResponseSchema,
140
+ },
141
+ summary: 'Delete a location by ID',
142
+ metadata: {
143
+ tags: ['Locations'],
144
+ },
145
+ },
146
+ }, {
147
+ pathPrefix: '/v2',
148
+ commonResponses: {
149
+ 400: error_schemas_1.ErrorResponseSchema,
150
+ 401: error_schemas_1.ErrorResponseSchema,
151
+ 403: error_schemas_1.ErrorResponseSchema,
152
+ 500: error_schemas_1.ErrorResponseSchema,
153
+ },
154
+ });
@@ -0,0 +1,370 @@
1
+ import { z } from 'zod';
2
+ export declare const PostcodeAutocompleteQuerySchema: z.ZodObject<{
3
+ query: z.ZodOptional<z.ZodString>;
4
+ id: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ query?: string | undefined;
7
+ id?: string | undefined;
8
+ }, {
9
+ query?: string | undefined;
10
+ id?: string | undefined;
11
+ }>;
12
+ export declare const PostcodeAutocompleteResponseSchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ code: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ code: string;
17
+ id: string;
18
+ }, {
19
+ code: string;
20
+ id: string;
21
+ }>;
22
+ export declare const PostcodeSearchQuerySchema: z.ZodObject<{
23
+ limit: z.ZodDefault<z.ZodNumber>;
24
+ page: z.ZodDefault<z.ZodNumber>;
25
+ } & {
26
+ query: z.ZodString;
27
+ }, "strip", z.ZodTypeAny, {
28
+ query: string;
29
+ limit: number;
30
+ page: number;
31
+ }, {
32
+ query: string;
33
+ limit?: number | undefined;
34
+ page?: number | undefined;
35
+ }>;
36
+ export declare const PostcodeSearchResultSchema: z.ZodObject<{
37
+ code: z.ZodString;
38
+ type: z.ZodEnum<["area", "district", "sector", "postcode"]>;
39
+ description: z.ZodOptional<z.ZodString>;
40
+ relevance: z.ZodNumber;
41
+ }, "strip", z.ZodTypeAny, {
42
+ code: string;
43
+ type: "postcode" | "area" | "district" | "sector";
44
+ relevance: number;
45
+ description?: string | undefined;
46
+ }, {
47
+ code: string;
48
+ type: "postcode" | "area" | "district" | "sector";
49
+ relevance: number;
50
+ description?: string | undefined;
51
+ }>;
52
+ export declare const PostcodeAutocompleteArraySchema: z.ZodArray<z.ZodObject<{
53
+ id: z.ZodString;
54
+ code: z.ZodString;
55
+ }, "strip", z.ZodTypeAny, {
56
+ code: string;
57
+ id: string;
58
+ }, {
59
+ code: string;
60
+ id: string;
61
+ }>, "many">;
62
+ export type PostcodeAutocompleteQuery = z.infer<typeof PostcodeAutocompleteQuerySchema>;
63
+ export type PostcodeAutocompleteResponse = z.infer<typeof PostcodeAutocompleteResponseSchema>;
64
+ export type PostcodeAutocompleteArray = z.infer<typeof PostcodeAutocompleteArraySchema>;
65
+ export type PostcodeSearchQuery = z.infer<typeof PostcodeSearchQuerySchema>;
66
+ export type PostcodeSearchResult = z.infer<typeof PostcodeSearchResultSchema>;
67
+ export declare const postcodesContract: {
68
+ autocomplete: {
69
+ metadata: {
70
+ tags: string[];
71
+ };
72
+ query: z.ZodObject<{
73
+ query: z.ZodOptional<z.ZodString>;
74
+ id: z.ZodOptional<z.ZodString>;
75
+ }, "strip", z.ZodTypeAny, {
76
+ query?: string | undefined;
77
+ id?: string | undefined;
78
+ }, {
79
+ query?: string | undefined;
80
+ id?: string | undefined;
81
+ }>;
82
+ summary: "Get postcodes for autocomplete";
83
+ method: "GET";
84
+ path: "/v1/postcodes/autocomplete";
85
+ responses: {
86
+ 400: z.ZodObject<{
87
+ statusCode: z.ZodNumber;
88
+ message: z.ZodString;
89
+ code: z.ZodString;
90
+ details: z.ZodOptional<z.ZodUnknown>;
91
+ timestamp: z.ZodString;
92
+ path: z.ZodString;
93
+ correlationId: z.ZodOptional<z.ZodString>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ statusCode: number;
96
+ message: string;
97
+ code: string;
98
+ timestamp: string;
99
+ path: string;
100
+ details?: unknown;
101
+ correlationId?: string | undefined;
102
+ }, {
103
+ statusCode: number;
104
+ message: string;
105
+ code: string;
106
+ timestamp: string;
107
+ path: string;
108
+ details?: unknown;
109
+ correlationId?: string | undefined;
110
+ }>;
111
+ 401: z.ZodObject<{
112
+ statusCode: z.ZodNumber;
113
+ message: z.ZodString;
114
+ code: z.ZodString;
115
+ details: z.ZodOptional<z.ZodUnknown>;
116
+ timestamp: z.ZodString;
117
+ path: z.ZodString;
118
+ correlationId: z.ZodOptional<z.ZodString>;
119
+ }, "strip", z.ZodTypeAny, {
120
+ statusCode: number;
121
+ message: string;
122
+ code: string;
123
+ timestamp: string;
124
+ path: string;
125
+ details?: unknown;
126
+ correlationId?: string | undefined;
127
+ }, {
128
+ statusCode: number;
129
+ message: string;
130
+ code: string;
131
+ timestamp: string;
132
+ path: string;
133
+ details?: unknown;
134
+ correlationId?: string | undefined;
135
+ }>;
136
+ 403: z.ZodObject<{
137
+ statusCode: z.ZodNumber;
138
+ message: z.ZodString;
139
+ code: z.ZodString;
140
+ details: z.ZodOptional<z.ZodUnknown>;
141
+ timestamp: z.ZodString;
142
+ path: z.ZodString;
143
+ correlationId: z.ZodOptional<z.ZodString>;
144
+ }, "strip", z.ZodTypeAny, {
145
+ statusCode: number;
146
+ message: string;
147
+ code: string;
148
+ timestamp: string;
149
+ path: string;
150
+ details?: unknown;
151
+ correlationId?: string | undefined;
152
+ }, {
153
+ statusCode: number;
154
+ message: string;
155
+ code: string;
156
+ timestamp: string;
157
+ path: string;
158
+ details?: unknown;
159
+ correlationId?: string | undefined;
160
+ }>;
161
+ 500: z.ZodObject<{
162
+ statusCode: z.ZodNumber;
163
+ message: z.ZodString;
164
+ code: z.ZodString;
165
+ details: z.ZodOptional<z.ZodUnknown>;
166
+ timestamp: z.ZodString;
167
+ path: z.ZodString;
168
+ correlationId: z.ZodOptional<z.ZodString>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ statusCode: number;
171
+ message: string;
172
+ code: string;
173
+ timestamp: string;
174
+ path: string;
175
+ details?: unknown;
176
+ correlationId?: string | undefined;
177
+ }, {
178
+ statusCode: number;
179
+ message: string;
180
+ code: string;
181
+ timestamp: string;
182
+ path: string;
183
+ details?: unknown;
184
+ correlationId?: string | undefined;
185
+ }>;
186
+ 200: z.ZodArray<z.ZodObject<{
187
+ id: z.ZodString;
188
+ code: z.ZodString;
189
+ }, "strip", z.ZodTypeAny, {
190
+ code: string;
191
+ id: string;
192
+ }, {
193
+ code: string;
194
+ id: string;
195
+ }>, "many">;
196
+ };
197
+ };
198
+ search: {
199
+ metadata: {
200
+ tags: string[];
201
+ };
202
+ query: z.ZodObject<{
203
+ limit: z.ZodDefault<z.ZodNumber>;
204
+ page: z.ZodDefault<z.ZodNumber>;
205
+ } & {
206
+ query: z.ZodString;
207
+ }, "strip", z.ZodTypeAny, {
208
+ query: string;
209
+ limit: number;
210
+ page: number;
211
+ }, {
212
+ query: string;
213
+ limit?: number | undefined;
214
+ page?: number | undefined;
215
+ }>;
216
+ summary: "Search postcodes";
217
+ method: "GET";
218
+ path: "/v1/postcodes/search";
219
+ responses: {
220
+ 400: z.ZodObject<{
221
+ statusCode: z.ZodNumber;
222
+ message: z.ZodString;
223
+ code: z.ZodString;
224
+ details: z.ZodOptional<z.ZodUnknown>;
225
+ timestamp: z.ZodString;
226
+ path: z.ZodString;
227
+ correlationId: z.ZodOptional<z.ZodString>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ statusCode: number;
230
+ message: string;
231
+ code: string;
232
+ timestamp: string;
233
+ path: string;
234
+ details?: unknown;
235
+ correlationId?: string | undefined;
236
+ }, {
237
+ statusCode: number;
238
+ message: string;
239
+ code: string;
240
+ timestamp: string;
241
+ path: string;
242
+ details?: unknown;
243
+ correlationId?: string | undefined;
244
+ }>;
245
+ 401: z.ZodObject<{
246
+ statusCode: z.ZodNumber;
247
+ message: z.ZodString;
248
+ code: z.ZodString;
249
+ details: z.ZodOptional<z.ZodUnknown>;
250
+ timestamp: z.ZodString;
251
+ path: z.ZodString;
252
+ correlationId: z.ZodOptional<z.ZodString>;
253
+ }, "strip", z.ZodTypeAny, {
254
+ statusCode: number;
255
+ message: string;
256
+ code: string;
257
+ timestamp: string;
258
+ path: string;
259
+ details?: unknown;
260
+ correlationId?: string | undefined;
261
+ }, {
262
+ statusCode: number;
263
+ message: string;
264
+ code: string;
265
+ timestamp: string;
266
+ path: string;
267
+ details?: unknown;
268
+ correlationId?: string | undefined;
269
+ }>;
270
+ 403: z.ZodObject<{
271
+ statusCode: z.ZodNumber;
272
+ message: z.ZodString;
273
+ code: z.ZodString;
274
+ details: z.ZodOptional<z.ZodUnknown>;
275
+ timestamp: z.ZodString;
276
+ path: z.ZodString;
277
+ correlationId: z.ZodOptional<z.ZodString>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ statusCode: number;
280
+ message: string;
281
+ code: string;
282
+ timestamp: string;
283
+ path: string;
284
+ details?: unknown;
285
+ correlationId?: string | undefined;
286
+ }, {
287
+ statusCode: number;
288
+ message: string;
289
+ code: string;
290
+ timestamp: string;
291
+ path: string;
292
+ details?: unknown;
293
+ correlationId?: string | undefined;
294
+ }>;
295
+ 500: z.ZodObject<{
296
+ statusCode: z.ZodNumber;
297
+ message: z.ZodString;
298
+ code: z.ZodString;
299
+ details: z.ZodOptional<z.ZodUnknown>;
300
+ timestamp: z.ZodString;
301
+ path: z.ZodString;
302
+ correlationId: z.ZodOptional<z.ZodString>;
303
+ }, "strip", z.ZodTypeAny, {
304
+ statusCode: number;
305
+ message: string;
306
+ code: string;
307
+ timestamp: string;
308
+ path: string;
309
+ details?: unknown;
310
+ correlationId?: string | undefined;
311
+ }, {
312
+ statusCode: number;
313
+ message: string;
314
+ code: string;
315
+ timestamp: string;
316
+ path: string;
317
+ details?: unknown;
318
+ correlationId?: string | undefined;
319
+ }>;
320
+ 200: z.ZodObject<{
321
+ items: z.ZodArray<z.ZodObject<{
322
+ code: z.ZodString;
323
+ type: z.ZodEnum<["area", "district", "sector", "postcode"]>;
324
+ description: z.ZodOptional<z.ZodString>;
325
+ relevance: z.ZodNumber;
326
+ }, "strip", z.ZodTypeAny, {
327
+ code: string;
328
+ type: "postcode" | "area" | "district" | "sector";
329
+ relevance: number;
330
+ description?: string | undefined;
331
+ }, {
332
+ code: string;
333
+ type: "postcode" | "area" | "district" | "sector";
334
+ relevance: number;
335
+ description?: string | undefined;
336
+ }>, "many">;
337
+ totalCount: z.ZodNumber;
338
+ limit: z.ZodNumber;
339
+ skip: z.ZodNumber;
340
+ currentPage: z.ZodNumber;
341
+ totalPages: z.ZodNumber;
342
+ }, "strip", z.ZodTypeAny, {
343
+ items: {
344
+ code: string;
345
+ type: "postcode" | "area" | "district" | "sector";
346
+ relevance: number;
347
+ description?: string | undefined;
348
+ }[];
349
+ totalCount: number;
350
+ limit: number;
351
+ skip: number;
352
+ currentPage: number;
353
+ totalPages: number;
354
+ }, {
355
+ items: {
356
+ code: string;
357
+ type: "postcode" | "area" | "district" | "sector";
358
+ relevance: number;
359
+ description?: string | undefined;
360
+ }[];
361
+ totalCount: number;
362
+ limit: number;
363
+ skip: number;
364
+ currentPage: number;
365
+ totalPages: number;
366
+ }>;
367
+ };
368
+ };
369
+ };
370
+ //# sourceMappingURL=postcodes.contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postcodes.contract.d.ts","sourceRoot":"","sources":["../../contracts/postcodes/postcodes.contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,+BAA+B;;;;;;;;;EAaM,CAAC;AAEnD,eAAO,MAAM,kCAAkC;;;;;;;;;EAKM,CAAC;AAEtD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;EAKM,CAAC;AAE7C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAYM,CAAC;AAE9C,eAAO,MAAM,+BAA+B;;;;;;;;;WAEM,CAAC;AAInD,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAI9E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC7B,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postcodesContract = exports.PostcodeAutocompleteArraySchema = exports.PostcodeSearchResultSchema = exports.PostcodeSearchQuerySchema = exports.PostcodeAutocompleteResponseSchema = exports.PostcodeAutocompleteQuerySchema = void 0;
4
+ const core_1 = require("@ts-rest/core");
5
+ const zod_1 = require("zod");
6
+ const error_schemas_1 = require("../common/error-schemas");
7
+ const pagination_query_schema_1 = require("../common/pagination-query.schema");
8
+ const pagination_schema_1 = require("../common/pagination.schema");
9
+ const c = (0, core_1.initContract)();
10
+ // --- Schemas ---
11
+ exports.PostcodeAutocompleteQuerySchema = zod_1.z
12
+ .object({
13
+ query: zod_1.z
14
+ .string()
15
+ .optional()
16
+ .describe('Search query string to filter postcodes'),
17
+ id: zod_1.z
18
+ .string()
19
+ .optional()
20
+ .describe('Specific postcode ID to include in results (validates UK postcode format)'),
21
+ })
22
+ .openapi({ title: 'PostcodeAutocompleteQuery' });
23
+ exports.PostcodeAutocompleteResponseSchema = zod_1.z
24
+ .object({
25
+ id: zod_1.z.string().describe('The unique identifier of the postcode.'),
26
+ code: zod_1.z.string().describe('The postcode code.'),
27
+ })
28
+ .openapi({ title: 'PostcodeAutocompleteResponse' });
29
+ exports.PostcodeSearchQuerySchema = pagination_query_schema_1.PaginationQuerySchema.extend({
30
+ query: zod_1.z
31
+ .string()
32
+ .min(1)
33
+ .describe('Search query for postcode or part of postcode'),
34
+ }).openapi({ title: 'PostcodeSearchQuery' });
35
+ exports.PostcodeSearchResultSchema = zod_1.z
36
+ .object({
37
+ code: zod_1.z.string().describe('Postcode code or identifier'),
38
+ type: zod_1.z
39
+ .enum(['area', 'district', 'sector', 'postcode'])
40
+ .describe('Type of postcode entity'),
41
+ description: zod_1.z
42
+ .string()
43
+ .optional()
44
+ .describe('Additional information about the postcode'),
45
+ relevance: zod_1.z.number().describe('Relevance score for the search result'),
46
+ })
47
+ .openapi({ title: 'PostcodeSearchResult' });
48
+ exports.PostcodeAutocompleteArraySchema = zod_1.z
49
+ .array(exports.PostcodeAutocompleteResponseSchema)
50
+ .openapi({ title: 'PostcodeAutocompleteArray' });
51
+ // --- Contract ---
52
+ exports.postcodesContract = c.router({
53
+ autocomplete: {
54
+ method: 'GET',
55
+ path: '/postcodes/autocomplete',
56
+ query: exports.PostcodeAutocompleteQuerySchema,
57
+ responses: {
58
+ 200: exports.PostcodeAutocompleteArraySchema,
59
+ },
60
+ summary: 'Get postcodes for autocomplete',
61
+ metadata: {
62
+ tags: ['Postcodes'],
63
+ },
64
+ },
65
+ search: {
66
+ method: 'GET',
67
+ path: '/postcodes/search',
68
+ query: exports.PostcodeSearchQuerySchema,
69
+ responses: {
70
+ 200: (0, pagination_schema_1.createPaginatedResponseSchema)(exports.PostcodeSearchResultSchema),
71
+ },
72
+ summary: 'Search postcodes',
73
+ metadata: {
74
+ tags: ['Postcodes'],
75
+ },
76
+ },
77
+ }, {
78
+ pathPrefix: '/v1', // Keeping v1 as per controller, but usually we migrate to v2.
79
+ // Wait, the guideline says "Versioning: Use pathPrefix ... (e.g., pathPrefix: '/v2')".
80
+ // The existing controller is @Controller('v1/postcodes').
81
+ // I should probably use /v2 for the new controller to avoid conflict if I mount it alongside.
82
+ // But the goal is migration.
83
+ // Let's stick to /v2 for the new contract to be safe and consistent with other migrations.
84
+ commonResponses: {
85
+ 400: error_schemas_1.ErrorResponseSchema,
86
+ 401: error_schemas_1.ErrorResponseSchema,
87
+ 403: error_schemas_1.ErrorResponseSchema,
88
+ 500: error_schemas_1.ErrorResponseSchema,
89
+ },
90
+ });