@purpleschool/gptbot 0.6.3 → 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.
Files changed (31) hide show
  1. package/api/controllers/http/folder.ts +10 -0
  2. package/api/controllers/http/index.ts +1 -0
  3. package/api/routes.ts +12 -0
  4. package/build/api/controllers/http/folder.js +12 -0
  5. package/build/api/controllers/http/index.js +1 -0
  6. package/build/api/routes.js +8 -0
  7. package/build/commands/chat/update-chat.command.js +5 -2
  8. package/build/commands/folder/create-folder.command.js +15 -0
  9. package/build/commands/folder/delete-folder.command.js +19 -0
  10. package/build/commands/folder/find-folder-by-uuid-with-chats.command.js +27 -0
  11. package/build/commands/folder/find-folder-by-uuid.command.js +17 -0
  12. package/build/commands/folder/find-folders-by-user.command.js +20 -0
  13. package/build/commands/folder/index.js +22 -0
  14. package/build/commands/folder/update-folder.command.js +18 -0
  15. package/build/commands/index.js +1 -0
  16. package/build/constants/errors/errors.js +31 -1
  17. package/build/models/folder.schema.js +12 -0
  18. package/build/models/index.js +1 -0
  19. package/commands/chat/update-chat.command.ts +7 -3
  20. package/commands/folder/create-folder.command.ts +17 -0
  21. package/commands/folder/delete-folder.command.ts +18 -0
  22. package/commands/folder/find-folder-by-uuid-with-chats.command.ts +31 -0
  23. package/commands/folder/find-folder-by-uuid.command.ts +16 -0
  24. package/commands/folder/find-folders-by-user.command.ts +19 -0
  25. package/commands/folder/index.ts +6 -0
  26. package/commands/folder/update-folder.command.ts +23 -0
  27. package/commands/index.ts +1 -0
  28. package/constants/errors/errors.ts +31 -1
  29. package/models/folder.schema.ts +10 -0
  30. package/models/index.ts +1 -0
  31. 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;
@@ -39,3 +39,4 @@ export * from './review';
39
39
  export * from './prompt-category';
40
40
  export * from './prompt-topic';
41
41
  export * from './prompt';
42
+ export * from './folder';
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
+ };
@@ -55,3 +55,4 @@ __exportStar(require("./review"), exports);
55
55
  __exportStar(require("./prompt-category"), exports);
56
56
  __exportStar(require("./prompt-topic"), exports);
57
57
  __exportStar(require("./prompt"), exports);
58
+ __exportStar(require("./folder"), exports);
@@ -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.object({
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 = {}));
@@ -49,3 +49,4 @@ __exportStar(require("./review"), exports);
49
49
  __exportStar(require("./prompt-category"), exports);
50
50
  __exportStar(require("./prompt-topic"), exports);
51
51
  __exportStar(require("./prompt"), exports);
52
+ __exportStar(require("./folder"), exports);
@@ -1438,8 +1438,38 @@ exports.ERRORS = {
1438
1438
  message: 'Произошла ошибка при построении списка функций подписки',
1439
1439
  httpCode: 500,
1440
1440
  },
1441
- CHECK_USER_HAS_ACTIVE_SUBSCRIPTION_OR_PRODUCT_ERROR: {
1441
+ FOLDER_DELETE_ERROR: {
1442
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',
1443
1473
  message: 'Произошла ошибка при проверке наличия активной подписки или пакета у пользователя',
1444
1474
  httpCode: 500,
1445
1475
  },
@@ -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
+ });
@@ -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.object({
11
- title: z.string().max(65),
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
@@ -33,3 +33,4 @@ export * from './review';
33
33
  export * from './prompt-category';
34
34
  export * from './prompt-topic';
35
35
  export * from './prompt';
36
+ export * from './folder';
@@ -1444,8 +1444,38 @@ export const ERRORS = {
1444
1444
  message: 'Произошла ошибка при построении списка функций подписки',
1445
1445
  httpCode: 500,
1446
1446
  },
1447
- CHECK_USER_HAS_ACTIVE_SUBSCRIPTION_OR_PRODUCT_ERROR: {
1447
+ FOLDER_DELETE_ERROR: {
1448
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',
1449
1479
  message:
1450
1480
  'Произошла ошибка при проверке наличия активной подписки или пакета у пользователя',
1451
1481
  httpCode: 500,
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+
3
+ export const FolderSchema = z.object({
4
+ uuid: z.string().uuid(),
5
+ title: z.string(),
6
+ prompt: z.string(),
7
+ userId: z.string().uuid(),
8
+ createdAt: z.date(),
9
+ updatedAt: z.date(),
10
+ });
package/models/index.ts CHANGED
@@ -45,3 +45,4 @@ export * from './review.schema';
45
45
  export * from './prompt-category.schema';
46
46
  export * from './prompt-topic.schema';
47
47
  export * from './prompt.schema';
48
+ export * from './folder.schema';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",