@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
@@ -1 +1 @@
1
- {"version":3,"file":"clients.contract.d.ts","sourceRoot":"","sources":["../../contracts/clients/clients.contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.contract.d.ts","sourceRoot":"","sources":["../../contracts/clients/clients.contract.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FjC,CAAC"}
@@ -1,33 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clientsContractRouter = exports.PaginatedResponseSchema = exports.AutocompleteQuerySchema = exports.ClientAutocompleteResponseSchema = exports.FilterClientSchema = exports.UpdateClientSchema = exports.CreateClientSchema = exports.ClientSchema = exports.ClientUserSchema = void 0;
3
+ exports.clientsContractRouter = exports.PaginatedClientResponseSchema = exports.ClientAutocompleteArraySchema = exports.ClientAutocompleteResponseSchema = exports.FilterClientSchema = exports.UpdateClientSchema = exports.UpdateClientRefinements = exports.UpdateClientBaseSchema = exports.CreateClientSchema = exports.ClientSchema = exports.ClientUserSchema = void 0;
4
4
  const zod_openapi_1 = require("@anatine/zod-openapi");
5
5
  const core_1 = require("@ts-rest/core");
6
6
  const zod_1 = require("zod");
7
+ const common_schemas_1 = require("../common/common-schemas");
7
8
  const error_schemas_1 = require("../common/error-schemas");
9
+ const pagination_query_schema_1 = require("../common/pagination-query.schema");
8
10
  const pagination_schema_1 = require("../common/pagination.schema");
9
11
  (0, zod_openapi_1.extendZodWithOpenApi)(zod_1.z);
10
12
  const ClientStatusSchema = zod_1.z
11
13
  .enum(['APPROVED', 'PENDING_VERIFICATION', 'BLACKLISTED'])
12
14
  .openapi({ title: 'ClientStatus' });
13
- const SortOrderSchema = zod_1.z.enum(['ASC', 'DESC']).openapi({ title: 'SortOrder' });
14
15
  const ClientSortableFieldsSchema = zod_1.z
15
16
  .enum(['name', 'director', 'createdAt', 'updatedAt'])
16
17
  .openapi({ title: 'ClientSortableFields' });
17
- const DateRangeSchema = zod_1.z
18
- .object({
19
- from: zod_1.z
20
- .string()
21
- .date()
22
- .nullish()
23
- .describe('Start of the date range (inclusive).'),
24
- to: zod_1.z
25
- .string()
26
- .date()
27
- .nullish()
28
- .describe('End of the date range (inclusive).'),
29
- })
30
- .openapi({ title: 'DateRange' });
31
18
  exports.ClientUserSchema = zod_1.z.object({
32
19
  id: zod_1.z.string().uuid(),
33
20
  firstName: zod_1.z.string(),
@@ -56,7 +43,6 @@ exports.ClientSchema = zod_1.z
56
43
  .union([zod_1.z.string().datetime(), zod_1.z.date()])
57
44
  .transform((val) => (val instanceof Date ? val.toISOString() : val))
58
45
  .describe('Last Update Date'),
59
- version: zod_1.z.number().describe('Version Number'),
60
46
  agentClientLinks: zod_1.z.object({ agentId: zod_1.z.string() }).describe('Agent Link'),
61
47
  })
62
48
  .openapi({ title: 'Client' });
@@ -71,7 +57,11 @@ exports.CreateClientSchema = zod_1.z
71
57
  director: zod_1.z.string().max(255).describe('Director Name'),
72
58
  })
73
59
  .openapi({ title: 'CreateClient' });
74
- exports.UpdateClientSchema = zod_1.z
60
+ /**
61
+ * Base schema for UpdateClient without refinements.
62
+ * Use this for form field introspection on the frontend.
63
+ */
64
+ exports.UpdateClientBaseSchema = zod_1.z
75
65
  .object({
76
66
  name: zod_1.z.string().max(255).optional().describe('Client Name'),
77
67
  govLink: zod_1.z
@@ -88,22 +78,39 @@ exports.UpdateClientSchema = zod_1.z
88
78
  .optional()
89
79
  .describe('Reason for Blacklisting'),
90
80
  })
