@purpleschool/gptbot 0.8.87-stage-2 → 0.8.88

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 (71) hide show
  1. package/api/controllers/http/community.ts +0 -1
  2. package/api/controllers/http/user.ts +1 -0
  3. package/api/routes.ts +2 -2
  4. package/build/api/controllers/http/community.js +0 -1
  5. package/build/api/controllers/http/user.js +1 -0
  6. package/build/api/routes.js +1 -1
  7. package/build/commands/cabinet/get-user-statistics-by-month.command.js +4 -0
  8. package/build/commands/cabinet/get-user-statistics-overview.command.js +1 -0
  9. package/build/commands/chat/get-chats-config.command.js +0 -1
  10. package/build/commands/community/create-community-post.command.js +1 -1
  11. package/build/commands/message/create-text-message.command.js +1 -1
  12. package/build/commands/tools/writer/update-writer-document-outline.command.js +1 -0
  13. package/build/commands/user/cancel-user-product.command.js +21 -0
  14. package/build/commands/user/index.js +1 -0
  15. package/build/constants/errors/errors.js +19 -99
  16. package/build/constants/file/enums/index.js +0 -1
  17. package/build/constants/index.js +0 -1
  18. package/build/constants/tool/enums/tool-type.enum.js +0 -3
  19. package/build/models/community/community-post-media-data.schema.js +8 -7
  20. package/build/models/index.js +0 -1
  21. package/build/models/tools/image-editor/image-editor-model.schema.js +0 -1
  22. package/build/models/tools/image-generation/image-generation-model.schema.js +1 -1
  23. package/build/models/tools/music/music-job.schema.js +0 -2
  24. package/build/models/tools/music/music-model.schema.js +10 -3
  25. package/build/models/tools/music/music-track.schema.js +2 -0
  26. package/build/models/tools/stt/stt-model.schema.js +0 -1
  27. package/build/models/tools/tts/tts-model.schema.js +0 -1
  28. package/build/models/tools/video/video-job.schema.js +6 -0
  29. package/build/models/tools/video/video-model.schema.js +15 -3
  30. package/build/models/tools/video-editor/video-editor-model.schema.js +1 -2
  31. package/build/models/tools/writer/index.js +1 -0
  32. package/build/models/tools/writer/writer-document-title-page.schema.js +15 -0
  33. package/build/models/tools/writer/writer-document.schema.js +2 -0
  34. package/commands/cabinet/get-user-statistics-by-month.command.ts +7 -0
  35. package/commands/cabinet/get-user-statistics-overview.command.ts +2 -1
  36. package/commands/chat/get-chats-config.command.ts +0 -1
  37. package/commands/community/create-community-post.command.ts +1 -1
  38. package/commands/message/create-text-message.command.ts +2 -2
  39. package/commands/tools/writer/update-writer-document-outline.command.ts +6 -1
  40. package/commands/user/cancel-user-product.command.ts +21 -0
  41. package/commands/user/index.ts +1 -0
  42. package/constants/errors/errors.ts +19 -99
  43. package/constants/file/enums/index.ts +0 -1
  44. package/constants/index.ts +0 -1
  45. package/constants/tool/enums/tool-type.enum.ts +0 -3
  46. package/models/community/community-post-media-data.schema.ts +8 -7
  47. package/models/index.ts +0 -1
  48. package/models/tools/image-editor/image-editor-model.schema.ts +0 -1
  49. package/models/tools/image-generation/image-generation-model.schema.ts +1 -1
  50. package/models/tools/music/music-job.schema.ts +0 -2
  51. package/models/tools/music/music-model.schema.ts +15 -2
  52. package/models/tools/music/music-track.schema.ts +2 -0
  53. package/models/tools/stt/stt-model.schema.ts +0 -1
  54. package/models/tools/tts/tts-model.schema.ts +0 -1
  55. package/models/tools/video/video-job.schema.ts +6 -0
  56. package/models/tools/video/video-model.schema.ts +15 -3
  57. package/models/tools/video-editor/video-editor-model.schema.ts +1 -2
  58. package/models/tools/writer/index.ts +1 -0
  59. package/models/tools/writer/writer-document-title-page.schema.ts +15 -0
  60. package/models/tools/writer/writer-document.schema.ts +2 -0
  61. package/package.json +1 -1
  62. package/build/constants/file/enums/file-usage-mode.enum.js +0 -8
  63. package/build/constants/token-reservation/enums/index.js +0 -17
  64. package/build/constants/token-reservation/enums/token-reservation-status.enum.js +0 -10
  65. package/build/constants/token-reservation/index.js +0 -17
  66. package/build/models/file-attachment.schema.js +0 -18
  67. package/constants/file/enums/file-usage-mode.enum.ts +0 -4
  68. package/constants/token-reservation/enums/index.ts +0 -1
  69. package/constants/token-reservation/enums/token-reservation-status.enum.ts +0 -6
  70. package/constants/token-reservation/index.ts +0 -1
  71. package/models/file-attachment.schema.ts +0 -24
