@veruna/api-contracts 1.0.46 → 1.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/locales/index.d.ts +2 -0
- package/build/locales/index.js +4 -1
- package/build/locales/validation.d.ts +1365 -0
- package/build/locales/validation.js +1402 -0
- package/build/shared/pagination.schema.d.ts +1 -0
- package/build/shared/pagination.schema.js +12 -2
- package/build/v1/ai-model/schemas/create-model-request.schema.d.ts +4 -0
- package/build/v1/ai-model/schemas/create-model-request.schema.js +40 -10
- package/build/v1/ai-model/schemas/get-models-filters.schema.d.ts +4 -0
- package/build/v1/ai-model/schemas/get-models-filters.schema.js +8 -1
- package/build/v1/ai-model/schemas/route-params.schema.d.ts +4 -0
- package/build/v1/ai-model/schemas/route-params.schema.js +7 -1
- package/build/v1/ai-model/schemas/update-model-request.schema.d.ts +4 -0
- package/build/v1/ai-model/schemas/update-model-request.schema.js +42 -9
- package/build/v1/ai-provider/schemas/create-provider-request.schema.d.ts +4 -0
- package/build/v1/ai-provider/schemas/create-provider-request.schema.js +16 -5
- package/build/v1/ai-provider/schemas/route-params.schema.d.ts +4 -0
- package/build/v1/ai-provider/schemas/route-params.schema.js +7 -1
- package/build/v1/ai-provider/schemas/update-provider-request.schema.d.ts +4 -0
- package/build/v1/ai-provider/schemas/update-provider-request.schema.js +16 -4
- package/build/v1/auth/schemas/signin-request.schema.d.ts +1 -1
- package/build/v1/auth/schemas/signin-request.schema.js +7 -3
- package/build/v1/auth/schemas/signup-request.schema.d.ts +1 -1
- package/build/v1/auth/schemas/signup-request.schema.js +12 -4
- package/build/v1/blog/schemas/create-category-request.schema.d.ts +4 -0
- package/build/v1/blog/schemas/create-category-request.schema.js +16 -4
- package/build/v1/blog/schemas/create-post-request.schema.d.ts +4 -0
- package/build/v1/blog/schemas/create-post-request.schema.js +51 -16
- package/build/v1/blog/schemas/route-params.schema.d.ts +2 -0
- package/build/v1/blog/schemas/route-params.schema.js +9 -5
- package/build/v1/blog/schemas/update-category-request.schema.d.ts +4 -0
- package/build/v1/blog/schemas/update-category-request.schema.js +17 -3
- package/build/v1/blog/schemas/update-post-request.schema.d.ts +4 -0
- package/build/v1/blog/schemas/update-post-request.schema.js +54 -15
- package/build/v1/chat/commands/create-reg-chat.command.d.ts +4 -1
- package/build/v1/chat/commands/create-unreg-chat.command.d.ts +4 -1
- package/build/v1/chat/commands/update-chat-title.command.d.ts +4 -1
- package/build/v1/chat/commands/update-chat.command.d.ts +4 -1
- package/build/v1/chat/queries/get-last-active-chat.query.d.ts +4 -1
- package/build/v1/chat/queries/get-reg-chat.query.d.ts +4 -1
- package/build/v1/chat/queries/get-unreg-chat.query.d.ts +4 -1
- package/build/v1/chat/schemas/chat-history.schema.d.ts +1 -0
- package/build/v1/chat/schemas/chat-history.schema.js +7 -1
- package/build/v1/chat/schemas/chat-id-param.schema.d.ts +4 -0
- package/build/v1/chat/schemas/chat-id-param.schema.js +7 -1
- package/build/v1/chat/schemas/chat-with-messages-response.schema.d.ts +4 -1
- package/build/v1/chat/schemas/create-chat-request.schema.d.ts +4 -0
- package/build/v1/chat/schemas/create-chat-request.schema.js +5 -1
- package/build/v1/chat/schemas/page-id-param.schema.d.ts +4 -0
- package/build/v1/chat/schemas/page-id-param.schema.js +7 -1
- package/build/v1/chat/schemas/update-chat-request.schema.d.ts +4 -0
- package/build/v1/chat/schemas/update-chat-request.schema.js +10 -2
- package/build/v1/chat/schemas/update-chat-title-request.schema.d.ts +4 -0
- package/build/v1/chat/schemas/update-chat-title-request.schema.js +8 -1
- package/build/v1/chat-project/schemas/create-project-request.schema.d.ts +1 -0
- package/build/v1/chat-project/schemas/create-project-request.schema.js +8 -2
- package/build/v1/chat-project/schemas/get-project-chats.schema.d.ts +1 -0
- package/build/v1/chat-project/schemas/get-project-chats.schema.js +7 -1
- package/build/v1/chat-project/schemas/route-params.schema.d.ts +1 -0
- package/build/v1/chat-project/schemas/route-params.schema.js +4 -1
- package/build/v1/chat-project/schemas/update-project-request.schema.d.ts +1 -0
- package/build/v1/chat-project/schemas/update-project-request.schema.js +10 -2
- package/build/v1/file/schemas/delete-file-by-key-request.schema.d.ts +1 -0
- package/build/v1/file/schemas/delete-file-by-key-request.schema.js +4 -1
- package/build/v1/file/schemas/list-files-request.schema.d.ts +1 -0
- package/build/v1/file/schemas/list-files-request.schema.js +12 -2
- package/build/v1/file/schemas/upload-file-request.schema.d.ts +1 -0
- package/build/v1/file/schemas/upload-file-request.schema.js +4 -1
- package/build/v1/file/schemas/upload-image-request.schema.d.ts +1 -0
- package/build/v1/file/schemas/upload-image-request.schema.js +7 -2
- package/build/v1/message/commands/create-message.command.d.ts +4 -1
- package/build/v1/message/schemas/create-message-request.schema.d.ts +4 -0
- package/build/v1/message/schemas/create-message-request.schema.js +11 -2
- package/build/v1/message/schemas/message-meta.schema.d.ts +13 -3
- package/build/v1/message/schemas/message-meta.schema.js +7 -1
- package/build/v1/message/schemas/message-response.schema.d.ts +4 -1
- package/build/v1/message/schemas/rate-message.schema.d.ts +8 -0
- package/build/v1/message/schemas/rate-message.schema.js +20 -4
- package/build/v1/message/schemas/stream-events.schema.d.ts +8 -2
- package/build/v1/message/schemas/stream-events.schema.js +4 -9
- package/build/v1/page-hints/schemas/create-hint-request.schema.d.ts +1 -0
- package/build/v1/page-hints/schemas/create-hint-request.schema.js +9 -2
- package/build/v1/page-hints/schemas/update-hint-request.schema.d.ts +1 -0
- package/build/v1/page-hints/schemas/update-hint-request.schema.js +11 -2
- package/build/v1/seo-pages/schemas/create-page-request.schema.d.ts +1 -0
- package/build/v1/seo-pages/schemas/create-page-request.schema.js +43 -16
- package/build/v1/seo-pages/schemas/faq.schema.d.ts +2 -0
- package/build/v1/seo-pages/schemas/faq.schema.js +11 -3
- package/build/v1/seo-pages/schemas/update-page-request.schema.d.ts +1 -0
- package/build/v1/seo-pages/schemas/update-page-request.schema.js +40 -15
- package/build/v1/unregistered-users/schemas/authenticate-request.schema.d.ts +2 -0
- package/build/v1/unregistered-users/schemas/authenticate-request.schema.js +6 -4
- package/build/v1/users/commands/email-change-start.command.d.ts +1 -1
- package/build/v1/users/schemas/change-password-request.schema.d.ts +1 -1
- package/build/v1/users/schemas/change-password-request.schema.js +9 -3
- package/build/v1/users/schemas/delete-account-start-request.schema.d.ts +4 -0
- package/build/v1/users/schemas/delete-account-start-request.schema.js +7 -1
- package/build/v1/users/schemas/email-change-start-request.schema.d.ts +5 -1
- package/build/v1/users/schemas/email-change-start-request.schema.js +7 -1
- package/build/v1/users/schemas/password-change-complete-request.schema.d.ts +4 -0
- package/build/v1/users/schemas/password-change-complete-request.schema.js +10 -2
- package/build/v1/users/schemas/password-change-start-request.schema.d.ts +4 -0
- package/build/v1/users/schemas/password-change-start-request.schema.js +7 -1
- package/build/v1/users/schemas/toggle-marketing-consent-request.schema.d.ts +1 -0
- package/build/v1/users/schemas/toggle-marketing-consent-request.schema.js +4 -1
- package/build/v1/users/schemas/update-profile-request.schema.d.ts +1 -1
- package/build/v1/users/schemas/update-profile-request.schema.js +5 -2
- package/build/v1/verification/schemas/verification-complete-request.schema.d.ts +4 -0
- package/build/v1/verification/schemas/verification-complete-request.schema.js +7 -1
- package/build/v1/verification/schemas/verification-resend-request.schema.d.ts +4 -0
- package/build/v1/verification/schemas/verification-resend-request.schema.js +10 -2
- package/build/v1/verification/schemas/verification-verify-request.schema.d.ts +4 -0
- package/build/v1/verification/schemas/verification-verify-request.schema.js +13 -3
- package/package.json +1 -1
|
@@ -0,0 +1,1402 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation messages for Zod schemas
|
|
4
|
+
* Grouped by schema name for easy frontend localization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validationMessages = void 0;
|
|
8
|
+
exports.getValidationMessage = getValidationMessage;
|
|
9
|
+
exports.validationMessages = {
|
|
10
|
+
en: {
|
|
11
|
+
// ==================== AUTH ====================
|
|
12
|
+
SignUpRequest: {
|
|
13
|
+
email: {
|
|
14
|
+
required: 'Email is required',
|
|
15
|
+
invalid: 'Invalid email format',
|
|
16
|
+
},
|
|
17
|
+
password: {
|
|
18
|
+
required: 'Password is required',
|
|
19
|
+
min: 'Password must be at least 8 characters',
|
|
20
|
+
max: 'Password must be at most 128 characters',
|
|
21
|
+
weak: 'Password must contain a number or special character',
|
|
22
|
+
},
|
|
23
|
+
name: {
|
|
24
|
+
required: 'Name is required',
|
|
25
|
+
min: 'Name must be at least 2 characters',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
SignInRequest: {
|
|
29
|
+
email: {
|
|
30
|
+
required: 'Email is required',
|
|
31
|
+
invalid: 'Invalid email format',
|
|
32
|
+
},
|
|
33
|
+
password: {
|
|
34
|
+
required: 'Password is required',
|
|
35
|
+
min: 'Password is required',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
// ==================== USERS ====================
|
|
39
|
+
ChangePasswordRequest: {
|
|
40
|
+
oldPassword: {
|
|
41
|
+
required: 'Current password is required',
|
|
42
|
+
min: 'Current password is required',
|
|
43
|
+
},
|
|
44
|
+
newPassword: {
|
|
45
|
+
required: 'New password is required',
|
|
46
|
+
min: 'New password must be at least 8 characters',
|
|
47
|
+
max: 'New password must be at most 128 characters',
|
|
48
|
+
weak: 'New password must contain a number or special character',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
DeleteAccountStartRequest: {
|
|
52
|
+
password: {
|
|
53
|
+
required: 'Password is required',
|
|
54
|
+
min: 'Password is required',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
EmailChangeStartRequest: {
|
|
58
|
+
newEmail: {
|
|
59
|
+
required: 'New email is required',
|
|
60
|
+
invalid: 'Invalid email format',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
PasswordChangeCompleteRequest: {
|
|
64
|
+
requestId: {
|
|
65
|
+
required: 'Request ID is required',
|
|
66
|
+
},
|
|
67
|
+
newPassword: {
|
|
68
|
+
required: 'New password is required',
|
|
69
|
+
min: 'New password must be at least 8 characters',
|
|
70
|
+
max: 'New password must be at most 128 characters',
|
|
71
|
+
weak: 'New password must contain a number or special character',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
PasswordChangeStartRequest: {
|
|
75
|
+
oldPassword: {
|
|
76
|
+
required: 'Current password is required',
|
|
77
|
+
min: 'Current password is required',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
ToggleMarketingConsentRequest: {
|
|
81
|
+
marketingConsent: {
|
|
82
|
+
required: 'Marketing consent value is required',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
UpdateProfileRequest: {
|
|
86
|
+
name: {
|
|
87
|
+
required: 'Name is required',
|
|
88
|
+
min: 'Name must be at least 2 characters',
|
|
89
|
+
max: 'Name must be at most 100 characters',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
// ==================== BLOG ====================
|
|
93
|
+
CreateCategoryRequest: {
|
|
94
|
+
alias: {
|
|
95
|
+
required: 'Alias is required',
|
|
96
|
+
min: 'Alias is required',
|
|
97
|
+
max: 'Alias must be at most 100 characters',
|
|
98
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
99
|
+
},
|
|
100
|
+
title: {
|
|
101
|
+
required: 'Title is required',
|
|
102
|
+
min: 'Title is required',
|
|
103
|
+
max: 'Title must be at most 200 characters',
|
|
104
|
+
},
|
|
105
|
+
order: {
|
|
106
|
+
invalid: 'Order must be a non-negative integer',
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
UpdateCategoryRequest: {
|
|
110
|
+
alias: {
|
|
111
|
+
min: 'Alias cannot be empty',
|
|
112
|
+
max: 'Alias must be at most 100 characters',
|
|
113
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
114
|
+
},
|
|
115
|
+
title: {
|
|
116
|
+
min: 'Title cannot be empty',
|
|
117
|
+
max: 'Title must be at most 200 characters',
|
|
118
|
+
},
|
|
119
|
+
order: {
|
|
120
|
+
invalid: 'Order must be a non-negative integer',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
CreatePostRequest: {
|
|
124
|
+
alias: {
|
|
125
|
+
required: 'Alias is required',
|
|
126
|
+
min: 'Alias is required',
|
|
127
|
+
max: 'Alias must be at most 200 characters',
|
|
128
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
129
|
+
},
|
|
130
|
+
title: {
|
|
131
|
+
required: 'Title is required',
|
|
132
|
+
min: 'Title is required',
|
|
133
|
+
max: 'Title must be at most 300 characters',
|
|
134
|
+
},
|
|
135
|
+
description: {
|
|
136
|
+
max: 'Description must be at most 1000 characters',
|
|
137
|
+
},
|
|
138
|
+
metaTitle: {
|
|
139
|
+
required: 'Meta title is required',
|
|
140
|
+
min: 'Meta title is required',
|
|
141
|
+
max: 'Meta title must be at most 100 characters',
|
|
142
|
+
},
|
|
143
|
+
metaDescription: {
|
|
144
|
+
required: 'Meta description is required',
|
|
145
|
+
min: 'Meta description is required',
|
|
146
|
+
max: 'Meta description must be at most 200 characters',
|
|
147
|
+
},
|
|
148
|
+
content: {
|
|
149
|
+
required: 'Content is required',
|
|
150
|
+
min: 'Content is required',
|
|
151
|
+
max: 'Content is too long',
|
|
152
|
+
},
|
|
153
|
+
image: {
|
|
154
|
+
required: 'Image URL is required',
|
|
155
|
+
invalid: 'Invalid image URL',
|
|
156
|
+
},
|
|
157
|
+
author: {
|
|
158
|
+
required: 'Author is required',
|
|
159
|
+
min: 'Author is required',
|
|
160
|
+
max: 'Author name must be at most 100 characters',
|
|
161
|
+
},
|
|
162
|
+
categoryIds: {
|
|
163
|
+
required: 'At least one category is required',
|
|
164
|
+
min: 'At least one category is required',
|
|
165
|
+
invalidUuid: 'Invalid category ID format',
|
|
166
|
+
},
|
|
167
|
+
pageId: {
|
|
168
|
+
invalidUuid: 'Invalid page ID format',
|
|
169
|
+
},
|
|
170
|
+
aiWidgetPlaceholder: {
|
|
171
|
+
max: 'AI widget placeholder must be at most 500 characters',
|
|
172
|
+
},
|
|
173
|
+
aiWidgetPrompt: {
|
|
174
|
+
max: 'AI widget prompt must be at most 2000 characters',
|
|
175
|
+
},
|
|
176
|
+
aiWidgetRequired: {
|
|
177
|
+
required: 'Page ID, AI widget placeholder and prompt are required when AI_WIDGET mark is present',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
UpdatePostRequest: {
|
|
181
|
+
alias: {
|
|
182
|
+
min: 'Alias cannot be empty',
|
|
183
|
+
max: 'Alias must be at most 200 characters',
|
|
184
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
185
|
+
},
|
|
186
|
+
title: {
|
|
187
|
+
min: 'Title cannot be empty',
|
|
188
|
+
max: 'Title must be at most 300 characters',
|
|
189
|
+
},
|
|
190
|
+
description: {
|
|
191
|
+
max: 'Description must be at most 1000 characters',
|
|
192
|
+
},
|
|
193
|
+
metaTitle: {
|
|
194
|
+
min: 'Meta title cannot be empty',
|
|
195
|
+
max: 'Meta title must be at most 100 characters',
|
|
196
|
+
},
|
|
197
|
+
metaDescription: {
|
|
198
|
+
min: 'Meta description cannot be empty',
|
|
199
|
+
max: 'Meta description must be at most 200 characters',
|
|
200
|
+
},
|
|
201
|
+
content: {
|
|
202
|
+
min: 'Content cannot be empty',
|
|
203
|
+
max: 'Content is too long',
|
|
204
|
+
},
|
|
205
|
+
image: {
|
|
206
|
+
invalid: 'Invalid image URL',
|
|
207
|
+
},
|
|
208
|
+
author: {
|
|
209
|
+
min: 'Author cannot be empty',
|
|
210
|
+
max: 'Author name must be at most 100 characters',
|
|
211
|
+
},
|
|
212
|
+
categoryIds: {
|
|
213
|
+
min: 'At least one category is required',
|
|
214
|
+
invalidUuid: 'Invalid category ID format',
|
|
215
|
+
},
|
|
216
|
+
pageId: {
|
|
217
|
+
invalidUuid: 'Invalid page ID format',
|
|
218
|
+
},
|
|
219
|
+
aiWidgetPlaceholder: {
|
|
220
|
+
max: 'AI widget placeholder must be at most 500 characters',
|
|
221
|
+
},
|
|
222
|
+
aiWidgetPrompt: {
|
|
223
|
+
max: 'AI widget prompt must be at most 2000 characters',
|
|
224
|
+
},
|
|
225
|
+
aiWidgetRequired: {
|
|
226
|
+
required: 'Page ID, AI widget placeholder and prompt are required when AI_WIDGET mark is present',
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
GetPostsQuery: {
|
|
230
|
+
categoryAliases: {
|
|
231
|
+
invalid: 'Invalid category aliases format',
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
UuidParam: {
|
|
235
|
+
uuid: {
|
|
236
|
+
required: 'UUID is required',
|
|
237
|
+
invalid: 'Invalid UUID format',
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
AliasParam: {
|
|
241
|
+
alias: {
|
|
242
|
+
required: 'Alias is required',
|
|
243
|
+
min: 'Alias cannot be empty',
|
|
244
|
+
max: 'Alias must be at most 200 characters',
|
|
245
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
// ==================== CHAT ====================
|
|
249
|
+
CreateChatRequest: {
|
|
250
|
+
folderId: {
|
|
251
|
+
invalid: 'Invalid folder ID format',
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
UpdateChatRequest: {
|
|
255
|
+
title: {
|
|
256
|
+
min: 'Title cannot be empty',
|
|
257
|
+
max: 'Title must be at most 40 characters',
|
|
258
|
+
},
|
|
259
|
+
folderId: {
|
|
260
|
+
invalid: 'Invalid folder ID format',
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
UpdateChatTitleRequest: {
|
|
264
|
+
title: {
|
|
265
|
+
required: 'Title is required',
|
|
266
|
+
min: 'Title is required',
|
|
267
|
+
max: 'Title must be at most 40 characters',
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
GetChatHistoryRequest: {
|
|
271
|
+
limit: {
|
|
272
|
+
min: 'Limit must be at least 1',
|
|
273
|
+
max: 'Limit must be at most 100',
|
|
274
|
+
invalid: 'Limit must be a positive integer',
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
ChatIdParam: {
|
|
278
|
+
chatId: {
|
|
279
|
+
required: 'Chat ID is required',
|
|
280
|
+
invalid: 'Invalid chat ID format',
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
PageIdParam: {
|
|
284
|
+
pageId: {
|
|
285
|
+
required: 'Page ID is required',
|
|
286
|
+
invalid: 'Invalid page ID format',
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
// ==================== MESSAGE ====================
|
|
290
|
+
CreateMessageRequest: {
|
|
291
|
+
aiModelId: {
|
|
292
|
+
required: 'AI model ID is required',
|
|
293
|
+
invalid: 'Invalid AI model ID format',
|
|
294
|
+
},
|
|
295
|
+
text: {
|
|
296
|
+
required: 'Message text is required',
|
|
297
|
+
min: 'Message text is required',
|
|
298
|
+
max: 'Message text is too long',
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
RateMessageRequest: {
|
|
302
|
+
rating: {
|
|
303
|
+
required: 'Rating is required',
|
|
304
|
+
invalid: 'Invalid rating value',
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
RateMessageParams: {
|
|
308
|
+
pageId: {
|
|
309
|
+
required: 'Page ID is required',
|
|
310
|
+
invalid: 'Invalid page ID format',
|
|
311
|
+
},
|
|
312
|
+
chatId: {
|
|
313
|
+
required: 'Chat ID is required',
|
|
314
|
+
invalid: 'Invalid chat ID format',
|
|
315
|
+
},
|
|
316
|
+
messageId: {
|
|
317
|
+
required: 'Message ID is required',
|
|
318
|
+
invalid: 'Invalid message ID format',
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
// ==================== FILE ====================
|
|
322
|
+
DeleteFileByKeyQuery: {
|
|
323
|
+
key: {
|
|
324
|
+
required: 'File key is required',
|
|
325
|
+
min: 'File key is required',
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
ListFilesQuery: {
|
|
329
|
+
page: {
|
|
330
|
+
invalid: 'Page must be a positive integer',
|
|
331
|
+
},
|
|
332
|
+
limit: {
|
|
333
|
+
invalid: 'Limit must be a positive integer',
|
|
334
|
+
max: 'Limit must be at most 100',
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
UploadFileQuery: {
|
|
338
|
+
folder: {
|
|
339
|
+
required: 'Folder is required',
|
|
340
|
+
min: 'Folder is required',
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
UploadImageQuery: {
|
|
344
|
+
folder: {
|
|
345
|
+
required: 'Folder is required',
|
|
346
|
+
min: 'Folder is required',
|
|
347
|
+
},
|
|
348
|
+
formats: {
|
|
349
|
+
required: 'Image formats are required',
|
|
350
|
+
min: 'Image formats are required',
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
// ==================== AI-MODEL ====================
|
|
354
|
+
CreateModelRequest: {
|
|
355
|
+
title: {
|
|
356
|
+
required: 'Title is required',
|
|
357
|
+
min: 'Title is required',
|
|
358
|
+
max: 'Title must be at most 255 characters',
|
|
359
|
+
},
|
|
360
|
+
model: {
|
|
361
|
+
required: 'Model name is required',
|
|
362
|
+
min: 'Model name is required',
|
|
363
|
+
max: 'Model name must be at most 100 characters',
|
|
364
|
+
},
|
|
365
|
+
icon: {
|
|
366
|
+
required: 'Icon URL is required',
|
|
367
|
+
invalid: 'Invalid icon URL',
|
|
368
|
+
https: 'Icon URL must use HTTPS',
|
|
369
|
+
},
|
|
370
|
+
providerUuid: {
|
|
371
|
+
invalid: 'Invalid provider ID format',
|
|
372
|
+
},
|
|
373
|
+
price: {
|
|
374
|
+
invalid: 'Price must be a positive integer',
|
|
375
|
+
},
|
|
376
|
+
speed: {
|
|
377
|
+
min: 'Speed must be at least 1',
|
|
378
|
+
max: 'Speed must be at most 5',
|
|
379
|
+
},
|
|
380
|
+
contextLength: {
|
|
381
|
+
invalid: 'Context length must be a positive integer',
|
|
382
|
+
},
|
|
383
|
+
order: {
|
|
384
|
+
invalid: 'Order must be a non-negative integer',
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
UpdateModelRequest: {
|
|
388
|
+
title: {
|
|
389
|
+
min: 'Title cannot be empty',
|
|
390
|
+
max: 'Title must be at most 255 characters',
|
|
391
|
+
},
|
|
392
|
+
model: {
|
|
393
|
+
min: 'Model name cannot be empty',
|
|
394
|
+
max: 'Model name must be at most 100 characters',
|
|
395
|
+
},
|
|
396
|
+
icon: {
|
|
397
|
+
invalid: 'Invalid icon URL',
|
|
398
|
+
https: 'Icon URL must use HTTPS',
|
|
399
|
+
},
|
|
400
|
+
providerUuid: {
|
|
401
|
+
invalid: 'Invalid provider ID format',
|
|
402
|
+
},
|
|
403
|
+
price: {
|
|
404
|
+
invalid: 'Price must be a positive integer',
|
|
405
|
+
},
|
|
406
|
+
speed: {
|
|
407
|
+
min: 'Speed must be at least 1',
|
|
408
|
+
max: 'Speed must be at most 5',
|
|
409
|
+
},
|
|
410
|
+
contextLength: {
|
|
411
|
+
invalid: 'Context length must be a positive integer',
|
|
412
|
+
},
|
|
413
|
+
order: {
|
|
414
|
+
invalid: 'Order must be a non-negative integer',
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
GetModelsFilters: {
|
|
418
|
+
providerUuid: {
|
|
419
|
+
invalid: 'Invalid provider ID format',
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
ModelUuidParams: {
|
|
423
|
+
uuid: {
|
|
424
|
+
required: 'Model UUID is required',
|
|
425
|
+
invalid: 'Invalid UUID format',
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
// ==================== AI-PROVIDER ====================
|
|
429
|
+
CreateProviderRequest: {
|
|
430
|
+
title: {
|
|
431
|
+
required: 'Title is required',
|
|
432
|
+
min: 'Title is required',
|
|
433
|
+
max: 'Title must be at most 100 characters',
|
|
434
|
+
},
|
|
435
|
+
icon: {
|
|
436
|
+
required: 'Icon URL is required',
|
|
437
|
+
invalid: 'Invalid icon URL',
|
|
438
|
+
https: 'Icon URL must use HTTPS',
|
|
439
|
+
},
|
|
440
|
+
order: {
|
|
441
|
+
invalid: 'Order must be a non-negative integer',
|
|
442
|
+
},
|
|
443
|
+
},
|
|
444
|
+
UpdateProviderRequest: {
|
|
445
|
+
title: {
|
|
446
|
+
min: 'Title cannot be empty',
|
|
447
|
+
max: 'Title must be at most 100 characters',
|
|
448
|
+
},
|
|
449
|
+
icon: {
|
|
450
|
+
invalid: 'Invalid icon URL',
|
|
451
|
+
https: 'Icon URL must use HTTPS',
|
|
452
|
+
},
|
|
453
|
+
order: {
|
|
454
|
+
invalid: 'Order must be a non-negative integer',
|
|
455
|
+
},
|
|
456
|
+
},
|
|
457
|
+
ProviderUuidParam: {
|
|
458
|
+
uuid: {
|
|
459
|
+
required: 'Provider UUID is required',
|
|
460
|
+
invalid: 'Invalid UUID format',
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
// ==================== CHAT-PROJECT ====================
|
|
464
|
+
CreateProjectRequest: {
|
|
465
|
+
title: {
|
|
466
|
+
required: 'Title is required',
|
|
467
|
+
min: 'Title is required',
|
|
468
|
+
max: 'Title must be at most 100 characters',
|
|
469
|
+
},
|
|
470
|
+
color: {
|
|
471
|
+
required: 'Color is required',
|
|
472
|
+
invalid: 'Color must be in hex format: #RRGGBB',
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
UpdateProjectRequest: {
|
|
476
|
+
title: {
|
|
477
|
+
min: 'Title cannot be empty',
|
|
478
|
+
max: 'Title must be at most 100 characters',
|
|
479
|
+
},
|
|
480
|
+
color: {
|
|
481
|
+
invalid: 'Color must be in hex format: #RRGGBB',
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
GetProjectChatsRequest: {
|
|
485
|
+
limit: {
|
|
486
|
+
min: 'Limit must be at least 1',
|
|
487
|
+
max: 'Limit must be at most 100',
|
|
488
|
+
invalid: 'Limit must be a positive integer',
|
|
489
|
+
},
|
|
490
|
+
},
|
|
491
|
+
ProjectUuidParam: {
|
|
492
|
+
uuid: {
|
|
493
|
+
required: 'Project UUID is required',
|
|
494
|
+
invalid: 'Invalid UUID format',
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
// ==================== SEO-PAGES ====================
|
|
498
|
+
CreatePageRequest: {
|
|
499
|
+
metaTitle: {
|
|
500
|
+
required: 'Meta title is required',
|
|
501
|
+
min: 'Meta title is required',
|
|
502
|
+
max: 'Meta title must be at most 100 characters',
|
|
503
|
+
},
|
|
504
|
+
metaDescription: {
|
|
505
|
+
required: 'Meta description is required',
|
|
506
|
+
min: 'Meta description is required',
|
|
507
|
+
max: 'Meta description must be at most 200 characters',
|
|
508
|
+
},
|
|
509
|
+
title: {
|
|
510
|
+
required: 'Title is required',
|
|
511
|
+
min: 'Title is required',
|
|
512
|
+
max: 'Title must be at most 300 characters',
|
|
513
|
+
},
|
|
514
|
+
description: {
|
|
515
|
+
required: 'Description is required',
|
|
516
|
+
min: 'Description is required',
|
|
517
|
+
},
|
|
518
|
+
content: {
|
|
519
|
+
required: 'Content is required',
|
|
520
|
+
min: 'Content is required',
|
|
521
|
+
},
|
|
522
|
+
alias: {
|
|
523
|
+
required: 'Alias is required',
|
|
524
|
+
min: 'Alias is required',
|
|
525
|
+
max: 'Alias must be at most 200 characters',
|
|
526
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
527
|
+
},
|
|
528
|
+
type: {
|
|
529
|
+
required: 'Page type is required',
|
|
530
|
+
invalid: 'Invalid page type',
|
|
531
|
+
},
|
|
532
|
+
icon: {
|
|
533
|
+
required: 'Icon is required',
|
|
534
|
+
min: 'Icon is required',
|
|
535
|
+
max: 'Icon must be at most 100 characters',
|
|
536
|
+
},
|
|
537
|
+
parentId: {
|
|
538
|
+
invalid: 'Invalid parent page ID format',
|
|
539
|
+
},
|
|
540
|
+
order: {
|
|
541
|
+
invalid: 'Order must be a non-negative integer',
|
|
542
|
+
},
|
|
543
|
+
placeholder: {
|
|
544
|
+
max: 'Placeholder must be at most 500 characters',
|
|
545
|
+
},
|
|
546
|
+
seoName: {
|
|
547
|
+
max: 'SEO name must be at most 200 characters',
|
|
548
|
+
},
|
|
549
|
+
marks: {
|
|
550
|
+
max: 'Each mark must be at most 50 characters',
|
|
551
|
+
},
|
|
552
|
+
},
|
|
553
|
+
UpdatePageRequest: {
|
|
554
|
+
metaTitle: {
|
|
555
|
+
min: 'Meta title cannot be empty',
|
|
556
|
+
max: 'Meta title must be at most 100 characters',
|
|
557
|
+
},
|
|
558
|
+
metaDescription: {
|
|
559
|
+
min: 'Meta description cannot be empty',
|
|
560
|
+
max: 'Meta description must be at most 200 characters',
|
|
561
|
+
},
|
|
562
|
+
title: {
|
|
563
|
+
min: 'Title cannot be empty',
|
|
564
|
+
max: 'Title must be at most 300 characters',
|
|
565
|
+
},
|
|
566
|
+
description: {
|
|
567
|
+
min: 'Description cannot be empty',
|
|
568
|
+
},
|
|
569
|
+
content: {
|
|
570
|
+
min: 'Content cannot be empty',
|
|
571
|
+
},
|
|
572
|
+
alias: {
|
|
573
|
+
min: 'Alias cannot be empty',
|
|
574
|
+
max: 'Alias must be at most 200 characters',
|
|
575
|
+
invalid: 'Alias must contain only lowercase letters, numbers and hyphens',
|
|
576
|
+
},
|
|
577
|
+
type: {
|
|
578
|
+
invalid: 'Invalid page type',
|
|
579
|
+
},
|
|
580
|
+
icon: {
|
|
581
|
+
min: 'Icon cannot be empty',
|
|
582
|
+
max: 'Icon must be at most 100 characters',
|
|
583
|
+
},
|
|
584
|
+
parentId: {
|
|
585
|
+
invalid: 'Invalid parent page ID format',
|
|
586
|
+
},
|
|
587
|
+
order: {
|
|
588
|
+
invalid: 'Order must be a non-negative integer',
|
|
589
|
+
},
|
|
590
|
+
placeholder: {
|
|
591
|
+
max: 'Placeholder must be at most 500 characters',
|
|
592
|
+
},
|
|
593
|
+
seoName: {
|
|
594
|
+
max: 'SEO name must be at most 200 characters',
|
|
595
|
+
},
|
|
596
|
+
marks: {
|
|
597
|
+
max: 'Each mark must be at most 50 characters',
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
FaqItem: {
|
|
601
|
+
question: {
|
|
602
|
+
required: 'Question is required',
|
|
603
|
+
min: 'Question must be at least 10 characters',
|
|
604
|
+
max: 'Question must be at most 500 characters',
|
|
605
|
+
},
|
|
606
|
+
answer: {
|
|
607
|
+
required: 'Answer is required',
|
|
608
|
+
min: 'Answer must be at least 20 characters',
|
|
609
|
+
max: 'Answer must be at most 2000 characters',
|
|
610
|
+
},
|
|
611
|
+
},
|
|
612
|
+
Faq: {
|
|
613
|
+
items: {
|
|
614
|
+
max: 'FAQ can contain at most 20 items',
|
|
615
|
+
},
|
|
616
|
+
},
|
|
617
|
+
// ==================== PAGE-HINTS ====================
|
|
618
|
+
CreateHintRequest: {
|
|
619
|
+
icon: {
|
|
620
|
+
required: 'Icon is required',
|
|
621
|
+
min: 'Icon is required',
|
|
622
|
+
max: 'Icon must be at most 50 characters',
|
|
623
|
+
},
|
|
624
|
+
title: {
|
|
625
|
+
required: 'Title is required',
|
|
626
|
+
min: 'Title is required',
|
|
627
|
+
max: 'Title must be at most 255 characters',
|
|
628
|
+
},
|
|
629
|
+
},
|
|
630
|
+
UpdateHintRequest: {
|
|
631
|
+
icon: {
|
|
632
|
+
min: 'Icon cannot be empty',
|
|
633
|
+
max: 'Icon must be at most 50 characters',
|
|
634
|
+
},
|
|
635
|
+
title: {
|
|
636
|
+
min: 'Title cannot be empty',
|
|
637
|
+
max: 'Title must be at most 255 characters',
|
|
638
|
+
},
|
|
639
|
+
},
|
|
640
|
+
// ==================== VERIFICATION ====================
|
|
641
|
+
VerificationCompleteRequest: {
|
|
642
|
+
requestId: {
|
|
643
|
+
required: 'Request ID is required',
|
|
644
|
+
invalid: 'Invalid request ID format',
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
VerificationResendRequest: {
|
|
648
|
+
requestId: {
|
|
649
|
+
required: 'Request ID is required',
|
|
650
|
+
invalid: 'Invalid request ID format',
|
|
651
|
+
},
|
|
652
|
+
stepId: {
|
|
653
|
+
required: 'Step ID is required',
|
|
654
|
+
invalid: 'Invalid step ID format',
|
|
655
|
+
},
|
|
656
|
+
},
|
|
657
|
+
VerificationVerifyRequest: {
|
|
658
|
+
requestId: {
|
|
659
|
+
required: 'Request ID is required',
|
|
660
|
+
invalid: 'Invalid request ID format',
|
|
661
|
+
},
|
|
662
|
+
stepId: {
|
|
663
|
+
required: 'Step ID is required',
|
|
664
|
+
invalid: 'Invalid step ID format',
|
|
665
|
+
},
|
|
666
|
+
code: {
|
|
667
|
+
required: 'Verification code is required',
|
|
668
|
+
invalid: 'Code must be exactly 6 digits',
|
|
669
|
+
},
|
|
670
|
+
},
|
|
671
|
+
// ==================== UNREGISTERED-USERS ====================
|
|
672
|
+
AuthenticateUnregUserRequest: {
|
|
673
|
+
token: {
|
|
674
|
+
invalid: 'Invalid token format',
|
|
675
|
+
},
|
|
676
|
+
},
|
|
677
|
+
UtmSchema: {
|
|
678
|
+
utmSource: {
|
|
679
|
+
invalid: 'Invalid UTM source',
|
|
680
|
+
},
|
|
681
|
+
utmMedium: {
|
|
682
|
+
invalid: 'Invalid UTM medium',
|
|
683
|
+
},
|
|
684
|
+
utmCampaign: {
|
|
685
|
+
invalid: 'Invalid UTM campaign',
|
|
686
|
+
},
|
|
687
|
+
},
|
|
688
|
+
// ==================== SHARED ====================
|
|
689
|
+
PaginationQuery: {
|
|
690
|
+
page: {
|
|
691
|
+
invalid: 'Page must be a positive integer',
|
|
692
|
+
},
|
|
693
|
+
limit: {
|
|
694
|
+
invalid: 'Limit must be a positive integer',
|
|
695
|
+
max: 'Limit must be at most 100',
|
|
696
|
+
},
|
|
697
|
+
},
|
|
698
|
+
},
|
|
699
|
+
ru: {
|
|
700
|
+
// ==================== AUTH ====================
|
|
701
|
+
SignUpRequest: {
|
|
702
|
+
email: {
|
|
703
|
+
required: 'Введите email',
|
|
704
|
+
invalid: 'Некорректный формат email',
|
|
705
|
+
},
|
|
706
|
+
password: {
|
|
707
|
+
required: 'Введите пароль',
|
|
708
|
+
min: 'Пароль должен содержать минимум 8 символов',
|
|
709
|
+
max: 'Пароль должен содержать максимум 128 символов',
|
|
710
|
+
weak: 'Пароль должен содержать цифру или спецсимвол',
|
|
711
|
+
},
|
|
712
|
+
name: {
|
|
713
|
+
required: 'Введите имя',
|
|
714
|
+
min: 'Имя должно содержать минимум 2 символа',
|
|
715
|
+
},
|
|
716
|
+
},
|
|
717
|
+
SignInRequest: {
|
|
718
|
+
email: {
|
|
719
|
+
required: 'Введите email',
|
|
720
|
+
invalid: 'Некорректный формат email',
|
|
721
|
+
},
|
|
722
|
+
password: {
|
|
723
|
+
required: 'Введите пароль',
|
|
724
|
+
min: 'Введите пароль',
|
|
725
|
+
},
|
|
726
|
+
},
|
|
727
|
+
// ==================== USERS ====================
|
|
728
|
+
ChangePasswordRequest: {
|
|
729
|
+
oldPassword: {
|
|
730
|
+
required: 'Введите текущий пароль',
|
|
731
|
+
min: 'Введите текущий пароль',
|
|
732
|
+
},
|
|
733
|
+
newPassword: {
|
|
734
|
+
required: 'Введите новый пароль',
|
|
735
|
+
min: 'Новый пароль должен содержать минимум 8 символов',
|
|
736
|
+
max: 'Новый пароль должен содержать максимум 128 символов',
|
|
737
|
+
weak: 'Новый пароль должен содержать цифру или спецсимвол',
|
|
738
|
+
},
|
|
739
|
+
},
|
|
740
|
+
DeleteAccountStartRequest: {
|
|
741
|
+
password: {
|
|
742
|
+
required: 'Введите пароль',
|
|
743
|
+
min: 'Введите пароль',
|
|
744
|
+
},
|
|
745
|
+
},
|
|
746
|
+
EmailChangeStartRequest: {
|
|
747
|
+
newEmail: {
|
|
748
|
+
required: 'Введите новый email',
|
|
749
|
+
invalid: 'Некорректный формат email',
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
PasswordChangeCompleteRequest: {
|
|
753
|
+
requestId: {
|
|
754
|
+
required: 'Идентификатор запроса обязателен',
|
|
755
|
+
},
|
|
756
|
+
newPassword: {
|
|
757
|
+
required: 'Введите новый пароль',
|
|
758
|
+
min: 'Новый пароль должен содержать минимум 8 символов',
|
|
759
|
+
max: 'Новый пароль должен содержать максимум 128 символов',
|
|
760
|
+
weak: 'Новый пароль должен содержать цифру или спецсимвол',
|
|
761
|
+
},
|
|
762
|
+
},
|
|
763
|
+
PasswordChangeStartRequest: {
|
|
764
|
+
oldPassword: {
|
|
765
|
+
required: 'Введите текущий пароль',
|
|
766
|
+
min: 'Введите текущий пароль',
|
|
767
|
+
},
|
|
768
|
+
},
|
|
769
|
+
ToggleMarketingConsentRequest: {
|
|
770
|
+
marketingConsent: {
|
|
771
|
+
required: 'Укажите согласие на маркетинговые рассылки',
|
|
772
|
+
},
|
|
773
|
+
},
|
|
774
|
+
UpdateProfileRequest: {
|
|
775
|
+
name: {
|
|
776
|
+
required: 'Введите имя',
|
|
777
|
+
min: 'Имя должно содержать минимум 2 символа',
|
|
778
|
+
max: 'Имя должно содержать максимум 100 символов',
|
|
779
|
+
},
|
|
780
|
+
},
|
|
781
|
+
// ==================== BLOG ====================
|
|
782
|
+
CreateCategoryRequest: {
|
|
783
|
+
alias: {
|
|
784
|
+
required: 'Введите alias',
|
|
785
|
+
min: 'Введите alias',
|
|
786
|
+
max: 'Alias должен содержать максимум 100 символов',
|
|
787
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
788
|
+
},
|
|
789
|
+
title: {
|
|
790
|
+
required: 'Введите название',
|
|
791
|
+
min: 'Введите название',
|
|
792
|
+
max: 'Название должно содержать максимум 200 символов',
|
|
793
|
+
},
|
|
794
|
+
order: {
|
|
795
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
796
|
+
},
|
|
797
|
+
},
|
|
798
|
+
UpdateCategoryRequest: {
|
|
799
|
+
alias: {
|
|
800
|
+
min: 'Alias не может быть пустым',
|
|
801
|
+
max: 'Alias должен содержать максимум 100 символов',
|
|
802
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
803
|
+
},
|
|
804
|
+
title: {
|
|
805
|
+
min: 'Название не может быть пустым',
|
|
806
|
+
max: 'Название должно содержать максимум 200 символов',
|
|
807
|
+
},
|
|
808
|
+
order: {
|
|
809
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
810
|
+
},
|
|
811
|
+
},
|
|
812
|
+
CreatePostRequest: {
|
|
813
|
+
alias: {
|
|
814
|
+
required: 'Введите alias',
|
|
815
|
+
min: 'Введите alias',
|
|
816
|
+
max: 'Alias должен содержать максимум 200 символов',
|
|
817
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
818
|
+
},
|
|
819
|
+
title: {
|
|
820
|
+
required: 'Введите заголовок',
|
|
821
|
+
min: 'Введите заголовок',
|
|
822
|
+
max: 'Заголовок должен содержать максимум 300 символов',
|
|
823
|
+
},
|
|
824
|
+
description: {
|
|
825
|
+
max: 'Описание должно содержать максимум 1000 символов',
|
|
826
|
+
},
|
|
827
|
+
metaTitle: {
|
|
828
|
+
required: 'Введите мета-заголовок',
|
|
829
|
+
min: 'Введите мета-заголовок',
|
|
830
|
+
max: 'Мета-заголовок должен содержать максимум 100 символов',
|
|
831
|
+
},
|
|
832
|
+
metaDescription: {
|
|
833
|
+
required: 'Введите мета-описание',
|
|
834
|
+
min: 'Введите мета-описание',
|
|
835
|
+
max: 'Мета-описание должно содержать максимум 200 символов',
|
|
836
|
+
},
|
|
837
|
+
content: {
|
|
838
|
+
required: 'Введите содержимое',
|
|
839
|
+
min: 'Введите содержимое',
|
|
840
|
+
max: 'Содержимое слишком длинное',
|
|
841
|
+
},
|
|
842
|
+
image: {
|
|
843
|
+
required: 'Укажите URL изображения',
|
|
844
|
+
invalid: 'Некорректный URL изображения',
|
|
845
|
+
},
|
|
846
|
+
author: {
|
|
847
|
+
required: 'Укажите автора',
|
|
848
|
+
min: 'Укажите автора',
|
|
849
|
+
max: 'Имя автора должно содержать максимум 100 символов',
|
|
850
|
+
},
|
|
851
|
+
categoryIds: {
|
|
852
|
+
required: 'Выберите хотя бы одну категорию',
|
|
853
|
+
min: 'Выберите хотя бы одну категорию',
|
|
854
|
+
invalidUuid: 'Некорректный формат ID категории',
|
|
855
|
+
},
|
|
856
|
+
pageId: {
|
|
857
|
+
invalidUuid: 'Некорректный формат ID страницы',
|
|
858
|
+
},
|
|
859
|
+
aiWidgetPlaceholder: {
|
|
860
|
+
max: 'Плейсхолдер AI виджета должен содержать максимум 500 символов',
|
|
861
|
+
},
|
|
862
|
+
aiWidgetPrompt: {
|
|
863
|
+
max: 'Промпт AI виджета должен содержать максимум 2000 символов',
|
|
864
|
+
},
|
|
865
|
+
aiWidgetRequired: {
|
|
866
|
+
required: 'ID страницы, плейсхолдер и промпт AI виджета обязательны при наличии метки AI_WIDGET',
|
|
867
|
+
},
|
|
868
|
+
},
|
|
869
|
+
UpdatePostRequest: {
|
|
870
|
+
alias: {
|
|
871
|
+
min: 'Alias не может быть пустым',
|
|
872
|
+
max: 'Alias должен содержать максимум 200 символов',
|
|
873
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
874
|
+
},
|
|
875
|
+
title: {
|
|
876
|
+
min: 'Заголовок не может быть пустым',
|
|
877
|
+
max: 'Заголовок должен содержать максимум 300 символов',
|
|
878
|
+
},
|
|
879
|
+
description: {
|
|
880
|
+
max: 'Описание должно содержать максимум 1000 символов',
|
|
881
|
+
},
|
|
882
|
+
metaTitle: {
|
|
883
|
+
min: 'Мета-заголовок не может быть пустым',
|
|
884
|
+
max: 'Мета-заголовок должен содержать максимум 100 символов',
|
|
885
|
+
},
|
|
886
|
+
metaDescription: {
|
|
887
|
+
min: 'Мета-описание не может быть пустым',
|
|
888
|
+
max: 'Мета-описание должно содержать максимум 200 символов',
|
|
889
|
+
},
|
|
890
|
+
content: {
|
|
891
|
+
min: 'Содержимое не может быть пустым',
|
|
892
|
+
max: 'Содержимое слишком длинное',
|
|
893
|
+
},
|
|
894
|
+
image: {
|
|
895
|
+
invalid: 'Некорректный URL изображения',
|
|
896
|
+
},
|
|
897
|
+
author: {
|
|
898
|
+
min: 'Автор не может быть пустым',
|
|
899
|
+
max: 'Имя автора должно содержать максимум 100 символов',
|
|
900
|
+
},
|
|
901
|
+
categoryIds: {
|
|
902
|
+
min: 'Выберите хотя бы одну категорию',
|
|
903
|
+
invalidUuid: 'Некорректный формат ID категории',
|
|
904
|
+
},
|
|
905
|
+
pageId: {
|
|
906
|
+
invalidUuid: 'Некорректный формат ID страницы',
|
|
907
|
+
},
|
|
908
|
+
aiWidgetPlaceholder: {
|
|
909
|
+
max: 'Плейсхолдер AI виджета должен содержать максимум 500 символов',
|
|
910
|
+
},
|
|
911
|
+
aiWidgetPrompt: {
|
|
912
|
+
max: 'Промпт AI виджета должен содержать максимум 2000 символов',
|
|
913
|
+
},
|
|
914
|
+
aiWidgetRequired: {
|
|
915
|
+
required: 'ID страницы, плейсхолдер и промпт AI виджета обязательны при наличии метки AI_WIDGET',
|
|
916
|
+
},
|
|
917
|
+
},
|
|
918
|
+
GetPostsQuery: {
|
|
919
|
+
categoryAliases: {
|
|
920
|
+
invalid: 'Некорректный формат алиасов категорий',
|
|
921
|
+
},
|
|
922
|
+
},
|
|
923
|
+
UuidParam: {
|
|
924
|
+
uuid: {
|
|
925
|
+
required: 'UUID обязателен',
|
|
926
|
+
invalid: 'Некорректный формат UUID',
|
|
927
|
+
},
|
|
928
|
+
},
|
|
929
|
+
AliasParam: {
|
|
930
|
+
alias: {
|
|
931
|
+
required: 'Alias обязателен',
|
|
932
|
+
min: 'Alias не может быть пустым',
|
|
933
|
+
max: 'Alias должен содержать максимум 200 символов',
|
|
934
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
935
|
+
},
|
|
936
|
+
},
|
|
937
|
+
// ==================== CHAT ====================
|
|
938
|
+
CreateChatRequest: {
|
|
939
|
+
folderId: {
|
|
940
|
+
invalid: 'Некорректный формат ID папки',
|
|
941
|
+
},
|
|
942
|
+
},
|
|
943
|
+
UpdateChatRequest: {
|
|
944
|
+
title: {
|
|
945
|
+
min: 'Название не может быть пустым',
|
|
946
|
+
max: 'Название должно содержать максимум 40 символов',
|
|
947
|
+
},
|
|
948
|
+
folderId: {
|
|
949
|
+
invalid: 'Некорректный формат ID папки',
|
|
950
|
+
},
|
|
951
|
+
},
|
|
952
|
+
UpdateChatTitleRequest: {
|
|
953
|
+
title: {
|
|
954
|
+
required: 'Введите название',
|
|
955
|
+
min: 'Введите название',
|
|
956
|
+
max: 'Название должно содержать максимум 40 символов',
|
|
957
|
+
},
|
|
958
|
+
},
|
|
959
|
+
GetChatHistoryRequest: {
|
|
960
|
+
limit: {
|
|
961
|
+
min: 'Лимит должен быть не менее 1',
|
|
962
|
+
max: 'Лимит должен быть не более 100',
|
|
963
|
+
invalid: 'Лимит должен быть положительным целым числом',
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
ChatIdParam: {
|
|
967
|
+
chatId: {
|
|
968
|
+
required: 'ID чата обязателен',
|
|
969
|
+
invalid: 'Некорректный формат ID чата',
|
|
970
|
+
},
|
|
971
|
+
},
|
|
972
|
+
PageIdParam: {
|
|
973
|
+
pageId: {
|
|
974
|
+
required: 'ID страницы обязателен',
|
|
975
|
+
invalid: 'Некорректный формат ID страницы',
|
|
976
|
+
},
|
|
977
|
+
},
|
|
978
|
+
// ==================== MESSAGE ====================
|
|
979
|
+
CreateMessageRequest: {
|
|
980
|
+
aiModelId: {
|
|
981
|
+
required: 'Выберите AI модель',
|
|
982
|
+
invalid: 'Некорректный формат ID AI модели',
|
|
983
|
+
},
|
|
984
|
+
text: {
|
|
985
|
+
required: 'Введите сообщение',
|
|
986
|
+
min: 'Введите сообщение',
|
|
987
|
+
max: 'Сообщение слишком длинное',
|
|
988
|
+
},
|
|
989
|
+
},
|
|
990
|
+
RateMessageRequest: {
|
|
991
|
+
rating: {
|
|
992
|
+
required: 'Укажите оценку',
|
|
993
|
+
invalid: 'Некорректное значение оценки',
|
|
994
|
+
},
|
|
995
|
+
},
|
|
996
|
+
RateMessageParams: {
|
|
997
|
+
pageId: {
|
|
998
|
+
required: 'ID страницы обязателен',
|
|
999
|
+
invalid: 'Некорректный формат ID страницы',
|
|
1000
|
+
},
|
|
1001
|
+
chatId: {
|
|
1002
|
+
required: 'ID чата обязателен',
|
|
1003
|
+
invalid: 'Некорректный формат ID чата',
|
|
1004
|
+
},
|
|
1005
|
+
messageId: {
|
|
1006
|
+
required: 'ID сообщения обязателен',
|
|
1007
|
+
invalid: 'Некорректный формат ID сообщения',
|
|
1008
|
+
},
|
|
1009
|
+
},
|
|
1010
|
+
// ==================== FILE ====================
|
|
1011
|
+
DeleteFileByKeyQuery: {
|
|
1012
|
+
key: {
|
|
1013
|
+
required: 'Ключ файла обязателен',
|
|
1014
|
+
min: 'Ключ файла обязателен',
|
|
1015
|
+
},
|
|
1016
|
+
},
|
|
1017
|
+
ListFilesQuery: {
|
|
1018
|
+
page: {
|
|
1019
|
+
invalid: 'Страница должна быть положительным целым числом',
|
|
1020
|
+
},
|
|
1021
|
+
limit: {
|
|
1022
|
+
invalid: 'Лимит должен быть положительным целым числом',
|
|
1023
|
+
max: 'Лимит должен быть не более 100',
|
|
1024
|
+
},
|
|
1025
|
+
},
|
|
1026
|
+
UploadFileQuery: {
|
|
1027
|
+
folder: {
|
|
1028
|
+
required: 'Укажите папку',
|
|
1029
|
+
min: 'Укажите папку',
|
|
1030
|
+
},
|
|
1031
|
+
},
|
|
1032
|
+
UploadImageQuery: {
|
|
1033
|
+
folder: {
|
|
1034
|
+
required: 'Укажите папку',
|
|
1035
|
+
min: 'Укажите папку',
|
|
1036
|
+
},
|
|
1037
|
+
formats: {
|
|
1038
|
+
required: 'Укажите форматы изображения',
|
|
1039
|
+
min: 'Укажите форматы изображения',
|
|
1040
|
+
},
|
|
1041
|
+
},
|
|
1042
|
+
// ==================== AI-MODEL ====================
|
|
1043
|
+
CreateModelRequest: {
|
|
1044
|
+
title: {
|
|
1045
|
+
required: 'Введите название',
|
|
1046
|
+
min: 'Введите название',
|
|
1047
|
+
max: 'Название должно содержать максимум 255 символов',
|
|
1048
|
+
},
|
|
1049
|
+
model: {
|
|
1050
|
+
required: 'Введите название модели',
|
|
1051
|
+
min: 'Введите название модели',
|
|
1052
|
+
max: 'Название модели должно содержать максимум 100 символов',
|
|
1053
|
+
},
|
|
1054
|
+
icon: {
|
|
1055
|
+
required: 'Укажите URL иконки',
|
|
1056
|
+
invalid: 'Некорректный URL иконки',
|
|
1057
|
+
https: 'URL иконки должен использовать HTTPS',
|
|
1058
|
+
},
|
|
1059
|
+
providerUuid: {
|
|
1060
|
+
invalid: 'Некорректный формат ID провайдера',
|
|
1061
|
+
},
|
|
1062
|
+
price: {
|
|
1063
|
+
invalid: 'Цена должна быть положительным целым числом',
|
|
1064
|
+
},
|
|
1065
|
+
speed: {
|
|
1066
|
+
min: 'Скорость должна быть не менее 1',
|
|
1067
|
+
max: 'Скорость должна быть не более 5',
|
|
1068
|
+
},
|
|
1069
|
+
contextLength: {
|
|
1070
|
+
invalid: 'Длина контекста должна быть положительным целым числом',
|
|
1071
|
+
},
|
|
1072
|
+
order: {
|
|
1073
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1074
|
+
},
|
|
1075
|
+
},
|
|
1076
|
+
UpdateModelRequest: {
|
|
1077
|
+
title: {
|
|
1078
|
+
min: 'Название не может быть пустым',
|
|
1079
|
+
max: 'Название должно содержать максимум 255 символов',
|
|
1080
|
+
},
|
|
1081
|
+
model: {
|
|
1082
|
+
min: 'Название модели не может быть пустым',
|
|
1083
|
+
max: 'Название модели должно содержать максимум 100 символов',
|
|
1084
|
+
},
|
|
1085
|
+
icon: {
|
|
1086
|
+
invalid: 'Некорректный URL иконки',
|
|
1087
|
+
https: 'URL иконки должен использовать HTTPS',
|
|
1088
|
+
},
|
|
1089
|
+
providerUuid: {
|
|
1090
|
+
invalid: 'Некорректный формат ID провайдера',
|
|
1091
|
+
},
|
|
1092
|
+
price: {
|
|
1093
|
+
invalid: 'Цена должна быть положительным целым числом',
|
|
1094
|
+
},
|
|
1095
|
+
speed: {
|
|
1096
|
+
min: 'Скорость должна быть не менее 1',
|
|
1097
|
+
max: 'Скорость должна быть не более 5',
|
|
1098
|
+
},
|
|
1099
|
+
contextLength: {
|
|
1100
|
+
invalid: 'Длина контекста должна быть положительным целым числом',
|
|
1101
|
+
},
|
|
1102
|
+
order: {
|
|
1103
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1104
|
+
},
|
|
1105
|
+
},
|
|
1106
|
+
GetModelsFilters: {
|
|
1107
|
+
providerUuid: {
|
|
1108
|
+
invalid: 'Некорректный формат ID провайдера',
|
|
1109
|
+
},
|
|
1110
|
+
},
|
|
1111
|
+
ModelUuidParams: {
|
|
1112
|
+
uuid: {
|
|
1113
|
+
required: 'UUID модели обязателен',
|
|
1114
|
+
invalid: 'Некорректный формат UUID',
|
|
1115
|
+
},
|
|
1116
|
+
},
|
|
1117
|
+
// ==================== AI-PROVIDER ====================
|
|
1118
|
+
CreateProviderRequest: {
|
|
1119
|
+
title: {
|
|
1120
|
+
required: 'Введите название',
|
|
1121
|
+
min: 'Введите название',
|
|
1122
|
+
max: 'Название должно содержать максимум 100 символов',
|
|
1123
|
+
},
|
|
1124
|
+
icon: {
|
|
1125
|
+
required: 'Укажите URL иконки',
|
|
1126
|
+
invalid: 'Некорректный URL иконки',
|
|
1127
|
+
https: 'URL иконки должен использовать HTTPS',
|
|
1128
|
+
},
|
|
1129
|
+
order: {
|
|
1130
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1131
|
+
},
|
|
1132
|
+
},
|
|
1133
|
+
UpdateProviderRequest: {
|
|
1134
|
+
title: {
|
|
1135
|
+
min: 'Название не может быть пустым',
|
|
1136
|
+
max: 'Название должно содержать максимум 100 символов',
|
|
1137
|
+
},
|
|
1138
|
+
icon: {
|
|
1139
|
+
invalid: 'Некорректный URL иконки',
|
|
1140
|
+
https: 'URL иконки должен использовать HTTPS',
|
|
1141
|
+
},
|
|
1142
|
+
order: {
|
|
1143
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1144
|
+
},
|
|
1145
|
+
},
|
|
1146
|
+
ProviderUuidParam: {
|
|
1147
|
+
uuid: {
|
|
1148
|
+
required: 'UUID провайдера обязателен',
|
|
1149
|
+
invalid: 'Некорректный формат UUID',
|
|
1150
|
+
},
|
|
1151
|
+
},
|
|
1152
|
+
// ==================== CHAT-PROJECT ====================
|
|
1153
|
+
CreateProjectRequest: {
|
|
1154
|
+
title: {
|
|
1155
|
+
required: 'Введите название',
|
|
1156
|
+
min: 'Введите название',
|
|
1157
|
+
max: 'Название должно содержать максимум 100 символов',
|
|
1158
|
+
},
|
|
1159
|
+
color: {
|
|
1160
|
+
required: 'Укажите цвет',
|
|
1161
|
+
invalid: 'Цвет должен быть в формате: #RRGGBB',
|
|
1162
|
+
},
|
|
1163
|
+
},
|
|
1164
|
+
UpdateProjectRequest: {
|
|
1165
|
+
title: {
|
|
1166
|
+
min: 'Название не может быть пустым',
|
|
1167
|
+
max: 'Название должно содержать максимум 100 символов',
|
|
1168
|
+
},
|
|
1169
|
+
color: {
|
|
1170
|
+
invalid: 'Цвет должен быть в формате: #RRGGBB',
|
|
1171
|
+
},
|
|
1172
|
+
},
|
|
1173
|
+
GetProjectChatsRequest: {
|
|
1174
|
+
limit: {
|
|
1175
|
+
min: 'Лимит должен быть не менее 1',
|
|
1176
|
+
max: 'Лимит должен быть не более 100',
|
|
1177
|
+
invalid: 'Лимит должен быть положительным целым числом',
|
|
1178
|
+
},
|
|
1179
|
+
},
|
|
1180
|
+
ProjectUuidParam: {
|
|
1181
|
+
uuid: {
|
|
1182
|
+
required: 'UUID проекта обязателен',
|
|
1183
|
+
invalid: 'Некорректный формат UUID',
|
|
1184
|
+
},
|
|
1185
|
+
},
|
|
1186
|
+
// ==================== SEO-PAGES ====================
|
|
1187
|
+
CreatePageRequest: {
|
|
1188
|
+
metaTitle: {
|
|
1189
|
+
required: 'Введите мета-заголовок',
|
|
1190
|
+
min: 'Введите мета-заголовок',
|
|
1191
|
+
max: 'Мета-заголовок должен содержать максимум 100 символов',
|
|
1192
|
+
},
|
|
1193
|
+
metaDescription: {
|
|
1194
|
+
required: 'Введите мета-описание',
|
|
1195
|
+
min: 'Введите мета-описание',
|
|
1196
|
+
max: 'Мета-описание должно содержать максимум 200 символов',
|
|
1197
|
+
},
|
|
1198
|
+
title: {
|
|
1199
|
+
required: 'Введите заголовок',
|
|
1200
|
+
min: 'Введите заголовок',
|
|
1201
|
+
max: 'Заголовок должен содержать максимум 300 символов',
|
|
1202
|
+
},
|
|
1203
|
+
description: {
|
|
1204
|
+
required: 'Введите описание',
|
|
1205
|
+
min: 'Введите описание',
|
|
1206
|
+
},
|
|
1207
|
+
content: {
|
|
1208
|
+
required: 'Введите содержимое',
|
|
1209
|
+
min: 'Введите содержимое',
|
|
1210
|
+
},
|
|
1211
|
+
alias: {
|
|
1212
|
+
required: 'Введите alias',
|
|
1213
|
+
min: 'Введите alias',
|
|
1214
|
+
max: 'Alias должен содержать максимум 200 символов',
|
|
1215
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
1216
|
+
},
|
|
1217
|
+
type: {
|
|
1218
|
+
required: 'Выберите тип страницы',
|
|
1219
|
+
invalid: 'Некорректный тип страницы',
|
|
1220
|
+
},
|
|
1221
|
+
icon: {
|
|
1222
|
+
required: 'Укажите иконку',
|
|
1223
|
+
min: 'Укажите иконку',
|
|
1224
|
+
max: 'Иконка должна содержать максимум 100 символов',
|
|
1225
|
+
},
|
|
1226
|
+
parentId: {
|
|
1227
|
+
invalid: 'Некорректный формат ID родительской страницы',
|
|
1228
|
+
},
|
|
1229
|
+
order: {
|
|
1230
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1231
|
+
},
|
|
1232
|
+
placeholder: {
|
|
1233
|
+
max: 'Плейсхолдер должен содержать максимум 500 символов',
|
|
1234
|
+
},
|
|
1235
|
+
seoName: {
|
|
1236
|
+
max: 'SEO название должно содержать максимум 200 символов',
|
|
1237
|
+
},
|
|
1238
|
+
marks: {
|
|
1239
|
+
max: 'Каждая метка должна содержать максимум 50 символов',
|
|
1240
|
+
},
|
|
1241
|
+
},
|
|
1242
|
+
UpdatePageRequest: {
|
|
1243
|
+
metaTitle: {
|
|
1244
|
+
min: 'Мета-заголовок не может быть пустым',
|
|
1245
|
+
max: 'Мета-заголовок должен содержать максимум 100 символов',
|
|
1246
|
+
},
|
|
1247
|
+
metaDescription: {
|
|
1248
|
+
min: 'Мета-описание не может быть пустым',
|
|
1249
|
+
max: 'Мета-описание должно содержать максимум 200 символов',
|
|
1250
|
+
},
|
|
1251
|
+
title: {
|
|
1252
|
+
min: 'Заголовок не может быть пустым',
|
|
1253
|
+
max: 'Заголовок должен содержать максимум 300 символов',
|
|
1254
|
+
},
|
|
1255
|
+
description: {
|
|
1256
|
+
min: 'Описание не может быть пустым',
|
|
1257
|
+
},
|
|
1258
|
+
content: {
|
|
1259
|
+
min: 'Содержимое не может быть пустым',
|
|
1260
|
+
},
|
|
1261
|
+
alias: {
|
|
1262
|
+
min: 'Alias не может быть пустым',
|
|
1263
|
+
max: 'Alias должен содержать максимум 200 символов',
|
|
1264
|
+
invalid: 'Alias должен содержать только строчные буквы, цифры и дефисы',
|
|
1265
|
+
},
|
|
1266
|
+
type: {
|
|
1267
|
+
invalid: 'Некорректный тип страницы',
|
|
1268
|
+
},
|
|
1269
|
+
icon: {
|
|
1270
|
+
min: 'Иконка не может быть пустой',
|
|
1271
|
+
max: 'Иконка должна содержать максимум 100 символов',
|
|
1272
|
+
},
|
|
1273
|
+
parentId: {
|
|
1274
|
+
invalid: 'Некорректный формат ID родительской страницы',
|
|
1275
|
+
},
|
|
1276
|
+
order: {
|
|
1277
|
+
invalid: 'Порядок должен быть неотрицательным целым числом',
|
|
1278
|
+
},
|
|
1279
|
+
placeholder: {
|
|
1280
|
+
max: 'Плейсхолдер должен содержать максимум 500 символов',
|
|
1281
|
+
},
|
|
1282
|
+
seoName: {
|
|
1283
|
+
max: 'SEO название должно содержать максимум 200 символов',
|
|
1284
|
+
},
|
|
1285
|
+
marks: {
|
|
1286
|
+
max: 'Каждая метка должна содержать максимум 50 символов',
|
|
1287
|
+
},
|
|
1288
|
+
},
|
|
1289
|
+
FaqItem: {
|
|
1290
|
+
question: {
|
|
1291
|
+
required: 'Введите вопрос',
|
|
1292
|
+
min: 'Вопрос должен содержать минимум 10 символов',
|
|
1293
|
+
max: 'Вопрос должен содержать максимум 500 символов',
|
|
1294
|
+
},
|
|
1295
|
+
answer: {
|
|
1296
|
+
required: 'Введите ответ',
|
|
1297
|
+
min: 'Ответ должен содержать минимум 20 символов',
|
|
1298
|
+
max: 'Ответ должен содержать максимум 2000 символов',
|
|
1299
|
+
},
|
|
1300
|
+
},
|
|
1301
|
+
Faq: {
|
|
1302
|
+
items: {
|
|
1303
|
+
max: 'FAQ может содержать максимум 20 пунктов',
|
|
1304
|
+
},
|
|
1305
|
+
},
|
|
1306
|
+
// ==================== PAGE-HINTS ====================
|
|
1307
|
+
CreateHintRequest: {
|
|
1308
|
+
icon: {
|
|
1309
|
+
required: 'Укажите иконку',
|
|
1310
|
+
min: 'Укажите иконку',
|
|
1311
|
+
max: 'Иконка должна содержать максимум 50 символов',
|
|
1312
|
+
},
|
|
1313
|
+
title: {
|
|
1314
|
+
required: 'Введите название',
|
|
1315
|
+
min: 'Введите название',
|
|
1316
|
+
max: 'Название должно содержать максимум 255 символов',
|
|
1317
|
+
},
|
|
1318
|
+
},
|
|
1319
|
+
UpdateHintRequest: {
|
|
1320
|
+
icon: {
|
|
1321
|
+
min: 'Иконка не может быть пустой',
|
|
1322
|
+
max: 'Иконка должна содержать максимум 50 символов',
|
|
1323
|
+
},
|
|
1324
|
+
title: {
|
|
1325
|
+
min: 'Название не может быть пустым',
|
|
1326
|
+
max: 'Название должно содержать максимум 255 символов',
|
|
1327
|
+
},
|
|
1328
|
+
},
|
|
1329
|
+
// ==================== VERIFICATION ====================
|
|
1330
|
+
VerificationCompleteRequest: {
|
|
1331
|
+
requestId: {
|
|
1332
|
+
required: 'ID запроса обязателен',
|
|
1333
|
+
invalid: 'Некорректный формат ID запроса',
|
|
1334
|
+
},
|
|
1335
|
+
},
|
|
1336
|
+
VerificationResendRequest: {
|
|
1337
|
+
requestId: {
|
|
1338
|
+
required: 'ID запроса обязателен',
|
|
1339
|
+
invalid: 'Некорректный формат ID запроса',
|
|
1340
|
+
},
|
|
1341
|
+
stepId: {
|
|
1342
|
+
required: 'ID шага обязателен',
|
|
1343
|
+
invalid: 'Некорректный формат ID шага',
|
|
1344
|
+
},
|
|
1345
|
+
},
|
|
1346
|
+
VerificationVerifyRequest: {
|
|
1347
|
+
requestId: {
|
|
1348
|
+
required: 'ID запроса обязателен',
|
|
1349
|
+
invalid: 'Некорректный формат ID запроса',
|
|
1350
|
+
},
|
|
1351
|
+
stepId: {
|
|
1352
|
+
required: 'ID шага обязателен',
|
|
1353
|
+
invalid: 'Некорректный формат ID шага',
|
|
1354
|
+
},
|
|
1355
|
+
code: {
|
|
1356
|
+
required: 'Введите код подтверждения',
|
|
1357
|
+
invalid: 'Код должен состоять из 6 цифр',
|
|
1358
|
+
},
|
|
1359
|
+
},
|
|
1360
|
+
// ==================== UNREGISTERED-USERS ====================
|
|
1361
|
+
AuthenticateUnregUserRequest: {
|
|
1362
|
+
token: {
|
|
1363
|
+
invalid: 'Некорректный формат токена',
|
|
1364
|
+
},
|
|
1365
|
+
},
|
|
1366
|
+
UtmSchema: {
|
|
1367
|
+
utmSource: {
|
|
1368
|
+
invalid: 'Некорректный UTM source',
|
|
1369
|
+
},
|
|
1370
|
+
utmMedium: {
|
|
1371
|
+
invalid: 'Некорректный UTM medium',
|
|
1372
|
+
},
|
|
1373
|
+
utmCampaign: {
|
|
1374
|
+
invalid: 'Некорректный UTM campaign',
|
|
1375
|
+
},
|
|
1376
|
+
},
|
|
1377
|
+
// ==================== SHARED ====================
|
|
1378
|
+
PaginationQuery: {
|
|
1379
|
+
page: {
|
|
1380
|
+
invalid: 'Страница должна быть положительным целым числом',
|
|
1381
|
+
},
|
|
1382
|
+
limit: {
|
|
1383
|
+
invalid: 'Лимит должен быть положительным целым числом',
|
|
1384
|
+
max: 'Лимит должен быть не более 100',
|
|
1385
|
+
},
|
|
1386
|
+
},
|
|
1387
|
+
},
|
|
1388
|
+
};
|
|
1389
|
+
/**
|
|
1390
|
+
* Get validation message by key
|
|
1391
|
+
* @param key - Message key in format 'SchemaName.field.rule'
|
|
1392
|
+
* @param locale - Locale ('en' | 'ru')
|
|
1393
|
+
* @returns Localized message or key if not found
|
|
1394
|
+
*/
|
|
1395
|
+
function getValidationMessage(key, locale = 'ru') {
|
|
1396
|
+
const parts = key.split('.');
|
|
1397
|
+
if (parts.length !== 3)
|
|
1398
|
+
return key;
|
|
1399
|
+
const [schema, field, rule] = parts;
|
|
1400
|
+
const messages = exports.validationMessages[locale];
|
|
1401
|
+
return messages?.[schema]?.[field]?.[rule] || key;
|
|
1402
|
+
}
|