@purpleschool/gptbot 0.8.88 → 0.8.90-stage-2
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/commands/chat/get-chats-config.command.js +1 -0
- package/build/commands/message/create-text-message.command.js +1 -1
- package/build/constants/cloud-payments/index.js +1 -1
- package/build/constants/errors/errors.js +97 -7
- package/build/constants/file/enums/file-usage-mode.enum.js +8 -0
- package/build/constants/file/enums/index.js +1 -0
- package/build/constants/index.js +1 -0
- package/build/constants/token-reservation/enums/index.js +17 -0
- package/build/constants/token-reservation/enums/token-reservation-status.enum.js +10 -0
- package/build/constants/token-reservation/index.js +17 -0
- package/build/constants/tool/enums/tool-type.enum.js +3 -0
- package/build/helpers/image-editor/calculate-image-editor-price.helper.js +3 -3
- package/build/helpers/image-generation/calculate-image-generation-price.helper.js +4 -4
- package/build/helpers/index.js +1 -0
- package/build/helpers/music/calculate-music-price.helper.js +13 -0
- package/build/helpers/music/index.js +17 -0
- package/build/models/file-attachment.schema.js +18 -0
- package/build/models/index.js +1 -0
- package/build/models/tools/image-editor/image-editor-model.schema.js +1 -0
- package/build/models/tools/image-generation/image-generation-model.schema.js +1 -1
- package/build/models/tools/music/music-model.schema.js +2 -1
- package/build/models/tools/music/music-track.schema.js +1 -0
- package/build/models/tools/stt/stt-model.schema.js +1 -0
- package/build/models/tools/tts/tts-model.schema.js +1 -0
- package/build/models/tools/video/video-model.schema.js +3 -2
- package/build/models/tools/video-editor/video-editor-model.schema.js +2 -1
- package/commands/chat/get-chats-config.command.ts +1 -0
- package/commands/message/create-text-message.command.ts +2 -2
- package/constants/cloud-payments/index.ts +1 -1
- package/constants/errors/errors.ts +97 -7
- package/constants/file/enums/file-usage-mode.enum.ts +4 -0
- package/constants/file/enums/index.ts +1 -0
- package/constants/index.ts +1 -0
- package/constants/token-reservation/enums/index.ts +1 -0
- package/constants/token-reservation/enums/token-reservation-status.enum.ts +6 -0
- package/constants/token-reservation/index.ts +1 -0
- package/constants/tool/enums/tool-type.enum.ts +3 -0
- package/helpers/image-editor/calculate-image-editor-price.helper.ts +3 -3
- package/helpers/image-generation/calculate-image-generation-price.helper.ts +4 -4
- package/helpers/index.ts +1 -0
- package/helpers/music/calculate-music-price.helper.ts +23 -0
- package/helpers/music/index.ts +1 -0
- package/models/file-attachment.schema.ts +24 -0
- package/models/index.ts +1 -0
- package/models/tools/image-editor/image-editor-model.schema.ts +1 -0
- package/models/tools/image-generation/image-generation-model.schema.ts +1 -1
- package/models/tools/music/music-model.schema.ts +2 -1
- package/models/tools/music/music-track.schema.ts +1 -0
- package/models/tools/stt/stt-model.schema.ts +1 -0
- package/models/tools/tts/tts-model.schema.ts +1 -0
- package/models/tools/video/video-model.schema.ts +3 -2
- package/models/tools/video-editor/video-editor-model.schema.ts +2 -1
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ 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(),
|
|
11
12
|
imagePollingInterval: zod_1.z.number(),
|
|
12
13
|
isWebSearchAvailable: zod_1.z.boolean(),
|
|
13
14
|
isAttachmentAvailable: zod_1.z.boolean(),
|
|
@@ -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(
|
|
11
|
+
files: zod_1.z.array(models_1.FileAttachmentSchema).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({
|
|
@@ -8,6 +8,6 @@ exports.FORMATS = {
|
|
|
8
8
|
};
|
|
9
9
|
exports.CLOUD_PAYMENTS_CANCEL = 'https://api.cloudpayments.ru/subscriptions/cancel';
|
|
10
10
|
exports.CLOUD_PAYMENTS_UPDATE = 'https://api.cloudpayments.ru/subscriptions/update';
|
|
11
|
-
exports.CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get
|
|
11
|
+
exports.CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get';
|
|
12
12
|
exports.CLOUD_PAYMENTS_CREATE = 'https://api.cloudpayments.ru/subscriptions/create';
|
|
13
13
|
exports.CLOUD_PAYMENTS_REFUND = 'https://api.cloudpayments.ru/payments/refund';
|
|
@@ -2637,8 +2637,13 @@ exports.ERRORS = {
|
|
|
2637
2637
|
message: 'Произошла ошибка при получении пользователя',
|
|
2638
2638
|
httpCode: 500,
|
|
2639
2639
|
},
|
|
2640
|
-
|
|
2640
|
+
FILE_CONTENT_EXCEEDS_CONTEXT_LIMIT: {
|
|
2641
2641
|
code: 'A538',
|
|
2642
|
+
message: 'Размер файла превышает лимит контекста модели',
|
|
2643
|
+
httpCode: 400,
|
|
2644
|
+
},
|
|
2645
|
+
IMAGE_GENERATION_MODEL_FIND_ERROR: {
|
|
2646
|
+
code: 'A539',
|
|
2642
2647
|
message: 'Произошла ошибка при получении модели для генерации изображений',
|
|
2643
2648
|
httpCode: 500,
|
|
2644
2649
|
},
|
|
@@ -2652,33 +2657,118 @@ exports.ERRORS = {
|
|
|
2652
2657
|
message: 'Трек не найден',
|
|
2653
2658
|
httpCode: 404,
|
|
2654
2659
|
},
|
|
2660
|
+
TOKEN_RESERVATION_CREATE_ERROR: {
|
|
2661
|
+
code: 'A542',
|
|
2662
|
+
message: 'Произошла ошибка при создании записи об удержании токенов',
|
|
2663
|
+
httpCode: 500,
|
|
2664
|
+
},
|
|
2665
|
+
TOKEN_RESERVATION_NOT_FOUND: {
|
|
2666
|
+
code: 'A543',
|
|
2667
|
+
message: 'Запись об удержании токенов не найдена',
|
|
2668
|
+
httpCode: 404,
|
|
2669
|
+
},
|
|
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
|
+
},
|
|
2655
2740
|
COMMUNITY_POST_EXISTANCE_CHECK_ERROR: {
|
|
2656
|
-
code: '
|
|
2741
|
+
code: 'A558',
|
|
2657
2742
|
message: 'Произошла ошибка при проверке существования поста.',
|
|
2658
2743
|
httpCode: 500,
|
|
2659
2744
|
},
|
|
2660
2745
|
COMMUNITY_POST_ALREADY_EXISTS_ERROR: {
|
|
2661
|
-
code: '
|
|
2746
|
+
code: 'A559',
|
|
2662
2747
|
message: 'Данная работа уже опубликована в сообществе.',
|
|
2663
2748
|
httpCode: 400,
|
|
2664
2749
|
},
|
|
2665
2750
|
MARK_JOB_PUBLISHED_STATUS_ERROR: {
|
|
2666
|
-
code: '
|
|
2751
|
+
code: 'A560',
|
|
2667
2752
|
message: 'Произошла ошибка при отметке работы как опубликованной.',
|
|
2668
2753
|
httpCode: 500,
|
|
2669
2754
|
},
|
|
2670
2755
|
TASK_COMMUNITY_POST_NOT_PUBLISHED: {
|
|
2671
|
-
code: '
|
|
2756
|
+
code: 'A561',
|
|
2672
2757
|
message: 'Для получения награды опубликуйте работу в сообществе',
|
|
2673
2758
|
httpCode: 400,
|
|
2674
2759
|
},
|
|
2760
|
+
TOKEN_RESERVATION_EXPIRED: {
|
|
2761
|
+
code: 'A562',
|
|
2762
|
+
message: 'Запись об удержании токенов устарела',
|
|
2763
|
+
httpCode: 500,
|
|
2764
|
+
},
|
|
2675
2765
|
PRODUCT_OWNERSHIP_ERROR: {
|
|
2676
|
-
code: '
|
|
2766
|
+
code: 'A563',
|
|
2677
2767
|
message: 'Пользователь не является владельцем продукта',
|
|
2678
2768
|
httpCode: 400,
|
|
2679
2769
|
},
|
|
2680
2770
|
PRODUCT_CANCEL_ERROR: {
|
|
2681
|
-
code: '
|
|
2771
|
+
code: 'A564',
|
|
2682
2772
|
message: 'Нельзя отменить пакет, которым юзер начал пользоваться',
|
|
2683
2773
|
httpCode: 400,
|
|
2684
2774
|
},
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FILE_USAGE_MODE = void 0;
|
|
4
|
+
var FILE_USAGE_MODE;
|
|
5
|
+
(function (FILE_USAGE_MODE) {
|
|
6
|
+
FILE_USAGE_MODE["SEARCH"] = "search";
|
|
7
|
+
FILE_USAGE_MODE["CONTEXT"] = "context";
|
|
8
|
+
})(FILE_USAGE_MODE || (exports.FILE_USAGE_MODE = FILE_USAGE_MODE = {}));
|
package/build/constants/index.js
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
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("./token-reservation-status.enum"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOKEN_RESERVATION_STATUS = void 0;
|
|
4
|
+
var TOKEN_RESERVATION_STATUS;
|
|
5
|
+
(function (TOKEN_RESERVATION_STATUS) {
|
|
6
|
+
TOKEN_RESERVATION_STATUS["PENDING"] = "pending";
|
|
7
|
+
TOKEN_RESERVATION_STATUS["COMMITTED"] = "committed";
|
|
8
|
+
TOKEN_RESERVATION_STATUS["RELEASED"] = "released";
|
|
9
|
+
TOKEN_RESERVATION_STATUS["EXPIRED"] = "expired";
|
|
10
|
+
})(TOKEN_RESERVATION_STATUS || (exports.TOKEN_RESERVATION_STATUS = TOKEN_RESERVATION_STATUS = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./enums"), exports);
|
|
@@ -6,4 +6,7 @@ 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";
|
|
9
12
|
})(TOOL_TYPE || (exports.TOOL_TYPE = TOOL_TYPE = {}));
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateImageEditorPrice = calculateImageEditorPrice;
|
|
4
4
|
function calculateImageEditorPrice({ basePrice, userHasActiveSubscriptionOrProduct, rules, }) {
|
|
5
|
-
let
|
|
5
|
+
let price = basePrice;
|
|
6
6
|
for (const rule of rules !== null && rules !== void 0 ? rules : []) {
|
|
7
7
|
const condition = rule.condition;
|
|
8
8
|
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
9
|
-
|
|
9
|
+
price += rule.value;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
return
|
|
12
|
+
return price;
|
|
13
13
|
}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateImageGenerationPrice = calculateImageGenerationPrice;
|
|
4
4
|
function calculateImageGenerationPrice({ basePrice, params, userHasActiveSubscriptionOrProduct, rules, }) {
|
|
5
|
-
let
|
|
5
|
+
let price = basePrice;
|
|
6
6
|
for (const rule of rules !== null && rules !== void 0 ? rules : []) {
|
|
7
7
|
const condition = rule.condition;
|
|
8
8
|
if (condition.resolution && condition.resolution === params.resolution) {
|
|
9
|
-
|
|
9
|
+
price += rule.value;
|
|
10
10
|
}
|
|
11
11
|
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
12
|
-
|
|
12
|
+
price += rule.value;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
return price;
|
|
16
16
|
}
|
package/build/helpers/index.js
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateMusicPrice = calculateMusicPrice;
|
|
4
|
+
function calculateMusicPrice({ basePrice, userHasActiveSubscriptionOrProduct, rules, }) {
|
|
5
|
+
let price = basePrice;
|
|
6
|
+
for (const rule of rules !== null && rules !== void 0 ? rules : []) {
|
|
7
|
+
const condition = rule.condition;
|
|
8
|
+
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
9
|
+
price += rule.value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return price;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./calculate-music-price.helper"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileAttachmentSchema = exports.ImageFileAttachmentSchema = exports.TextFileAttachmentSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
exports.TextFileAttachmentSchema = zod_1.z.object({
|
|
7
|
+
fileId: zod_1.z.string().uuid(),
|
|
8
|
+
type: zod_1.z.enum([constants_1.FILE_TYPE.TEXT, constants_1.FILE_TYPE.DOCUMENT]),
|
|
9
|
+
usageMode: zod_1.z.nativeEnum(constants_1.FILE_USAGE_MODE),
|
|
10
|
+
});
|
|
11
|
+
exports.ImageFileAttachmentSchema = zod_1.z.object({
|
|
12
|
+
fileId: zod_1.z.string().uuid(),
|
|
13
|
+
type: zod_1.z.literal(constants_1.FILE_TYPE.IMAGE),
|
|
14
|
+
});
|
|
15
|
+
exports.FileAttachmentSchema = zod_1.z.discriminatedUnion('type', [
|
|
16
|
+
exports.TextFileAttachmentSchema,
|
|
17
|
+
exports.ImageFileAttachmentSchema,
|
|
18
|
+
]);
|
package/build/models/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __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);
|
|
31
32
|
__exportStar(require("./key-value.schema"), exports);
|
|
32
33
|
__exportStar(require("./form-submission.schema"), exports);
|
|
33
34
|
__exportStar(require("./icon-variants.schema"), exports);
|
|
@@ -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 unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
|
|
6
5
|
const constants_1 = require("../../../constants");
|
|
6
|
+
const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
|
|
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(),
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MusicModelSchema = exports.MusicModelPricingRulesSchema = exports.MusicModelPricingRuleConditionSchema = exports.MusicModelParamsSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../constants");
|
|
5
6
|
const icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
6
7
|
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)),
|
|
@@ -37,4 +37,5 @@ exports.MusicModelSchema = zod_1.z.object({
|
|
|
37
37
|
pricingRules: exports.MusicModelPricingRulesSchema,
|
|
38
38
|
unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
|
|
39
39
|
canUse: zod_1.z.boolean(),
|
|
40
|
+
status: zod_1.z.string(),
|
|
40
41
|
});
|
|
@@ -13,6 +13,7 @@ exports.MusicTrackSchema = zod_1.z.object({
|
|
|
13
13
|
duration: zod_1.z.number(),
|
|
14
14
|
isPublished: zod_1.z.boolean(),
|
|
15
15
|
postId: zod_1.z.string().nullable(),
|
|
16
|
+
waveformPeaks: zod_1.z.array(zod_1.z.number()).nullable().optional(),
|
|
16
17
|
genJobId: zod_1.z.string().nullable().optional(),
|
|
17
18
|
editorJobId: zod_1.z.string().nullable().optional(),
|
|
18
19
|
createdAt: zod_1.z.date(),
|
|
@@ -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 icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
6
|
-
const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
|
|
7
5
|
const constants_1 = require("../../../constants");
|
|
8
6
|
const video_generation_model_limitation_enum_1 = require("../../../constants/tool-video/enums/video-generation-model-limitation.enum");
|
|
7
|
+
const icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
8
|
+
const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
|
|
9
9
|
exports.VideoModelParamsSchema = zod_1.z.object({
|
|
10
10
|
imageAttachment: zod_1.z.object({
|
|
11
11
|
supported: zod_1.z.boolean(),
|
|
@@ -69,4 +69,5 @@ exports.VideoModelSchema = zod_1.z.object({
|
|
|
69
69
|
unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
|
|
70
70
|
limitations: zod_1.z.array(zod_1.z.nativeEnum(video_generation_model_limitation_enum_1.VIDEO_GENERATION_MODEL_LIMITATION)),
|
|
71
71
|
canUse: zod_1.z.boolean(),
|
|
72
|
+
status: zod_1.z.string(),
|
|
72
73
|
});
|
|
@@ -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");
|
|
5
6
|
const icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
6
7
|
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,4 +25,5 @@ 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(),
|
|
28
29
|
});
|
|
@@ -5,6 +5,7 @@ export namespace GetChatsConfigCommand {
|
|
|
5
5
|
data: z.object({
|
|
6
6
|
maxFileAttachments: z.number(),
|
|
7
7
|
imageAttachmentCost: z.number(),
|
|
8
|
+
fileSearchAttachmentCost: z.number(),
|
|
8
9
|
imagePollingInterval: z.number(),
|
|
9
10
|
isWebSearchAvailable: z.boolean(),
|
|
10
11
|
isAttachmentAvailable: z.boolean(),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AI_MODEL_FEATURE } from '../../constants';
|
|
2
|
-
import { ChatSchema, MessageSchema } from '../../models';
|
|
2
|
+
import { ChatSchema, FileAttachmentSchema, MessageSchema } from '../../models';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
export namespace CreateTextMessageCommand {
|
|
6
6
|
export const RequestSchema = z.object({
|
|
7
7
|
text: z.string(),
|
|
8
|
-
files: z.array(
|
|
8
|
+
files: z.array(FileAttachmentSchema).optional().default([]),
|
|
9
9
|
features: z.array(z.nativeEnum(AI_MODEL_FEATURE)).optional().default([]),
|
|
10
10
|
});
|
|
11
11
|
|
|
@@ -8,7 +8,7 @@ export const CLOUD_PAYMENTS_CANCEL = 'https://api.cloudpayments.ru/subscriptions
|
|
|
8
8
|
|
|
9
9
|
export const CLOUD_PAYMENTS_UPDATE = 'https://api.cloudpayments.ru/subscriptions/update';
|
|
10
10
|
|
|
11
|
-
export const CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get
|
|
11
|
+
export const CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get';
|
|
12
12
|
|
|
13
13
|
export const CLOUD_PAYMENTS_CREATE = 'https://api.cloudpayments.ru/subscriptions/create';
|
|
14
14
|
|
|
@@ -2645,8 +2645,13 @@ export const ERRORS = {
|
|
|
2645
2645
|
message: 'Произошла ошибка при получении пользователя',
|
|
2646
2646
|
httpCode: 500,
|
|
2647
2647
|
},
|
|
2648
|
-
|
|
2648
|
+
FILE_CONTENT_EXCEEDS_CONTEXT_LIMIT: {
|
|
2649
2649
|
code: 'A538',
|
|
2650
|
+
message: 'Размер файла превышает лимит контекста модели',
|
|
2651
|
+
httpCode: 400,
|
|
2652
|
+
},
|
|
2653
|
+
IMAGE_GENERATION_MODEL_FIND_ERROR: {
|
|
2654
|
+
code: 'A539',
|
|
2650
2655
|
message: 'Произошла ошибка при получении модели для генерации изображений',
|
|
2651
2656
|
httpCode: 500,
|
|
2652
2657
|
},
|
|
@@ -2660,33 +2665,118 @@ export const ERRORS = {
|
|
|
2660
2665
|
message: 'Трек не найден',
|
|
2661
2666
|
httpCode: 404,
|
|
2662
2667
|
},
|
|
2668
|
+
TOKEN_RESERVATION_CREATE_ERROR: {
|
|
2669
|
+
code: 'A542',
|
|
2670
|
+
message: 'Произошла ошибка при создании записи об удержании токенов',
|
|
2671
|
+
httpCode: 500,
|
|
2672
|
+
},
|
|
2673
|
+
TOKEN_RESERVATION_NOT_FOUND: {
|
|
2674
|
+
code: 'A543',
|
|
2675
|
+
message: 'Запись об удержании токенов не найдена',
|
|
2676
|
+
httpCode: 404,
|
|
2677
|
+
},
|
|
2678
|
+
TOKEN_RESERVATION_COMMIT_ERROR: {
|
|
2679
|
+
code: 'A544',
|
|
2680
|
+
message: 'Произошла ошибка при подтверждении записи об удержании токенов',
|
|
2681
|
+
httpCode: 500,
|
|
2682
|
+
},
|
|
2683
|
+
TOKEN_RESERVATION_RELEASE_ERROR: {
|
|
2684
|
+
code: 'A545',
|
|
2685
|
+
message: 'Произошла ошибка при освобождении записи об удержании токенов',
|
|
2686
|
+
httpCode: 500,
|
|
2687
|
+
},
|
|
2688
|
+
TOKEN_RESERVATION_INSUFFICIENT_BALANCE: {
|
|
2689
|
+
code: 'A546',
|
|
2690
|
+
message: 'Недостаточно токенов для выполнения операции',
|
|
2691
|
+
httpCode: 400,
|
|
2692
|
+
},
|
|
2693
|
+
TOKEN_RESERVATION_INVALID_STATUS: {
|
|
2694
|
+
code: 'A547',
|
|
2695
|
+
message: 'Запись об удержании токенов находится в недопустимом статусе',
|
|
2696
|
+
httpCode: 400,
|
|
2697
|
+
},
|
|
2698
|
+
MUSIC_PRICE_ERROR: {
|
|
2699
|
+
code: 'A548',
|
|
2700
|
+
message: 'Произошла ошибка при получении цены для генерации музыки',
|
|
2701
|
+
httpCode: 500,
|
|
2702
|
+
},
|
|
2703
|
+
IMAGE_GENERATION_PRICE_ERROR: {
|
|
2704
|
+
code: 'A549',
|
|
2705
|
+
message: 'Произошла ошибка при получении цены для генерации изображения',
|
|
2706
|
+
httpCode: 500,
|
|
2707
|
+
},
|
|
2708
|
+
IMAGE_EDITOR_PRICE_ERROR: {
|
|
2709
|
+
code: 'A550',
|
|
2710
|
+
message: 'Произошла ошибка при получении цены для редактирования изображения',
|
|
2711
|
+
httpCode: 500,
|
|
2712
|
+
},
|
|
2713
|
+
STT_PRICE_ERROR: {
|
|
2714
|
+
code: 'A551',
|
|
2715
|
+
message: 'Произошла ошибка при получении цены для транскрибации аудио',
|
|
2716
|
+
httpCode: 500,
|
|
2717
|
+
},
|
|
2718
|
+
TTS_PRICE_ERROR: {
|
|
2719
|
+
code: 'A552',
|
|
2720
|
+
message: 'Произошла ошибка при получении цены для синтеза речи',
|
|
2721
|
+
httpCode: 500,
|
|
2722
|
+
},
|
|
2723
|
+
VIDEO_PRICE_ERROR: {
|
|
2724
|
+
code: 'A553',
|
|
2725
|
+
message: 'Произошла ошибка при получении цены для генерации видео',
|
|
2726
|
+
httpCode: 500,
|
|
2727
|
+
},
|
|
2728
|
+
VIDEO_EDITOR_PRICE_ERROR: {
|
|
2729
|
+
code: 'A554',
|
|
2730
|
+
message: 'Произошла ошибка при получении цены для редактирования видео',
|
|
2731
|
+
httpCode: 500,
|
|
2732
|
+
},
|
|
2733
|
+
PARAPHRASE_PRICE_ERROR: {
|
|
2734
|
+
code: 'A555',
|
|
2735
|
+
message: 'Произошла ошибка при получении цены для парафразирования',
|
|
2736
|
+
httpCode: 500,
|
|
2737
|
+
},
|
|
2738
|
+
PRESENTATION_SLIDES_GENERATION_PRICE_ERROR: {
|
|
2739
|
+
code: 'A556',
|
|
2740
|
+
message: 'Произошла ошибка при получении цены для генерации слайдов презентации',
|
|
2741
|
+
httpCode: 500,
|
|
2742
|
+
},
|
|
2743
|
+
WRITER_CONTENT_GENERATION_PRICE_ERROR: {
|
|
2744
|
+
code: 'A557',
|
|
2745
|
+
message: 'Произошла ошибка при получении цены для генерации текста',
|
|
2746
|
+
httpCode: 500,
|
|
2747
|
+
},
|
|
2663
2748
|
COMMUNITY_POST_EXISTANCE_CHECK_ERROR: {
|
|
2664
|
-
code: '
|
|
2749
|
+
code: 'A558',
|
|
2665
2750
|
message: 'Произошла ошибка при проверке существования поста.',
|
|
2666
2751
|
httpCode: 500,
|
|
2667
2752
|
},
|
|
2668
2753
|
COMMUNITY_POST_ALREADY_EXISTS_ERROR: {
|
|
2669
|
-
code: '
|
|
2754
|
+
code: 'A559',
|
|
2670
2755
|
message: 'Данная работа уже опубликована в сообществе.',
|
|
2671
2756
|
httpCode: 400,
|
|
2672
2757
|
},
|
|
2673
2758
|
MARK_JOB_PUBLISHED_STATUS_ERROR: {
|
|
2674
|
-
code: '
|
|
2759
|
+
code: 'A560',
|
|
2675
2760
|
message: 'Произошла ошибка при отметке работы как опубликованной.',
|
|
2676
2761
|
httpCode: 500,
|
|
2677
2762
|
},
|
|
2678
2763
|
TASK_COMMUNITY_POST_NOT_PUBLISHED: {
|
|
2679
|
-
code: '
|
|
2764
|
+
code: 'A561',
|
|
2680
2765
|
message: 'Для получения награды опубликуйте работу в сообществе',
|
|
2681
2766
|
httpCode: 400,
|
|
2682
2767
|
},
|
|
2768
|
+
TOKEN_RESERVATION_EXPIRED: {
|
|
2769
|
+
code: 'A562',
|
|
2770
|
+
message: 'Запись об удержании токенов устарела',
|
|
2771
|
+
httpCode: 500,
|
|
2772
|
+
},
|
|
2683
2773
|
PRODUCT_OWNERSHIP_ERROR: {
|
|
2684
|
-
code: '
|
|
2774
|
+
code: 'A563',
|
|
2685
2775
|
message: 'Пользователь не является владельцем продукта',
|
|
2686
2776
|
httpCode: 400,
|
|
2687
2777
|
},
|
|
2688
2778
|
PRODUCT_CANCEL_ERROR: {
|
|
2689
|
-
code: '
|
|
2779
|
+
code: 'A564',
|
|
2690
2780
|
message: 'Нельзя отменить пакет, которым юзер начал пользоваться',
|
|
2691
2781
|
httpCode: 400,
|
|
2692
2782
|
},
|
package/constants/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './token-reservation-status.enum';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './enums';
|
|
@@ -9,15 +9,15 @@ export function calculateImageEditorPrice({
|
|
|
9
9
|
userHasActiveSubscriptionOrProduct: boolean;
|
|
10
10
|
rules: ImageEditorModelPricingRules;
|
|
11
11
|
}): number {
|
|
12
|
-
let
|
|
12
|
+
let price = basePrice;
|
|
13
13
|
|
|
14
14
|
for (const rule of rules ?? []) {
|
|
15
15
|
const condition = rule.condition;
|
|
16
16
|
|
|
17
17
|
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
18
|
-
|
|
18
|
+
price += rule.value;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
return
|
|
22
|
+
return price;
|
|
23
23
|
}
|
|
@@ -11,19 +11,19 @@ export function calculateImageGenerationPrice({
|
|
|
11
11
|
userHasActiveSubscriptionOrProduct: boolean;
|
|
12
12
|
rules: ImageModelPricingRules;
|
|
13
13
|
}): number {
|
|
14
|
-
let
|
|
14
|
+
let price = basePrice;
|
|
15
15
|
|
|
16
16
|
for (const rule of rules ?? []) {
|
|
17
17
|
const condition = rule.condition;
|
|
18
18
|
|
|
19
19
|
if (condition.resolution && condition.resolution === params.resolution) {
|
|
20
|
-
|
|
20
|
+
price += rule.value;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
24
|
-
|
|
24
|
+
price += rule.value;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
return
|
|
28
|
+
return price;
|
|
29
29
|
}
|
package/helpers/index.ts
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MusicModelPricingRules } from '../../models';
|
|
2
|
+
|
|
3
|
+
export function calculateMusicPrice({
|
|
4
|
+
basePrice,
|
|
5
|
+
userHasActiveSubscriptionOrProduct,
|
|
6
|
+
rules,
|
|
7
|
+
}: {
|
|
8
|
+
basePrice: number;
|
|
9
|
+
userHasActiveSubscriptionOrProduct: boolean;
|
|
10
|
+
rules: MusicModelPricingRules;
|
|
11
|
+
}): number {
|
|
12
|
+
let price = basePrice;
|
|
13
|
+
|
|
14
|
+
for (const rule of rules ?? []) {
|
|
15
|
+
const condition = rule.condition;
|
|
16
|
+
|
|
17
|
+
if (condition.withoutSub && userHasActiveSubscriptionOrProduct === false) {
|
|
18
|
+
price += rule.value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return price;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './calculate-music-price.helper';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { FILE_TYPE, FILE_USAGE_MODE } from '../constants';
|
|
3
|
+
|
|
4
|
+
export const TextFileAttachmentSchema = z.object({
|
|
5
|
+
fileId: z.string().uuid(),
|
|
6
|
+
type: z.enum([FILE_TYPE.TEXT, FILE_TYPE.DOCUMENT]),
|
|
7
|
+
usageMode: z.nativeEnum(FILE_USAGE_MODE),
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export type TextFileAttachment = z.infer<typeof TextFileAttachmentSchema>;
|
|
11
|
+
|
|
12
|
+
export const ImageFileAttachmentSchema = z.object({
|
|
13
|
+
fileId: z.string().uuid(),
|
|
14
|
+
type: z.literal(FILE_TYPE.IMAGE),
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export type ImageFileAttachment = z.infer<typeof ImageFileAttachmentSchema>;
|
|
18
|
+
|
|
19
|
+
export const FileAttachmentSchema = z.discriminatedUnion('type', [
|
|
20
|
+
TextFileAttachmentSchema,
|
|
21
|
+
ImageFileAttachmentSchema,
|
|
22
|
+
]);
|
|
23
|
+
|
|
24
|
+
export type FileAttachment = z.infer<typeof FileAttachmentSchema>;
|
package/models/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './course.schema';
|
|
|
12
12
|
export * from './date.schema';
|
|
13
13
|
export * from './feedback.schema';
|
|
14
14
|
export * from './file.schema';
|
|
15
|
+
export * from './file-attachment.schema';
|
|
15
16
|
export * from './key-value.schema';
|
|
16
17
|
export * from './form-submission.schema';
|
|
17
18
|
export * from './icon-variants.schema';
|
|
@@ -39,6 +39,7 @@ export const ImageEditorModelSchema = z.object({
|
|
|
39
39
|
pricingRules: ImageEditorModelPricingRulesSchema,
|
|
40
40
|
unlockedBy: UnlockedBySchema.nullable(),
|
|
41
41
|
canUse: z.boolean(),
|
|
42
|
+
status: z.string(),
|
|
42
43
|
});
|
|
43
44
|
|
|
44
45
|
export type ImageEditorModel = z.infer<typeof ImageEditorModelSchema>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
3
2
|
import { IMAGE_GENERATION_RESOLUTION } from '../../../constants';
|
|
3
|
+
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
4
4
|
|
|
5
5
|
export const ImageGenerationModelParamsSchema = z.object({
|
|
6
6
|
aspectRatio: z.record(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { MUSIC_VOCAL_GENDER } from '../../../constants';
|
|
2
3
|
import { IconVariantsSchema } from '../../icon-variants.schema';
|
|
3
4
|
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
4
|
-
import { MUSIC_VOCAL_GENDER } from '../../../constants';
|
|
5
5
|
|
|
6
6
|
export const MusicModelParamsSchema = z.object({
|
|
7
7
|
vocalGender: z.object({
|
|
@@ -44,4 +44,5 @@ export const MusicModelSchema = z.object({
|
|
|
44
44
|
pricingRules: MusicModelPricingRulesSchema,
|
|
45
45
|
unlockedBy: UnlockedBySchema.nullable(),
|
|
46
46
|
canUse: z.boolean(),
|
|
47
|
+
status: z.string(),
|
|
47
48
|
});
|
|
@@ -11,6 +11,7 @@ export const MusicTrackSchema = z.object({
|
|
|
11
11
|
duration: z.number(),
|
|
12
12
|
isPublished: z.boolean(),
|
|
13
13
|
postId: z.string().nullable(),
|
|
14
|
+
waveformPeaks: z.array(z.number()).nullable().optional(),
|
|
14
15
|
|
|
15
16
|
genJobId: z.string().nullable().optional(),
|
|
16
17
|
editorJobId: z.string().nullable().optional(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { IconVariantsSchema } from '../../icon-variants.schema';
|
|
3
|
-
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
4
2
|
import { VIDEO_PRICING_RULE_TYPE } from '../../../constants';
|
|
5
3
|
import { VIDEO_GENERATION_MODEL_LIMITATION } from '../../../constants/tool-video/enums/video-generation-model-limitation.enum';
|
|
4
|
+
import { IconVariantsSchema } from '../../icon-variants.schema';
|
|
5
|
+
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
6
6
|
|
|
7
7
|
export const VideoModelParamsSchema = z.object({
|
|
8
8
|
imageAttachment: z.object({
|
|
@@ -76,4 +76,5 @@ export const VideoModelSchema = z.object({
|
|
|
76
76
|
unlockedBy: UnlockedBySchema.nullable(),
|
|
77
77
|
limitations: z.array(z.nativeEnum(VIDEO_GENERATION_MODEL_LIMITATION)),
|
|
78
78
|
canUse: z.boolean(),
|
|
79
|
+
status: z.string(),
|
|
79
80
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
|
|
2
3
|
import { IconVariantsSchema } from '../../icon-variants.schema';
|
|
3
4
|
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
4
|
-
import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
|
|
5
5
|
|
|
6
6
|
export const VideoEditorModelParamsSchema = z.object({
|
|
7
7
|
supportedFormats: z.array(z.string()),
|
|
@@ -24,4 +24,5 @@ export const VideoEditorModelSchema = z.object({
|
|
|
24
24
|
unlockedBy: UnlockedBySchema.nullable(),
|
|
25
25
|
limitations: z.array(z.nativeEnum(VIDEO_EDITOR_MODEL_LIMITATION)),
|
|
26
26
|
canUse: z.boolean(),
|
|
27
|
+
status: z.string(),
|
|
27
28
|
});
|