@@ -11,7 +11,6 @@ export const COMMUNITY_ROUTES_PRIVATE = {
11
11
  CREATE: '',
12
12
  UPDATE: (uuid: string) => `${uuid}`,
13
13
  DELETE: (uuid: string) => `${uuid}`,
14
- ARCHIVE: (uuid: string) => `${uuid}/archive`,
15
14
  LIKE: (uuid: string) => `${uuid}/like`,
16
15
  FAVORITE: (uuid: string) => `${uuid}/favorite`,
17
16
  REJECT: (uuid: string) => `${uuid}/reject`,
@@ -11,6 +11,7 @@ export const USER_ROUTES = {
11
11
  GET_SUBSCRIPTIONS: (uuid: string) => `subscriptions/${uuid}`,
12
12
  CANCEL_SUBSCRIPTION: (uuid: string) => `subscriptions/${uuid}/cancel`,
13
13
  GET_PRODUCTS: (uuid: string) => `products/${uuid}`,
14
+ CANCEL_PRODUCT: (uuid: string) => `products/${uuid}/cancel`,
14
15
  GET_PAYMENTS: (uuid: string) => `payments/${uuid}`,
15
16
  GET_COUNT_NOTIFICATION: 'broadcast/count',
16
17
  SEND_NOTIFICATION: 'broadcast',
package/api/routes.ts CHANGED
@@ -33,6 +33,8 @@ export const REST_API = {
33
33
  `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.CANCEL_SUBSCRIPTION(uuid)}`,
34
34
  GET_PRODUCTS: (uuid: string) =>
35
35
  `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.GET_PRODUCTS(uuid)}`,
36
+ CANCEL_PRODUCT: (uuid: string) =>
37
+ `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.CANCEL_PRODUCT(uuid)}`,
36
38
  GET_COUNT_NOTIFICATION: `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.GET_COUNT_NOTIFICATION}`,
37
39
  SEND_NOTIFICATION: `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.SEND_NOTIFICATION}`,
38
40
  DELETE_ACCOUNT: `${ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.DELETE_ACCOUNT}`,
@@ -873,8 +875,6 @@ export const REST_API = {
873
875
  `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.UPDATE(uuid)}`,
874
876
  DELETE: (uuid: string) =>
875
877
  `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.DELETE(uuid)}`,
876
- ARCHIVE: (uuid: string) =>
877
- `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.ARCHIVE(uuid)}`,
878
878
  GET_MY_LIKE: `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.GET_MY_LIKE}`,
879
879
  GET_MY_FAVORITE: `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.GET_MY_FAVORITE}`,
880
880
  LIKE: (uuid: string) =>
@@ -13,7 +13,6 @@ exports.COMMUNITY_ROUTES_PRIVATE = {
13
13
  CREATE: '',
14
14
  UPDATE: (uuid) => `${uuid}`,
15
15
  DELETE: (uuid) => `${uuid}`,
16
- ARCHIVE: (uuid) => `${uuid}/archive`,
17
16
  LIKE: (uuid) => `${uuid}/like`,
18
17
  FAVORITE: (uuid) => `${uuid}/favorite`,
19
18
  REJECT: (uuid) => `${uuid}/reject`,
@@ -13,6 +13,7 @@ exports.USER_ROUTES = {
13
13
  GET_SUBSCRIPTIONS: (uuid) => `subscriptions/${uuid}`,
14
14
  CANCEL_SUBSCRIPTION: (uuid) => `subscriptions/${uuid}/cancel`,
15
15
  GET_PRODUCTS: (uuid) => `products/${uuid}`,
16
+ CANCEL_PRODUCT: (uuid) => `products/${uuid}/cancel`,
16
17
  GET_PAYMENTS: (uuid) => `payments/${uuid}`,
17
18
  GET_COUNT_NOTIFICATION: 'broadcast/count',
18
19
  SEND_NOTIFICATION: 'broadcast',
@@ -61,6 +61,7 @@ exports.REST_API = {
61
61
  GET_SUBSCRIPTIONS: (uuid) => `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.GET_SUBSCRIPTIONS(uuid)}`,
62
62
  CANCEL_SUBSCRIPTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.CANCEL_SUBSCRIPTION(uuid)}`,
63
63
  GET_PRODUCTS: (uuid) => `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.GET_PRODUCTS(uuid)}`,
64
+ CANCEL_PRODUCT: (uuid) => `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.CANCEL_PRODUCT(uuid)}`,
64
65
  GET_COUNT_NOTIFICATION: `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.GET_COUNT_NOTIFICATION}`,
65
66
  SEND_NOTIFICATION: `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.SEND_NOTIFICATION}`,
66
67
  DELETE_ACCOUNT: `${exports.ROOT}/${CONTROLLERS.USER_CONTROLLER}/${CONTROLLERS.USER_ROUTES.DELETE_ACCOUNT}`,
@@ -674,7 +675,6 @@ exports.REST_API = {
674
675
  CREATE: `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.CREATE}`,
675
676
  UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.UPDATE(uuid)}`,
676
677
  DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.DELETE(uuid)}`,
677
- ARCHIVE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.ARCHIVE(uuid)}`,
678
678
  GET_MY_LIKE: `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.GET_MY_LIKE}`,
