@purpleschool/gptbot 0.6.2 → 0.6.4
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/api/controllers/http/folder.ts +10 -0
- package/api/controllers/http/index.ts +1 -0
- package/api/routes.ts +12 -0
- package/build/api/controllers/http/folder.js +12 -0
- package/build/api/controllers/http/index.js +1 -0
- package/build/api/routes.js +8 -0
- package/build/commands/chat/update-chat.command.js +5 -2
- package/build/commands/folder/create-folder.command.js +15 -0
- package/build/commands/folder/delete-folder.command.js +19 -0
- package/build/commands/folder/find-folder-by-uuid-with-chats.command.js +27 -0
- package/build/commands/folder/find-folder-by-uuid.command.js +17 -0
- package/build/commands/folder/find-folders-by-user.command.js +20 -0
- package/build/commands/folder/index.js +22 -0
- package/build/commands/folder/update-folder.command.js +18 -0
- package/build/commands/index.js +1 -0
- package/build/constants/errors/errors.js +37 -2
- package/build/models/ai-model.schema.js +1 -0
- package/build/models/folder.schema.js +12 -0
- package/build/models/index.js +1 -0
- package/commands/chat/update-chat.command.ts +7 -3
- package/commands/folder/create-folder.command.ts +17 -0
- package/commands/folder/delete-folder.command.ts +18 -0
- package/commands/folder/find-folder-by-uuid-with-chats.command.ts +31 -0
- package/commands/folder/find-folder-by-uuid.command.ts +16 -0
- package/commands/folder/find-folders-by-user.command.ts +19 -0
- package/commands/folder/index.ts +6 -0
- package/commands/folder/update-folder.command.ts +23 -0
- package/commands/index.ts +1 -0
- package/constants/errors/errors.ts +38 -2
- package/models/ai-model.schema.ts +1 -0
- package/models/folder.schema.ts +10 -0
- package/models/index.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const FOLDER_PRIVATE_CONTROLLER = 'private/folder' as const;
|
|
2
|
+
|
|
3
|
+
export const FOLDER_ROUTES = {
|
|
4
|
+
FIND_MANY_BY_USER: 'user',
|
|
5
|
+
FIND_BY_UUID: (uuid: string) => `${uuid}`,
|
|
6
|
+
FIND_BY_UUID_WITH_CHATS: (uuid: string) => `${uuid}/chats`,
|
|
7
|
+
CREATE: '',
|
|
8
|
+
UPDATE: (uuid: string) => `${uuid}`,
|
|
9
|
+
DELETE: (uuid: string) => `${uuid}`,
|
|
10
|
+
} as const;
|
package/api/routes.ts
CHANGED
|
@@ -231,4 +231,16 @@ export const REST_API = {
|
|
|
231
231
|
FIND: (topicId: string) =>
|
|
232
232
|
`${ROOT}/${CONTROLLERS.PROMPT_PUBLIC_CONTROLLER}/${CONTROLLERS.PROMPT_ROUTES.FIND(topicId)}`,
|
|
233
233
|
},
|
|
234
|
+
FOLDER_PRIVATE: {
|
|
235
|
+
FIND_BY_UUID: (uuid: string) =>
|
|
236
|
+
`${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_BY_UUID(uuid)}`,
|
|
237
|
+
FIND_BY_UUID_WITH_CHATS: (uuid: string) =>
|
|
238
|
+
`${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_BY_UUID_WITH_CHATS(uuid)}`,
|
|
239
|
+
FIND_MANY_BY_USER: `${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_MANY_BY_USER}`,
|
|
240
|
+
CREATE: `${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.CREATE}`,
|
|
241
|
+
UPDATE: (uuid: string) =>
|
|
242
|
+
`${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.UPDATE(uuid)}`,
|
|
243
|
+
DELETE: (uuid: string) =>
|
|
244
|
+
`${ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.DELETE(uuid)}`,
|
|
245
|
+
},
|
|
234
246
|
} as const;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FOLDER_ROUTES = exports.FOLDER_PRIVATE_CONTROLLER = void 0;
|
|
4
|
+
exports.FOLDER_PRIVATE_CONTROLLER = 'private/folder';
|
|
5
|
+
exports.FOLDER_ROUTES = {
|
|
6
|
+
FIND_MANY_BY_USER: 'user',
|
|
7
|
+
FIND_BY_UUID: (uuid) => `${uuid}`,
|
|
8
|
+
FIND_BY_UUID_WITH_CHATS: (uuid) => `${uuid}/chats`,
|
|
9
|
+
CREATE: '',
|
|
10
|
+
UPDATE: (uuid) => `${uuid}`,
|
|
11
|
+
DELETE: (uuid) => `${uuid}`,
|
|
12
|
+
};
|
package/build/api/routes.js
CHANGED
|
@@ -221,4 +221,12 @@ exports.REST_API = {
|
|
|
221
221
|
FIND_ALL: `${exports.ROOT}/${CONTROLLERS.PROMPT_PUBLIC_CONTROLLER}/${CONTROLLERS.PROMPT_ROUTES.FIND_ALL}`,
|
|
222
222
|
FIND: (topicId) => `${exports.ROOT}/${CONTROLLERS.PROMPT_PUBLIC_CONTROLLER}/${CONTROLLERS.PROMPT_ROUTES.FIND(topicId)}`,
|
|
223
223
|
},
|
|
224
|
+
FOLDER_PRIVATE: {
|
|
225
|
+
FIND_BY_UUID: (uuid) => `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_BY_UUID(uuid)}`,
|
|
226
|
+
FIND_BY_UUID_WITH_CHATS: (uuid) => `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_BY_UUID_WITH_CHATS(uuid)}`,
|
|
227
|
+
FIND_MANY_BY_USER: `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.FIND_MANY_BY_USER}`,
|
|
228
|
+
CREATE: `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.CREATE}`,
|
|
229
|
+
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.UPDATE(uuid)}`,
|
|
230
|
+
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.FOLDER_PRIVATE_CONTROLLER}/${CONTROLLERS.FOLDER_ROUTES.DELETE(uuid)}`,
|
|
231
|
+
},
|
|
224
232
|
};
|
|
@@ -8,9 +8,12 @@ var UpdateChatCommand;
|
|
|
8
8
|
UpdateChatCommand.RequestParamsSchema = models_1.ChatSchema.pick({
|
|
9
9
|
uuid: true,
|
|
10
10
|
});
|
|
11
|
-
UpdateChatCommand.RequestSchema = zod_1.z
|
|
11
|
+
UpdateChatCommand.RequestSchema = zod_1.z
|
|
12
|
+
.object({
|
|
12
13
|
title: zod_1.z.string().max(65),
|
|
13
|
-
|
|
14
|
+
folderId: zod_1.z.string().uuid(),
|
|
15
|
+
})
|
|
16
|
+
.partial();
|
|
14
17
|
UpdateChatCommand.ResponseSchema = zod_1.z.object({
|
|
15
18
|
data: models_1.ChatSchema,
|
|
16
19
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateFolderCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var CreateFolderCommand;
|
|
7
|
+
(function (CreateFolderCommand) {
|
|
8
|
+
CreateFolderCommand.RequestSchema = models_1.FolderSchema.pick({
|
|
9
|
+
title: true,
|
|
10
|
+
prompt: true,
|
|
11
|
+
});
|
|
12
|
+
CreateFolderCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
data: models_1.FolderSchema,
|
|
14
|
+
});
|
|
15
|
+
})(CreateFolderCommand || (exports.CreateFolderCommand = CreateFolderCommand = {}));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DeleteFolderCommand = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const __1 = require("../..");
|
|
9
|
+
var DeleteFolderCommand;
|
|
10
|
+
(function (DeleteFolderCommand) {
|
|
11
|
+
DeleteFolderCommand.RequestSchema = __1.FolderSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
});
|
|
14
|
+
DeleteFolderCommand.ResponseSchema = zod_1.default.object({
|
|
15
|
+
data: zod_1.default.object({
|
|
16
|
+
isDeleted: zod_1.default.boolean(),
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
19
|
+
})(DeleteFolderCommand || (exports.DeleteFolderCommand = DeleteFolderCommand = {}));
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FindFolderByUuidWithChatsCommand = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const models_1 = require("../../models");
|
|
9
|
+
var FindFolderByUuidWithChatsCommand;
|
|
10
|
+
(function (FindFolderByUuidWithChatsCommand) {
|
|
11
|
+
FindFolderByUuidWithChatsCommand.RequestParamSchema = models_1.FolderSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
});
|
|
14
|
+
FindFolderByUuidWithChatsCommand.RequestSchema = zod_1.default.object({
|
|
15
|
+
limit: zod_1.default.coerce.number().min(1),
|
|
16
|
+
offset: zod_1.default.coerce.number().min(0).default(0),
|
|
17
|
+
});
|
|
18
|
+
FindFolderByUuidWithChatsCommand.ResponseSchema = zod_1.default.object({
|
|
19
|
+
data: models_1.FolderSchema.extend({
|
|
20
|
+
chats: zod_1.default.array(models_1.ChatSchema.extend({
|
|
21
|
+
messages: zod_1.default.array(models_1.MessageSchema),
|
|
22
|
+
})),
|
|
23
|
+
}),
|
|
24
|
+
page: zod_1.default.number(),
|
|
25
|
+
totalPages: zod_1.default.number(),
|
|
26
|
+
});
|
|
27
|
+
})(FindFolderByUuidWithChatsCommand || (exports.FindFolderByUuidWithChatsCommand = FindFolderByUuidWithChatsCommand = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FindFolderByUuidCommand = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const models_1 = require("../../models");
|
|
9
|
+
var FindFolderByUuidCommand;
|
|
10
|
+
(function (FindFolderByUuidCommand) {
|
|
11
|
+
FindFolderByUuidCommand.RequestSchema = models_1.FolderSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
});
|
|
14
|
+
FindFolderByUuidCommand.ResponseSchema = zod_1.default.object({
|
|
15
|
+
data: models_1.FolderSchema,
|
|
16
|
+
});
|
|
17
|
+
})(FindFolderByUuidCommand || (exports.FindFolderByUuidCommand = FindFolderByUuidCommand = {}));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FindFoldersByUserCommand = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const models_1 = require("../../models");
|
|
9
|
+
var FindFoldersByUserCommand;
|
|
10
|
+
(function (FindFoldersByUserCommand) {
|
|
11
|
+
FindFoldersByUserCommand.RequestSchema = zod_1.default.object({
|
|
12
|
+
limit: zod_1.default.coerce.number().min(1),
|
|
13
|
+
offset: zod_1.default.coerce.number().min(0).default(0),
|
|
14
|
+
});
|
|
15
|
+
FindFoldersByUserCommand.ResponseSchema = zod_1.default.object({
|
|
16
|
+
data: zod_1.default.array(models_1.FolderSchema),
|
|
17
|
+
page: zod_1.default.number(),
|
|
18
|
+
totalPages: zod_1.default.number(),
|
|
19
|
+
});
|
|
20
|
+
})(FindFoldersByUserCommand || (exports.FindFoldersByUserCommand = FindFoldersByUserCommand = {}));
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create-folder.command"), exports);
|
|
18
|
+
__exportStar(require("./delete-folder.command"), exports);
|
|
19
|
+
__exportStar(require("./find-folders-by-user.command"), exports);
|
|
20
|
+
__exportStar(require("./find-folder-by-uuid.command"), exports);
|
|
21
|
+
__exportStar(require("./update-folder.command"), exports);
|
|
22
|
+
__exportStar(require("./find-folder-by-uuid-with-chats.command"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateFolderCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var UpdateFolderCommand;
|
|
7
|
+
(function (UpdateFolderCommand) {
|
|
8
|
+
UpdateFolderCommand.RequestParamSchema = models_1.FolderSchema.pick({
|
|
9
|
+
uuid: true,
|
|
10
|
+
});
|
|
11
|
+
UpdateFolderCommand.RequestSchema = models_1.FolderSchema.pick({
|
|
12
|
+
title: true,
|
|
13
|
+
prompt: true,
|
|
14
|
+
}).partial();
|
|
15
|
+
UpdateFolderCommand.ResponseSchema = zod_1.z.object({
|
|
16
|
+
data: models_1.FolderSchema,
|
|
17
|
+
});
|
|
18
|
+
})(UpdateFolderCommand || (exports.UpdateFolderCommand = UpdateFolderCommand = {}));
|
package/build/commands/index.js
CHANGED
|
@@ -1152,11 +1152,11 @@ exports.ERRORS = {
|
|
|
1152
1152
|
WEB_SEARCH_NOT_AVAILABLE_TO_USER: {
|
|
1153
1153
|
code: 'A255',
|
|
1154
1154
|
message: 'Поиск в интернете не доступен данному пользователю',
|
|
1155
|
-
httpCode:
|
|
1155
|
+
httpCode: 400,
|
|
1156
1156
|
},
|
|
1157
1157
|
CHAT_FILE_ATTACHMENT_NOT_ALLOWED: {
|
|
1158
1158
|
code: 'A256',
|
|
1159
|
-
message: 'Незарегистрированный
|
|
1159
|
+
message: 'Незарегистрированный пользователь не может прикреплять файлы',
|
|
1160
1160
|
httpCode: 400,
|
|
1161
1161
|
},
|
|
1162
1162
|
STT_CONFIG_ERROR: {
|
|
@@ -1438,4 +1438,39 @@ exports.ERRORS = {
|
|
|
1438
1438
|
message: 'Произошла ошибка при построении списка функций подписки',
|
|
1439
1439
|
httpCode: 500,
|
|
1440
1440
|
},
|
|
1441
|
+
FOLDER_DELETE_ERROR: {
|
|
1442
|
+
code: 'A311',
|
|
1443
|
+
message: 'Папка не была удалена',
|
|
1444
|
+
httpCode: 500,
|
|
1445
|
+
},
|
|
1446
|
+
FOLDER_CREATE_ERROR: {
|
|
1447
|
+
code: 'A312',
|
|
1448
|
+
message: 'Папка не был создана',
|
|
1449
|
+
httpCode: 500,
|
|
1450
|
+
},
|
|
1451
|
+
FOLDER_FIND_ERROR: {
|
|
1452
|
+
code: 'A313',
|
|
1453
|
+
message: 'Папка не найдена',
|
|
1454
|
+
httpCode: 404,
|
|
1455
|
+
},
|
|
1456
|
+
FOLDERS_FIND_ERROR: {
|
|
1457
|
+
code: 'A314',
|
|
1458
|
+
message: 'Папки не найдены',
|
|
1459
|
+
httpCode: 404,
|
|
1460
|
+
},
|
|
1461
|
+
FOLDER_UPDATE_ERROR: {
|
|
1462
|
+
code: 'A315',
|
|
1463
|
+
message: 'Папка не был обновлена',
|
|
1464
|
+
httpCode: 500,
|
|
1465
|
+
},
|
|
1466
|
+
FOLDER_OWNERSHIP_ERROR: {
|
|
1467
|
+
code: 'A316',
|
|
1468
|
+
message: 'Юзер не является владельцем папки',
|
|
1469
|
+
httpCode: 400,
|
|
1470
|
+
},
|
|
1471
|
+
CHECK_USER_HAS_ACTIVE_SUBSCRIPTION_OR_PRODUCT_ERROR: {
|
|
1472
|
+
code: 'A317',
|
|
1473
|
+
message: 'Произошла ошибка при проверке наличия активной подписки или пакета у пользователя',
|
|
1474
|
+
httpCode: 500,
|
|
1475
|
+
},
|
|
1441
1476
|
};
|
|
@@ -10,6 +10,7 @@ exports.AiModelSchema = zod_1.z.object({
|
|
|
10
10
|
description: zod_1.z.nullable(zod_1.z.string()),
|
|
11
11
|
isPremium: zod_1.z.boolean(),
|
|
12
12
|
tokenMultiplicator: zod_1.z.number(),
|
|
13
|
+
freeTokenMultiplicator: zod_1.z.number(),
|
|
13
14
|
order: zod_1.z.number(),
|
|
14
15
|
canUse: zod_1.z.optional(zod_1.z.boolean()),
|
|
15
16
|
status: zod_1.z.nativeEnum(constants_1.AI_MODEL_STATUS),
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FolderSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.FolderSchema = zod_1.z.object({
|
|
6
|
+
uuid: zod_1.z.string().uuid(),
|
|
7
|
+
title: zod_1.z.string(),
|
|
8
|
+
prompt: zod_1.z.string(),
|
|
9
|
+
userId: zod_1.z.string().uuid(),
|
|
10
|
+
createdAt: zod_1.z.date(),
|
|
11
|
+
updatedAt: zod_1.z.date(),
|
|
12
|
+
});
|
package/build/models/index.js
CHANGED
|
@@ -61,3 +61,4 @@ __exportStar(require("./review.schema"), exports);
|
|
|
61
61
|
__exportStar(require("./prompt-category.schema"), exports);
|
|
62
62
|
__exportStar(require("./prompt-topic.schema"), exports);
|
|
63
63
|
__exportStar(require("./prompt.schema"), exports);
|
|
64
|
+
__exportStar(require("./folder.schema"), exports);
|
|
@@ -7,9 +7,13 @@ export namespace UpdateChatCommand {
|
|
|
7
7
|
});
|
|
8
8
|
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
9
9
|
|
|
10
|
-
export const RequestSchema = z
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
export const RequestSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
title: z.string().max(65),
|
|
13
|
+
folderId: z.string().uuid(),
|
|
14
|
+
})
|
|
15
|
+
.partial();
|
|
16
|
+
|
|
13
17
|
export type RequestBody = z.infer<typeof RequestSchema>;
|
|
14
18
|
|
|
15
19
|
export const ResponseSchema = z.object({
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { FolderSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace CreateFolderCommand {
|
|
5
|
+
export const RequestSchema = FolderSchema.pick({
|
|
6
|
+
title: true,
|
|
7
|
+
prompt: true,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = z.object({
|
|
13
|
+
data: FolderSchema,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { FolderSchema } from '../..';
|
|
3
|
+
|
|
4
|
+
export namespace DeleteFolderCommand {
|
|
5
|
+
export const RequestSchema = FolderSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = z.object({
|
|
12
|
+
data: z.object({
|
|
13
|
+
isDeleted: z.boolean(),
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { ChatSchema, FolderSchema, MessageSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindFolderByUuidWithChatsCommand {
|
|
5
|
+
export const RequestParamSchema = FolderSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type RequestParam = z.infer<typeof RequestParamSchema>;
|
|
10
|
+
|
|
11
|
+
export const RequestSchema = z.object({
|
|
12
|
+
limit: z.coerce.number().min(1),
|
|
13
|
+
offset: z.coerce.number().min(0).default(0),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
17
|
+
|
|
18
|
+
export const ResponseSchema = z.object({
|
|
19
|
+
data: FolderSchema.extend({
|
|
20
|
+
chats: z.array(
|
|
21
|
+
ChatSchema.extend({
|
|
22
|
+
messages: z.array(MessageSchema),
|
|
23
|
+
}),
|
|
24
|
+
),
|
|
25
|
+
}),
|
|
26
|
+
page: z.number(),
|
|
27
|
+
totalPages: z.number(),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { FolderSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindFolderByUuidCommand {
|
|
5
|
+
export const RequestSchema = FolderSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = z.object({
|
|
12
|
+
data: FolderSchema,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { FolderSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindFoldersByUserCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
limit: z.coerce.number().min(1),
|
|
7
|
+
offset: z.coerce.number().min(0).default(0),
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = z.object({
|
|
13
|
+
data: z.array(FolderSchema),
|
|
14
|
+
page: z.number(),
|
|
15
|
+
totalPages: z.number(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './create-folder.command';
|
|
2
|
+
export * from './delete-folder.command';
|
|
3
|
+
export * from './find-folders-by-user.command';
|
|
4
|
+
export * from './find-folder-by-uuid.command';
|
|
5
|
+
export * from './update-folder.command';
|
|
6
|
+
export * from './find-folder-by-uuid-with-chats.command';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { FolderSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace UpdateFolderCommand {
|
|
5
|
+
export const RequestParamSchema = FolderSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type RequestParam = z.infer<typeof RequestParamSchema>;
|
|
10
|
+
|
|
11
|
+
export const RequestSchema = FolderSchema.pick({
|
|
12
|
+
title: true,
|
|
13
|
+
prompt: true,
|
|
14
|
+
}).partial();
|
|
15
|
+
|
|
16
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
17
|
+
|
|
18
|
+
export const ResponseSchema = z.object({
|
|
19
|
+
data: FolderSchema,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
23
|
+
}
|
package/commands/index.ts
CHANGED
|
@@ -1158,11 +1158,11 @@ export const ERRORS = {
|
|
|
1158
1158
|
WEB_SEARCH_NOT_AVAILABLE_TO_USER: {
|
|
1159
1159
|
code: 'A255',
|
|
1160
1160
|
message: 'Поиск в интернете не доступен данному пользователю',
|
|
1161
|
-
httpCode:
|
|
1161
|
+
httpCode: 400,
|
|
1162
1162
|
},
|
|
1163
1163
|
CHAT_FILE_ATTACHMENT_NOT_ALLOWED: {
|
|
1164
1164
|
code: 'A256',
|
|
1165
|
-
message: 'Незарегистрированный
|
|
1165
|
+
message: 'Незарегистрированный пользователь не может прикреплять файлы',
|
|
1166
1166
|
httpCode: 400,
|
|
1167
1167
|
},
|
|
1168
1168
|
STT_CONFIG_ERROR: {
|
|
@@ -1444,4 +1444,40 @@ export const ERRORS = {
|
|
|
1444
1444
|
message: 'Произошла ошибка при построении списка функций подписки',
|
|
1445
1445
|
httpCode: 500,
|
|
1446
1446
|
},
|
|
1447
|
+
FOLDER_DELETE_ERROR: {
|
|
1448
|
+
code: 'A311',
|
|
1449
|
+
message: 'Папка не была удалена',
|
|
1450
|
+
httpCode: 500,
|
|
1451
|
+
},
|
|
1452
|
+
FOLDER_CREATE_ERROR: {
|
|
1453
|
+
code: 'A312',
|
|
1454
|
+
message: 'Папка не был создана',
|
|
1455
|
+
httpCode: 500,
|
|
1456
|
+
},
|
|
1457
|
+
FOLDER_FIND_ERROR: {
|
|
1458
|
+
code: 'A313',
|
|
1459
|
+
message: 'Папка не найдена',
|
|
1460
|
+
httpCode: 404,
|
|
1461
|
+
},
|
|
1462
|
+
FOLDERS_FIND_ERROR: {
|
|
1463
|
+
code: 'A314',
|
|
1464
|
+
message: 'Папки не найдены',
|
|
1465
|
+
httpCode: 404,
|
|
1466
|
+
},
|
|
1467
|
+
FOLDER_UPDATE_ERROR: {
|
|
1468
|
+
code: 'A315',
|
|
1469
|
+
message: 'Папка не был обновлена',
|
|
1470
|
+
httpCode: 500,
|
|
1471
|
+
},
|
|
1472
|
+
FOLDER_OWNERSHIP_ERROR: {
|
|
1473
|
+
code: 'A316',
|
|
1474
|
+
message: 'Юзер не является владельцем папки',
|
|
1475
|
+
httpCode: 400,
|
|
1476
|
+
},
|
|
1477
|
+
CHECK_USER_HAS_ACTIVE_SUBSCRIPTION_OR_PRODUCT_ERROR: {
|
|
1478
|
+
code: 'A317',
|
|
1479
|
+
message:
|
|
1480
|
+
'Произошла ошибка при проверке наличия активной подписки или пакета у пользователя',
|
|
1481
|
+
httpCode: 500,
|
|
1482
|
+
},
|
|
1447
1483
|
};
|
|
@@ -13,6 +13,7 @@ export const AiModelSchema = z.object({
|
|
|
13
13
|
description: z.nullable(z.string()),
|
|
14
14
|
isPremium: z.boolean(),
|
|
15
15
|
tokenMultiplicator: z.number(),
|
|
16
|
+
freeTokenMultiplicator: z.number(),
|
|
16
17
|
order: z.number(),
|
|
17
18
|
canUse: z.optional(z.boolean()),
|
|
18
19
|
status: z.nativeEnum(AI_MODEL_STATUS),
|
package/models/index.ts
CHANGED