91
- .refine((data) => {
92
- if (data.status === 'BLACKLISTED' && !data.blacklistReason) {
93
- return false;
81
+ .openapi({ title: 'UpdateClientBase' });
82
+ /**
83
+ * Conditional validation rules for UpdateClient.
84
+ * Export these so the frontend can apply them based on context/abilities.
85
+ */
86
+ exports.UpdateClientRefinements = {
87
+ blacklistReasonRequired: {
88
+ /** Fields that trigger this refinement */
89
+ dependsOn: ['status'],
90
+ /** Field that this refinement validates */
91
+ validates: 'blacklistReason',
92
+ /** Condition description for UI hints */
93
+ condition: 'status === "BLACKLISTED"',
94
+ /** Error message when validation fails */
95
+ message: 'blacklistReason is required when status is BLACKLISTED',
96
+ /** The actual refinement function */
97
+ check: (data) => !(data.status === 'BLACKLISTED' && !data.blacklistReason),
98
+ },
99
+ };
100
+ /**
101
+ * Full UpdateClient schema with all refinements applied.
102
+ * Use this for API validation.
103
+ */
104
+ exports.UpdateClientSchema = exports.UpdateClientBaseSchema.superRefine((data, ctx) => {
105
+ if (!exports.UpdateClientRefinements.blacklistReasonRequired.check(data)) {
106
+ ctx.addIssue({
107
+ code: zod_1.z.ZodIssueCode.custom,
108
+ message: exports.UpdateClientRefinements.blacklistReasonRequired.message,
109
+ path: [exports.UpdateClientRefinements.blacklistReasonRequired.validates],
110
+ });
94
111
  }
95
- return true;
96
- }, {
97
- message: 'blacklistReason is required when status is BLACKLISTED',
98
- path: ['blacklistReason'],
99
- })
100
- .openapi({ title: 'UpdateClient' });
101
- exports.FilterClientSchema = zod_1.z.object({
102
- limit: zod_1.z.coerce
103
- .number()
104
- .default(50)
105
- .describe('The number of items to return per page.'),
106
- page: zod_1.z.coerce.number().default(1).describe('The page number to retrieve.'),
112
+ }).openapi({ title: 'UpdateClient' });
113
+ exports.FilterClientSchema = pagination_query_schema_1.PaginationQuerySchema.extend({
107
114
  name: zod_1.z
108
115
  .string()
109
116
  .optional()
@@ -117,13 +124,13 @@ exports.FilterClientSchema = zod_1.z.object({
117
124
  .optional()
118
125
  .nullable()
119
126
  .describe('Filter by director name (case-insensitive contains match)'),
120
- createdAt: DateRangeSchema.optional()
127
+ createdAt: common_schemas_1.DateRangeSchema.optional()
121
128
  .nullable()
122
129
  .describe('Filter by created date range.'),
123
130
  sortBy: ClientSortableFieldsSchema.optional()
124
131
  .nullable()
125
132
  .describe('The field to sort the results by.'),
126
- sortOrder: SortOrderSchema.optional()
133
+ sortOrder: common_schemas_1.SortOrderSchema.optional()
127
134
  .nullable()
128
135
  .describe('The order to sort the results by.'),
129
136
  });
@@ -133,20 +140,10 @@ exports.ClientAutocompleteResponseSchema = zod_1.z
133
140
  name: zod_1.z.string().describe('Client Name'),
134
141
  })
135
142
  .openapi({ title: 'ClientAutocomplete' });
136
- exports.AutocompleteQuerySchema = zod_1.z
137
- .object({
138
- query: zod_1.z
139
- .string()
140
- .optional()
141
- .describe('Search query string to filter results'),
142
- id: zod_1.z
143
- .string()
144
- .uuid()
145
- .optional()
146
- .describe('Specific record ID to include in results'),
147
- })
148
- .openapi({ title: 'AutocompleteQuery' });
149
- exports.PaginatedResponseSchema = (0, pagination_schema_1.createPaginatedResponseSchema)(exports.ClientSchema)
143
+ exports.ClientAutocompleteArraySchema = zod_1.z
144
+ .array(exports.ClientAutocompleteResponseSchema)
145
+ .openapi({ title: 'ClientAutocompleteArray' });
146
+ exports.PaginatedClientResponseSchema = (0, pagination_schema_1.createPaginatedResponseSchema)(exports.ClientSchema)
150
147
  .describe('Resources retrieved successfully.')
151
148
  .openapi({ title: 'ClientsPaginatedResponse' });
152
149
  const c = (0, core_1.initContract)();
@@ -166,7 +163,7 @@ exports.clientsContractRouter = c.router({
166
163
  method: 'GET',
167
164
  path: '/v2/clients',
168
165
  responses: {
169
- 200: exports.PaginatedResponseSchema,
166
+ 200: exports.PaginatedClientResponseSchema,
170
167
  },
171
168
  query: exports.FilterClientSchema,
172
169
  summary: 'Get all clients',
@@ -179,9 +176,9 @@ exports.clientsContractRouter = c.router({
179
176
  method: 'GET',
180
177
  path: '/v2/clients/autocomplete',
181
178
  responses: {
182
- 200: zod_1.z.array(exports.ClientAutocompleteResponseSchema),
179
+ 200: exports.ClientAutocompleteArraySchema,
183
180
  },
184
- query: exports.AutocompleteQuerySchema,
181
+ query: common_schemas_1.AutocompleteQuerySchema,
185
182
  summary: 'Get clients for autocomplete',
186
183
  metadata: {
187
184
  tags: ['Clients'],