679
679
  GET_MY_FAVORITE: `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.GET_MY_FAVORITE}`,
680
680
  LIKE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.LIKE(uuid)}`,
@@ -2,8 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetUserStatisticsByMonthCommand = void 0;
4
4
  const zod_1 = require("zod");
5
+ const constants_1 = require("../../constants");
5
6
  var GetUserStatisticsByMonthCommand;
6
7
  (function (GetUserStatisticsByMonthCommand) {
8
+ GetUserStatisticsByMonthCommand.RequestSchema = zod_1.z.object({
9
+ origin: zod_1.z.nativeEnum(constants_1.JOB_REQUEST_ORIGIN).default(constants_1.JOB_REQUEST_ORIGIN.API).optional(),
10
+ });
7
11
  GetUserStatisticsByMonthCommand.UserStatisticsByMonthResponseSchema = zod_1.z.object({
8
12
  month: zod_1.z.string(),
9
13
  total_texts: zod_1.z.number(),
@@ -13,6 +13,7 @@ var GetUserStatisticsOverviewCommand;
13
13
  message: 'to must be a valid date string',
14
14
  }),
15
15
  groupBy: zod_1.z.nativeEnum(constants_1.GROUP_BY).default(constants_1.GROUP_BY.DAY),
16
+ origin: zod_1.z.nativeEnum(constants_1.JOB_REQUEST_ORIGIN).default(constants_1.JOB_REQUEST_ORIGIN.API).optional(),
16
17
  });
17
18
  GetUserStatisticsOverviewCommand.UserStatisticsOverviewResponseSchema = zod_1.z.object({
18
19
  startDate: zod_1.z.string(),
@@ -8,7 +8,6 @@ var GetChatsConfigCommand;
8
8
  data: zod_1.z.object({
9
9
  maxFileAttachments: zod_1.z.number(),
10
10
  imageAttachmentCost: zod_1.z.number(),
11
- fileSearchAttachmentCost: zod_1.z.number(),
12
11
  imagePollingInterval: zod_1.z.number(),
13
12
  isWebSearchAvailable: zod_1.z.boolean(),
14
13
  isAttachmentAvailable: zod_1.z.boolean(),
@@ -11,7 +11,7 @@ var CreateCommunityPostCommand;
11
11
  caption: zod_1.z.string().max(500).nullable().optional(),
12
12
  toolJobId: zod_1.z.string().uuid(),
13
13
  toolType: zod_1.z.nativeEnum(constants_1.COMMUNITY_TOOL_TYPE),
14
- trackIndex: zod_1.z.number().optional(),
14
+ trackId: zod_1.z.string().uuid().optional(),
15
15
  });
16
16
  CreateCommunityPostCommand.ResponseSchema = zod_1.z.object({
17
17
  data: models_1.ResponseCommunityPostSchema,
@@ -8,7 +8,7 @@ var CreateTextMessageCommand;
8
8
  (function (CreateTextMessageCommand) {
9
9
  CreateTextMessageCommand.RequestSchema = zod_1.z.object({
10
10
  text: zod_1.z.string(),
11
- files: zod_1.z.array(models_1.FileAttachmentSchema).optional().default([]),
11
+ files: zod_1.z.array(zod_1.z.string().uuid()).optional().default([]),
12
12
  features: zod_1.z.array(zod_1.z.nativeEnum(constants_1.AI_MODEL_FEATURE)).optional().default([]),
13
13
  });
14
14
  CreateTextMessageCommand.RequestParamSchema = models_1.ChatSchema.pick({
@@ -7,6 +7,7 @@ var UpdateWriterDocumentOutlineCommand;
7
7
  (function (UpdateWriterDocumentOutlineCommand) {
8
8
  UpdateWriterDocumentOutlineCommand.RequestBodySchema = zod_1.z.object({
9
9
  data: models_1.WriterDocumentOutlineSchema,
10
+ titlePage: models_1.WriterDocumentTitlePageSchema.optional().nullable(),
10
11
  });
11
12
  UpdateWriterDocumentOutlineCommand.RequestParamsSchema = zod_1.z.object({
12
13
  uuid: zod_1.z.string().uuid(),
@@ -0,0 +1,21 @@
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.CancelUserProductCommand = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ var CancelUserProductCommand;
9
+ (function (CancelUserProductCommand) {
10
+ CancelUserProductCommand.RequestParamSchema = zod_1.default.object({
11
+ uuid: zod_1.default.string().uuid(),
12
+ });
13
+ CancelUserProductCommand.RequestSchema = zod_1.default.object({
14
+ userToProductId: zod_1.default.string().uuid(),
15
+ });
16
+ CancelUserProductCommand.ResponseSchema = zod_1.default.object({
17
+ data: zod_1.default.object({
18
+ isCancelled: zod_1.default.boolean(),
19
+ }),
20
+ });
21
+ })(CancelUserProductCommand || (exports.CancelUserProductCommand = CancelUserProductCommand = {}));
@@ -27,3 +27,4 @@ __exportStar(require("./delete-account.command"), exports);
27
27
  __exportStar(require("./get-aggregated-user-data.command"), exports);
28
28
  __exportStar(require("./get-user-payments.command"), exports);
29
29
  __exportStar(require("./cancel-user-subscription.command"), exports);
30
+ __exportStar(require("./cancel-user-product.command"), exports);
@@ -2637,129 +2637,49 @@ exports.ERRORS = {
2637
2637
  message: 'Произошла ошибка при получении пользователя',
2638
2638
  httpCode: 500,
2639
2639
  },
2640
- FILE_CONTENT_EXCEEDS_CONTEXT_LIMIT: {
2641
- code: 'A538',
2642
- message: 'Размер файла превышает лимит контекста модели',
2643
- httpCode: 400,
2644
- },
2645
2640
  IMAGE_GENERATION_MODEL_FIND_ERROR: {
2646
- code: 'A539',
2641
+ code: 'A538',
2647
2642
  message: 'Произошла ошибка при получении модели для генерации изображений',
2648
2643
  httpCode: 500,
2649
2644
  },
2650
- COMMUNITY_POST_TRACK_INDEX_REQUIRED: {
2651
- code: 'A540',
2652
- message: 'Индекс трека обязателен для музыкального поста',
2653
- httpCode: 400,
2654
- },
2655
- COMMUNITY_POST_TRACK_INDEX_OUT_OF_RANGE: {
2656
- code: 'A541',
2657
- message: 'Индекс трека выходит за пределы допустимого диапазона',
2645
+ COMMUNITY_POST_TRACK_ID_REQUIRED: {
2646
+ code: 'A539',
2647
+ message: 'ID трека обязателен для музыкального поста',
2658
2648
  httpCode: 400,
2659
2649
  },
2660
- TOKEN_RESERVATION_CREATE_ERROR: {
2661
- code: 'A542',
2662
- message: 'Произошла ошибка при создании записи об удержании токенов',
2663
- httpCode: 500,
2664
- },
2665
- TOKEN_RESERVATION_NOT_FOUND: {
2666
- code: 'A543',
2667
- message: 'Запись об удержании токенов не найдена',
2650
+ COMMUNITY_POST_TRACK_NOT_FOUND: {
2651
+ code: 'A540',
2652
+ message: 'Трек не найден',
2668
2653
  httpCode: 404,
2669
2654
  },
2670
- TOKEN_RESERVATION_COMMIT_ERROR: {
2671
- code: 'A544',
2672
- message: 'Произошла ошибка при подтверждении записи об удержании токенов',
2673
- httpCode: 500,
2674
- },
2675
- TOKEN_RESERVATION_RELEASE_ERROR: {
2676
- code: 'A545',
2677
- message: 'Произошла ошибка при освобождении записи об удержании токенов',
2678
- httpCode: 500,
2679
- },
2680
- TOKEN_RESERVATION_INSUFFICIENT_BALANCE: {
2681
- code: 'A546',
2682
- message: 'Недостаточно токенов для выполнения операции',
2683
- httpCode: 400,
2684
- },
2685
- TOKEN_RESERVATION_INVALID_STATUS: {
2686
- code: 'A547',
2687
- message: 'Запись об удержании токенов находится в недопустимом статусе',
2688
- httpCode: 400,
2689
- },
2690
- MUSIC_PRICE_ERROR: {
2691
- code: 'A548',
2692
- message: 'Произошла ошибка при получении цены для генерации музыки',
2693
- httpCode: 500,
2694
- },
2695
- IMAGE_GENERATION_PRICE_ERROR: {
2696
- code: 'A549',
2697
- message: 'Произошла ошибка при получении цены для генерации изображения',
2698
- httpCode: 500,
2699
- },
2700
- IMAGE_EDITOR_PRICE_ERROR: {
2701
- code: 'A550',
2702
- message: 'Произошла ошибка при получении цены для редактирования изображения',
2703
- httpCode: 500,
2704
- },
2705
- STT_PRICE_ERROR: {
2706
- code: 'A551',
2707
- message: 'Произошла ошибка при получении цены для транскрибации аудио',
2708
- httpCode: 500,
2709
- },
2710
- TTS_PRICE_ERROR: {
2711
- code: 'A552',
2712
- message: 'Произошла ошибка при получении цены для синтеза речи',
2713
- httpCode: 500,
2714
- },
2715
- VIDEO_PRICE_ERROR: {
2716
- code: 'A553',
2717
- message: 'Произошла ошибка при получении цены для генерации видео',
2718
- httpCode: 500,
2719
- },
2720
- VIDEO_EDITOR_PRICE_ERROR: {
2721
- code: 'A554',
2722
- message: 'Произошла ошибка при получении цены для редактирования видео',
2723
- httpCode: 500,
2724
- },
2725
- PARAPHRASE_PRICE_ERROR: {
2726
- code: 'A555',
2727
- message: 'Произошла ошибка при получении цены для парафразирования',
2728
- httpCode: 500,
2729
- },
2730
- PRESENTATION_SLIDES_GENERATION_PRICE_ERROR: {
2731
- code: 'A556',
2732
- message: 'Произошла ошибка при получении цены для генерации слайдов презентации',
2733
- httpCode: 500,
2734
- },
2735
- WRITER_CONTENT_GENERATION_PRICE_ERROR: {
2736
- code: 'A557',
2737
- message: 'Произошла ошибка при получении цены для генерации текста',
2738
- httpCode: 500,
2739
- },
2740
2655
  COMMUNITY_POST_EXISTANCE_CHECK_ERROR: {
2741
- code: 'A558',
2656
+ code: 'A561',
2742
2657
  message: 'Произошла ошибка при проверке существования поста.',
2743
2658
  httpCode: 500,
2744
2659
  },
2745
2660
  COMMUNITY_POST_ALREADY_EXISTS_ERROR: {
2746
- code: 'A559',
2661
+ code: 'A562',
2747
2662
  message: 'Данная работа уже опубликована в сообществе.',
2748
2663
  httpCode: 400,
2749
2664
  },
2750
2665
  MARK_JOB_PUBLISHED_STATUS_ERROR: {
2751
- code: 'A560',
2666
+ code: 'A563',
2752
2667
  message: 'Произошла ошибка при отметке работы как опубликованной.',
2753
2668
  httpCode: 500,
2754
2669
  },
2755
2670
  TASK_COMMUNITY_POST_NOT_PUBLISHED: {
2756
- code: 'A561',
2671
+ code: 'A564',
2757
2672
  message: 'Для получения награды опубликуйте работу в сообществе',
2758
2673
  httpCode: 400,
2759
2674
  },
2760
- TOKEN_RESERVATION_EXPIRED: {
2761
- code: 'A562',
2762
- message: 'Запись об удержании токенов устарела',
2675
+ PRODUCT_OWNERSHIP_ERROR: {
2676
+ code: 'A565',
2677
+ message: 'Пользователь не является владельцем продукта',
2678
+ httpCode: 400,
2679
+ },
2680
+ PRODUCT_CANCEL_ERROR: {
2681
+ code: 'A566',
2682
+ message: 'Нельзя отменить пакет, которым юзер начал пользоваться',
2763
2683
  httpCode: 400,
2764
2684
  },
2765
2685
  };
@@ -15,4 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./file-type.enum"), exports);
18
- __exportStar(require("./file-usage-mode.enum"), exports);
@@ -60,4 +60,3 @@ __exportStar(require("./tool-music"), exports);
60
60
  __exportStar(require("./community"), exports);
61
61
  __exportStar(require("./user-profile"), exports);
62
62
  __exportStar(require("./model"), exports);
63
- __exportStar(require("./token-reservation"), exports);
@@ -6,7 +6,4 @@ var TOOL_TYPE;
6
6
  TOOL_TYPE["PARAPHRASE"] = "paraphrase";
7
7
  TOOL_TYPE["TTS"] = "tts";
8
8
  TOOL_TYPE["STT"] = "stt";
9
- TOOL_TYPE["IMAGE_GENERATION"] = "image_generation";
10
- TOOL_TYPE["IMAGE_EDITOR"] = "image_editor";
11
- TOOL_TYPE["MUSIC"] = "music";
12
9
  })(TOOL_TYPE || (exports.TOOL_TYPE = TOOL_TYPE = {}));
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommunityPostMediaDataSchema = exports.MusicCommunityMediaSchema = exports.VideoEditorCommunityMediaSchema = exports.VideoCommunityMediaSchema = exports.ImageEditorCommunityMediaSchema = exports.ImageCommunityMediaSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../../constants");
6
- const music_track_schema_1 = require("../tools/music/music-track.schema");
7
6
  const video_job_schema_1 = require("../tools/video/video-job.schema");
8
7
  const file_schema_1 = require("../file.schema");
9
8
  const tools_1 = require("../tools");
@@ -23,6 +22,7 @@ exports.VideoCommunityMediaSchema = zod_1.z.object({
23
22
  title: zod_1.z.string(),
24
23
  prompt: zod_1.z.string(),
25
24
  videoUrl: zod_1.z.string().nullable(),
25
+ previewUrl: zod_1.z.string().nullable(),
26
26
  params: video_job_schema_1.VideoJobParamsSchema,
27
27
  });
28
28
  exports.VideoEditorCommunityMediaSchema = zod_1.z.object({
@@ -36,12 +36,13 @@ exports.MusicCommunityMediaSchema = zod_1.z.object({
36
36
  type: zod_1.z.literal(constants_1.COMMUNITY_POST_TYPE.MUSIC),
37
37
  params: tools_1.MusicJobParamsSchema,
38
38
  prompt: zod_1.z.string(),
39
- track: music_track_schema_1.MusicTrackSchema.pick({
40
- audioUrl: true,
41
- coverUrl: true,
42
- duration: true,
43
- title: true,
44
- tags: true,
39
+ track: zod_1.z.object({
40
+ uuid: zod_1.z.string().optional(), // Опционально для backward compatibility
41
+ audioUrl: zod_1.z.string(),
42
+ coverUrl: zod_1.z.string(),
43
+ duration: zod_1.z.number(),
44
+ title: zod_1.z.string(),
45
+ tags: zod_1.z.string(),
45
46
  }),
46
47
  });
47
48
  exports.CommunityPostMediaDataSchema = zod_1.z.discriminatedUnion('type', [
@@ -28,7 +28,6 @@ __exportStar(require("./course.schema"), exports);
28
28
  __exportStar(require("./date.schema"), exports);
29
29
  __exportStar(require("./feedback.schema"), exports);
30
30
  __exportStar(require("./file.schema"), exports);
31
- __exportStar(require("./file-attachment.schema"), exports);
32
31
  __exportStar(require("./key-value.schema"), exports);
33
32
  __exportStar(require("./form-submission.schema"), exports);
34
33
  __exportStar(require("./icon-variants.schema"), exports);
@@ -30,5 +30,4 @@ exports.ImageEditorModelSchema = zod_1.z.object({
30
30
  pricingRules: exports.ImageEditorModelPricingRulesSchema,
31
31
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
32
32
  canUse: zod_1.z.boolean(),
33
- status: zod_1.z.string(),
34
33
  });
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImageGenerationModelSchema = exports.ImageModelPricingRulesSchema = exports.ImageModelPricingRuleConditionSchema = exports.ImageGenerationModelParamsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const constants_1 = require("../../../constants");
6
5
  const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
6
+ const constants_1 = require("../../../constants");
7
7
  exports.ImageGenerationModelParamsSchema = zod_1.z.object({
8
8
  aspectRatio: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
9
9
  width: zod_1.z.number(),
@@ -36,6 +36,4 @@ exports.MusicJobSchema = tool_job_schema_1.ToolJobSchema.extend({
36
36
  params: exports.MusicJobParamsSchema,
37
37
  externalId: zod_1.z.string().nullable(),
38
38
  modelId: zod_1.z.string(),
39
- isPublished: zod_1.z.boolean(),
40
- postId: zod_1.z.string().nullable(),
41
39
  });
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MusicModelSchema = exports.MusicModelParamsSchema = void 0;
3
+ exports.MusicModelSchema = exports.MusicModelPricingRulesSchema = exports.MusicModelPricingRuleConditionSchema = exports.MusicModelParamsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const constants_1 = require("../../../constants");
6
5
  const icon_variants_schema_1 = require("../../icon-variants.schema");
7
6
  const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
7
+ const constants_1 = require("../../../constants");
8
8
  exports.MusicModelParamsSchema = zod_1.z.object({
9
9
  vocalGender: zod_1.z.object({
10
10
  options: zod_1.z.array(zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER)),
@@ -17,6 +17,13 @@ exports.MusicModelParamsSchema = zod_1.z.object({
17
17
  })),
18
18
  }),
19
19
  });
20
+ exports.MusicModelPricingRuleConditionSchema = zod_1.z.object({
21
+ withoutSub: zod_1.z.boolean().optional(),
22
+ });
23
+ exports.MusicModelPricingRulesSchema = zod_1.z.array(zod_1.z.object({
24
+ condition: exports.MusicModelPricingRuleConditionSchema,
25
+ value: zod_1.z.number(),
26
+ }));
20
27
  exports.MusicModelSchema = zod_1.z.object({
21
28
  uuid: zod_1.z.string(),
22
29
  title: zod_1.z.string(),
@@ -27,7 +34,7 @@ exports.MusicModelSchema = zod_1.z.object({
27
34
  maxPromptLength: zod_1.z.number(),
28
35
  maxLyricsLength: zod_1.z.number(),
29
36
  params: exports.MusicModelParamsSchema,
37
+ pricingRules: exports.MusicModelPricingRulesSchema,
30
38
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
31
39
  canUse: zod_1.z.boolean(),
32
- status: zod_1.z.string(),
33
40
  });
@@ -11,6 +11,8 @@ exports.MusicTrackSchema = zod_1.z.object({
11
11
  prompt: zod_1.z.string().nullable(),
12
12
  tags: zod_1.z.string(),
13
13
  duration: zod_1.z.number(),
14
+ isPublished: zod_1.z.boolean(),
15
+ postId: zod_1.z.string().nullable(),
14
16
  genJobId: zod_1.z.string().nullable().optional(),
15
17
  editorJobId: zod_1.z.string().nullable().optional(),
16
18
  createdAt: zod_1.z.date(),
@@ -15,5 +15,4 @@ exports.STTModelSchema = zod_1.z.object({
15
15
  maxSizeMB: zod_1.z.number(),
16
16
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
17
17
  canUse: zod_1.z.boolean(),
18
- status: zod_1.z.string(),
19
18
  });
@@ -49,5 +49,4 @@ exports.TTSModelSchema = zod_1.z.object({
49
49
  voices: zod_1.z.array(exports.TTSVoiceSchema),
50
50
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
51
51
  canUse: zod_1.z.boolean(),
52
- status: zod_1.z.string(),
53
52
  });
@@ -22,6 +22,12 @@ exports.VideoJobSchema = tool_job_schema_1.ToolJobSchema.extend({
22
22
  url: zod_1.z.string(),
23
23
  })
24
24
  .nullable(),
25
+ preview: zod_1.z
26
+ .object({
27
+ uuid: zod_1.z.string(),
28
+ url: zod_1.z.string(),
29
+ })
30
+ .nullable(),
25
31
  params: exports.VideoJobParamsSchema,
26
32
  modelId: zod_1.z.string(),
27
33
  isPublished: zod_1.z.boolean(),
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VideoModelSchema = exports.VideoModelPricingRulesSchema = exports.VideoModelPricingRuleConditionSchema = exports.VideoGenerationRequestParamsSchema = exports.VideoModelParamsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const constants_1 = require("../../../constants");
6
- const video_generation_model_limitation_enum_1 = require("../../../constants/tool-video/enums/video-generation-model-limitation.enum");
7
5
  const icon_variants_schema_1 = require("../../icon-variants.schema");
8
6
  const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
7
+ const constants_1 = require("../../../constants");
8
+ const video_generation_model_limitation_enum_1 = require("../../../constants/tool-video/enums/video-generation-model-limitation.enum");
9
9
  exports.VideoModelParamsSchema = zod_1.z.object({
10
10
  imageAttachment: zod_1.z.object({
11
11
  supported: zod_1.z.boolean(),
@@ -25,6 +25,16 @@ exports.VideoModelParamsSchema = zod_1.z.object({
25
25
  options: zod_1.z.array(zod_1.z.string()),
26
26
  })
27
27
  .optional(),
28
+ sound: zod_1.z
29
+ .object({
30
+ options: zod_1.z.array(zod_1.z.boolean()),
31
+ })
32
+ .optional(),
33
+ multiShots: zod_1.z
34
+ .object({
35
+ options: zod_1.z.array(zod_1.z.boolean()),
36
+ })
37
+ .optional(),
28
38
  });
29
39
  exports.VideoGenerationRequestParamsSchema = zod_1.z.object({
30
40
  imageUrls: zod_1.z.string().array().optional(),
@@ -32,10 +42,13 @@ exports.VideoGenerationRequestParamsSchema = zod_1.z.object({
32
42
  aspectRatio: zod_1.z.string().optional(),
33
43
  quality: zod_1.z.string().optional(),
34
44
  resolution: zod_1.z.string().optional(),
45
+ sound: zod_1.z.boolean().optional(),
46
+ multiShots: zod_1.z.boolean().optional(),
35
47
  });
36
48
  exports.VideoModelPricingRuleConditionSchema = zod_1.z.object({
37
49
  aspectRatio: zod_1.z.string().optional(),
38
50
  resolution: zod_1.z.string().optional(),
51
+ sound: zod_1.z.boolean().optional(),
39
52
  });
40
53
  exports.VideoModelPricingRulesSchema = zod_1.z.array(zod_1.z.object({
41
54
  type: zod_1.z.nativeEnum(constants_1.VIDEO_PRICING_RULE_TYPE),
@@ -56,5 +69,4 @@ exports.VideoModelSchema = zod_1.z.object({
56
69
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
57
70
  limitations: zod_1.z.array(zod_1.z.nativeEnum(video_generation_model_limitation_enum_1.VIDEO_GENERATION_MODEL_LIMITATION)),
58
71
  canUse: zod_1.z.boolean(),
59
- status: zod_1.z.string(),
60
72
  });
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VideoEditorModelSchema = exports.VideoEditorModelParamsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const video_editor_model_limitation_enum_1 = require("../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum");
6
5
  const icon_variants_schema_1 = require("../../icon-variants.schema");
7
6
  const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
7
+ const video_editor_model_limitation_enum_1 = require("../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum");
8
8
  exports.VideoEditorModelParamsSchema = zod_1.z.object({
9
9
  supportedFormats: zod_1.z.array(zod_1.z.string()),
10
10
  });
@@ -25,5 +25,4 @@ exports.VideoEditorModelSchema = zod_1.z.object({
25
25
  unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
26
26
  limitations: zod_1.z.array(zod_1.z.nativeEnum(video_editor_model_limitation_enum_1.VIDEO_EDITOR_MODEL_LIMITATION)),
27
27
  canUse: zod_1.z.boolean(),
28
- status: zod_1.z.string(),
29
28
  });
@@ -19,3 +19,4 @@ __exportStar(require("./writer-ai-action.schema"), exports);
19
19
  __exportStar(require("./writer-document-outline.schema"), exports);
20
20
  __exportStar(require("./writer-document.schema"), exports);
21
21
  __exportStar(require("./writer-document-type.schema"), exports);
22
+ __exportStar(require("./writer-document-title-page.schema"), exports);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WriterDocumentTitlePageSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.WriterDocumentTitlePageSchema = zod_1.z
6
+ .object({
7
+ fullName: zod_1.z.string().min(1).max(200).optional().nullable(),
8
+ city: zod_1.z.string().min(1).max(200).optional().nullable(),
9
+ institution: zod_1.z.string().min(1).max(300).optional().nullable(),
10
+ faculty: zod_1.z.string().min(1).max(200).optional().nullable(),
11
+ specialty: zod_1.z.string().min(1).max(200).optional().nullable(),
12
+ group: zod_1.z.string().min(1).max(100).optional().nullable(),
13
+ subject: zod_1.z.string().min(1).max(200).optional().nullable(),
14
+ })
15
+ .nullable();
@@ -4,6 +4,7 @@ exports.WriterDocumentSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const writer_document_outline_schema_1 = require("./writer-document-outline.schema");
6
6
  const constants_1 = require("../../../constants");
7
+ const writer_document_title_page_schema_1 = require("./writer-document-title-page.schema");
7
8
  exports.WriterDocumentSchema = zod_1.z.object({
8
9
  uuid: zod_1.z.string().uuid(),
9
10
  prompt: zod_1.z.string(),
@@ -11,6 +12,7 @@ exports.WriterDocumentSchema = zod_1.z.object({
11
12
  typeId: zod_1.z.string(),
12
13
  stage: zod_1.z.nativeEnum(constants_1.WRITER_DOCUMENT_STAGE),
13
14
  outline: writer_document_outline_schema_1.WriterDocumentOutlineSchema,
15
+ titlePage: writer_document_title_page_schema_1.WriterDocumentTitlePageSchema,
14
16
  sourceMd: zod_1.z.string().nullable(),
15
17
  finalMd: zod_1.z.string().nullable(),
16
18
  userId: zod_1.z.string().nullable(),
@@ -1,6 +1,13 @@
1
1
  import { z } from 'zod';
2
+ import { JOB_REQUEST_ORIGIN } from '../../constants';
2
3
 
3
4
  export namespace GetUserStatisticsByMonthCommand {
5
+ export const RequestSchema = z.object({
6
+ origin: z.nativeEnum(JOB_REQUEST_ORIGIN).default(JOB_REQUEST_ORIGIN.API).optional(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
4
11
  export const UserStatisticsByMonthResponseSchema = z.object({
5
12
  month: z.string(),
6
13
  total_texts: z.number(),
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { GROUP_BY } from '../../constants';
2
+ import { GROUP_BY, JOB_REQUEST_ORIGIN } from '../../constants';
3
3
 
4
4
  export namespace GetUserStatisticsOverviewCommand {
5
5
  export const RequestSchema = z.object({
@@ -10,6 +10,7 @@ export namespace GetUserStatisticsOverviewCommand {
10
10
  message: 'to must be a valid date string',
11
11
  }),
12
12
  groupBy: z.nativeEnum(GROUP_BY).default(GROUP_BY.DAY),
13
+ origin: z.nativeEnum(JOB_REQUEST_ORIGIN).default(JOB_REQUEST_ORIGIN.API).optional(),
13
14
  });
14
15
 
15
16
  export type Request = z.infer<typeof RequestSchema>;
@@ -5,7 +5,6 @@ export namespace GetChatsConfigCommand {
5
5
  data: z.object({
6
6
  maxFileAttachments: z.number(),
7
7
  imageAttachmentCost: z.number(),
8
- fileSearchAttachmentCost: z.number(),
9
8
  imagePollingInterval: z.number(),
10
9
  isWebSearchAvailable: z.boolean(),
11
10
  isAttachmentAvailable: z.boolean(),