@purpleschool/gptbot 0.7.39-texteditor → 0.7.40-texteditor
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/controllers/http/subscription.ts +2 -0
- package/api/routes.ts +4 -0
- package/build/api/controllers/http/subscription.js +2 -0
- package/build/api/routes.js +2 -0
- package/build/commands/subscription/downgrade-subscription.command.js +44 -0
- package/build/commands/subscription/index.js +1 -0
- package/build/constants/errors/errors.js +82 -7
- package/build/constants/file/enums/file-type.enum.js +1 -0
- package/build/constants/file/file.constants.js +11 -1
- package/build/constants/order/enums/order-type.enum.js +1 -0
- package/build/constants/subscription/enums/subscription-action.enum.js +1 -0
- package/build/constants/subscription/enums/subscription-status.enum.js +3 -0
- package/build/models/user-to-subscription.schema.js +1 -0
- package/commands/subscription/downgrade-subscription.command.ts +50 -0
- package/commands/subscription/index.ts +1 -0
- package/constants/errors/errors.ts +85 -7
- package/constants/file/enums/file-type.enum.ts +1 -0
- package/constants/file/file.constants.ts +12 -0
- package/constants/order/enums/order-type.enum.ts +1 -0
- package/constants/subscription/enums/subscription-action.enum.ts +1 -0
- package/constants/subscription/enums/subscription-status.enum.ts +3 -0
- package/models/user-to-subscription.schema.ts +1 -0
- package/package.json +1 -1
|
@@ -11,7 +11,9 @@ export const SUBSCRIPTION_ROUTES = {
|
|
|
11
11
|
CANCEL: 'cancel',
|
|
12
12
|
RECOVER: 'recover',
|
|
13
13
|
GET_AVAILABLE_UPGRADES: 'available-upgrades',
|
|
14
|
+
GET_AVAILABLE_DOWNGRADES: 'available-downgrades',
|
|
14
15
|
UPGRADE: 'upgrade',
|
|
16
|
+
DOWNGRADE: 'downgrade',
|
|
15
17
|
CREATE_CUSTOM: 'custom',
|
|
16
18
|
FREE: 'free',
|
|
17
19
|
SUMMARY: 'summary',
|
package/api/routes.ts
CHANGED
|
@@ -143,8 +143,12 @@ export const REST_API = {
|
|
|
143
143
|
CREATE: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}`,
|
|
144
144
|
UPGRADE: (uuid: string) =>
|
|
145
145
|
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.UPGRADE}`,
|
|
146
|
+
DOWNGRADE: (uuid: string) =>
|
|
147
|
+
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.DOWNGRADE}`,
|
|
146
148
|
GET_AVAILABLE_UPGRADES: (uuid: string) =>
|
|
147
149
|
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_UPGRADES}`,
|
|
150
|
+
GET_AVAILABLE_DOWNGRADES: (uuid: string) =>
|
|
151
|
+
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_DOWNGRADES}`,
|
|
148
152
|
CREATE_CUSTOM: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.CREATE_CUSTOM}`,
|
|
149
153
|
SUMMARY: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.SUMMARY}`,
|
|
150
154
|
},
|
|
@@ -12,7 +12,9 @@ exports.SUBSCRIPTION_ROUTES = {
|
|
|
12
12
|
CANCEL: 'cancel',
|
|
13
13
|
RECOVER: 'recover',
|
|
14
14
|
GET_AVAILABLE_UPGRADES: 'available-upgrades',
|
|
15
|
+
GET_AVAILABLE_DOWNGRADES: 'available-downgrades',
|
|
15
16
|
UPGRADE: 'upgrade',
|
|
17
|
+
DOWNGRADE: 'downgrade',
|
|
16
18
|
CREATE_CUSTOM: 'custom',
|
|
17
19
|
FREE: 'free',
|
|
18
20
|
SUMMARY: 'summary',
|
package/build/api/routes.js
CHANGED
|
@@ -153,7 +153,9 @@ exports.REST_API = {
|
|
|
153
153
|
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}`,
|
|
154
154
|
CREATE: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}`,
|
|
155
155
|
UPGRADE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.UPGRADE}`,
|
|
156
|
+
DOWNGRADE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.DOWNGRADE}`,
|
|
156
157
|
GET_AVAILABLE_UPGRADES: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_UPGRADES}`,
|
|
158
|
+
GET_AVAILABLE_DOWNGRADES: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_DOWNGRADES}`,
|
|
157
159
|
CREATE_CUSTOM: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.CREATE_CUSTOM}`,
|
|
158
160
|
SUMMARY: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.SUMMARY}`,
|
|
159
161
|
},
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DowngradeSubscriptionCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var DowngradeSubscriptionCommand;
|
|
7
|
+
(function (DowngradeSubscriptionCommand) {
|
|
8
|
+
DowngradeSubscriptionCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
downgradeSubscriptionId: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
DowngradeSubscriptionCommand.RequestParamSchema = models_1.UserToSubscriptionSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
});
|
|
14
|
+
const IReceiptOrderSchema = zod_1.z.object({
|
|
15
|
+
items: zod_1.z.array(zod_1.z.object({
|
|
16
|
+
label: zod_1.z.string(),
|
|
17
|
+
price: zod_1.z.number(),
|
|
18
|
+
quantity: zod_1.z.number(),
|
|
19
|
+
amount: zod_1.z.number(),
|
|
20
|
+
vat: zod_1.z.number(),
|
|
21
|
+
})),
|
|
22
|
+
email: zod_1.z.string(),
|
|
23
|
+
isBso: zod_1.z.boolean(),
|
|
24
|
+
amounts: zod_1.z.object({
|
|
25
|
+
electronic: zod_1.z.number(),
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
DowngradeSubscriptionCommand.ResponseSchema = zod_1.z.object({
|
|
29
|
+
publicId: zod_1.z.string(),
|
|
30
|
+
amount: zod_1.z.number(),
|
|
31
|
+
currency: zod_1.z.string(),
|
|
32
|
+
accountId: zod_1.z.string(),
|
|
33
|
+
description: zod_1.z.string(),
|
|
34
|
+
invoiceId: zod_1.z.string(),
|
|
35
|
+
email: zod_1.z.string(),
|
|
36
|
+
skin: zod_1.z.string(),
|
|
37
|
+
autoClose: zod_1.z.number(),
|
|
38
|
+
data: zod_1.z.object({
|
|
39
|
+
CloudPayments: zod_1.z.object({
|
|
40
|
+
CustomerReceipt: IReceiptOrderSchema,
|
|
41
|
+
}),
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
})(DowngradeSubscriptionCommand || (exports.DowngradeSubscriptionCommand = DowngradeSubscriptionCommand = {}));
|
|
@@ -27,3 +27,4 @@ __exportStar(require("./recover-past-due-subscription.command"), exports);
|
|
|
27
27
|
__exportStar(require("./recover-subscription.command"), exports);
|
|
28
28
|
__exportStar(require("./update-subscription.command"), exports);
|
|
29
29
|
__exportStar(require("./upgrade-subscription.command"), exports);
|
|
30
|
+
__exportStar(require("./downgrade-subscription.command"), exports);
|
|
@@ -1801,38 +1801,113 @@ exports.ERRORS = {
|
|
|
1801
1801
|
message: 'Произошла ошибка при удалении Telegram профиля',
|
|
1802
1802
|
httpCode: 500,
|
|
1803
1803
|
},
|
|
1804
|
-
|
|
1804
|
+
ORDER_CHECK_FIRST_PURCHASE_ERROR: {
|
|
1805
1805
|
code: 'A381',
|
|
1806
|
+
message: 'Произошла ошибка при проверке первой покупки',
|
|
1807
|
+
httpCode: 500,
|
|
1808
|
+
},
|
|
1809
|
+
ORDER_CURRENT_ORDER_NOT_FOUND_ERROR: {
|
|
1810
|
+
code: 'A382',
|
|
1811
|
+
message: 'Текущий заказ не найден',
|
|
1812
|
+
httpCode: 404,
|
|
1813
|
+
},
|
|
1814
|
+
ORDER_GET_USER_ORDERS_ERROR: {
|
|
1815
|
+
code: 'A383',
|
|
1816
|
+
message: 'Произошла ошибка при получении заказов пользователя',
|
|
1817
|
+
httpCode: 500,
|
|
1818
|
+
},
|
|
1819
|
+
ORDER_NO_SUBSCRIPTION_ID_OR_PRODUCT_ID_PROVIDED_ERROR: {
|
|
1820
|
+
code: 'A384',
|
|
1821
|
+
message: 'Не указан subscriptionId или productId',
|
|
1822
|
+
httpCode: 400,
|
|
1823
|
+
},
|
|
1824
|
+
FILE_TO_MD_FORMAT_ERROR: {
|
|
1825
|
+
code: 'A385',
|
|
1826
|
+
message: 'Неверный формат файла, варианты: .xlsx, .docx, .pdf',
|
|
1827
|
+
httpCode: 400,
|
|
1828
|
+
},
|
|
1829
|
+
FILE_TO_MD_ERROR: {
|
|
1830
|
+
code: 'A386',
|
|
1831
|
+
message: 'Произошла ошибка при конвертации файла в markdown',
|
|
1832
|
+
httpCode: 500,
|
|
1833
|
+
},
|
|
1834
|
+
FILE_TO_MD_CONVERT_ERROR: {
|
|
1835
|
+
code: 'A387',
|
|
1836
|
+
message: 'Не получилось конвертировать файл в markdown, возможно файл пуст, поврежден или невалиден',
|
|
1837
|
+
httpCode: 400,
|
|
1838
|
+
},
|
|
1839
|
+
IMAGE_EDITOR_MODEL_INACTIVE: {
|
|
1840
|
+
code: 'A388',
|
|
1841
|
+
message: 'Модель редактирования картинок архивирована и недоступна для пользования',
|
|
1842
|
+
httpCode: 403,
|
|
1843
|
+
},
|
|
1844
|
+
TTS_MODEL_INACTIVE: {
|
|
1845
|
+
code: 'A389',
|
|
1846
|
+
message: 'Модель генерации текста в голос архивирована и недоступна для пользования',
|
|
1847
|
+
httpCode: 403,
|
|
1848
|
+
},
|
|
1849
|
+
STT_MODEL_INACTIVE: {
|
|
1850
|
+
code: 'A390',
|
|
1851
|
+
message: 'Модель генерации голоса в текст архивирована и недоступна для пользования',
|
|
1852
|
+
httpCode: 403,
|
|
1853
|
+
},
|
|
1854
|
+
VIDEO_MODEL_INACTIVE: {
|
|
1855
|
+
code: 'A391',
|
|
1856
|
+
message: 'Модель генерации видео архивирована и недоступна для пользования',
|
|
1857
|
+
httpCode: 403,
|
|
1858
|
+
},
|
|
1859
|
+
PDF_TO_MD_CONVERT_ERROR: {
|
|
1860
|
+
code: 'A392',
|
|
1861
|
+
message: 'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
|
|
1862
|
+
httpCode: 400,
|
|
1863
|
+
},
|
|
1864
|
+
SUBSCRIPTION_DOWNGRADE_INVALID: {
|
|
1865
|
+
code: 'A393',
|
|
1866
|
+
message: 'Невозможно понизить подписку до указанного уровня',
|
|
1867
|
+
httpCode: 400,
|
|
1868
|
+
},
|
|
1869
|
+
SUBSCRIPTION_DOWNGRADE_ERROR: {
|
|
1870
|
+
code: 'A394',
|
|
1871
|
+
message: 'Не удалось понизить подписку',
|
|
1872
|
+
httpCode: 500,
|
|
1873
|
+
},
|
|
1874
|
+
SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
|
|
1875
|
+
code: 'A395',
|
|
1876
|
+
message: 'Не удалось получить список возможных понижений для подписок',
|
|
1877
|
+
httpCode: 500,
|
|
1878
|
+
},
|
|
1879
|
+
WRITER_PARAPHRASE_ERROR: {
|
|
1880
|
+
code: 'A396',
|
|
1806
1881
|
message: 'Произошла ошибка при перефразировании текста',
|
|
1807
1882
|
httpCode: 500,
|
|
1808
1883
|
},
|
|
1809
1884
|
WRITER_EXTEND_TEXT_ERROR: {
|
|
1810
|
-
code: '
|
|
1885
|
+
code: 'A397',
|
|
1811
1886
|
message: 'Произошла ошибка при расширении текста',
|
|
1812
1887
|
httpCode: 500,
|
|
1813
1888
|
},
|
|
1814
1889
|
WRITER_SHORTEN_TEXT_ERROR: {
|
|
1815
|
-
code: '
|
|
1890
|
+
code: 'A398',
|
|
1816
1891
|
message: 'Произошла ошибка при сокращении текста',
|
|
1817
1892
|
httpCode: 500,
|
|
1818
1893
|
},
|
|
1819
1894
|
WRITER_FIX_ERRORS_ERROR: {
|
|
1820
|
-
code: '
|
|
1895
|
+
code: 'A399',
|
|
1821
1896
|
message: 'Произошла ошибка при исправлении ошибок в тексте',
|
|
1822
1897
|
httpCode: 500,
|
|
1823
1898
|
},
|
|
1824
1899
|
WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
|
|
1825
|
-
code: '
|
|
1900
|
+
code: 'A400',
|
|
1826
1901
|
message: 'Произошла ошибка при обновлении содержимого документа',
|
|
1827
1902
|
httpCode: 500,
|
|
1828
1903
|
},
|
|
1829
1904
|
WRITER_GENERATE_TEXT_ERROR: {
|
|
1830
|
-
code: '
|
|
1905
|
+
code: 'A401',
|
|
1831
1906
|
message: 'Произошла ошибка при генерации текста',
|
|
1832
1907
|
httpCode: 500,
|
|
1833
1908
|
},
|
|
1834
1909
|
WRITER_EXPORT_DOCX_ERROR: {
|
|
1835
|
-
code: '
|
|
1910
|
+
code: 'A402',
|
|
1836
1911
|
message: 'Произошла ошибка при экспорте документа в DOCX',
|
|
1837
1912
|
httpCode: 500,
|
|
1838
1913
|
},
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DELETE_UNUSED_FILES_AFTER_HOURS = exports.SUPPORTED_FILES = exports.MAX_TEXT_UPLOAD_SIZE = exports.MAX_AUDIO_UPLOAD_SIZE = exports.MAX_IMAGE_UPLOAD_SIZE = void 0;
|
|
3
|
+
exports.DELETE_UNUSED_FILES_AFTER_HOURS = exports.SUPPORTED_FILES = exports.MAX_DOC_UPLOAD_SIZE = exports.MAX_TEXT_UPLOAD_SIZE = exports.MAX_AUDIO_UPLOAD_SIZE = exports.MAX_IMAGE_UPLOAD_SIZE = void 0;
|
|
4
4
|
const enums_1 = require("./enums");
|
|
5
5
|
exports.MAX_IMAGE_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
6
6
|
exports.MAX_AUDIO_UPLOAD_SIZE = 500 * 1024 * 1024; // 500 MB
|
|
7
7
|
exports.MAX_TEXT_UPLOAD_SIZE = 10 * 1024 * 1024; // 10 MB
|
|
8
|
+
exports.MAX_DOC_UPLOAD_SIZE = 20 * 1024 * 1024; // 20 MB
|
|
8
9
|
exports.SUPPORTED_FILES = new Map([
|
|
9
10
|
['image/jpeg', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
10
11
|
['image/png', { type: enums_1.FILE_TYPE.IMAGE, size: exports.MAX_IMAGE_UPLOAD_SIZE }],
|
|
@@ -43,5 +44,14 @@ exports.SUPPORTED_FILES = new Map([
|
|
|
43
44
|
['text/x-ini', { type: enums_1.FILE_TYPE.TEXT, size: exports.MAX_TEXT_UPLOAD_SIZE }],
|
|
44
45
|
['text/x-properties', { type: enums_1.FILE_TYPE.TEXT, size: exports.MAX_TEXT_UPLOAD_SIZE }],
|
|
45
46
|
['text/x-config', { type: enums_1.FILE_TYPE.TEXT, size: exports.MAX_TEXT_UPLOAD_SIZE }],
|
|
47
|
+
[
|
|
48
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
49
|
+
{ type: enums_1.FILE_TYPE.DOCUMENT, size: exports.MAX_DOC_UPLOAD_SIZE },
|
|
50
|
+
], //.docx
|
|
51
|
+
[
|
|
52
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
53
|
+
{ type: enums_1.FILE_TYPE.DOCUMENT, size: exports.MAX_DOC_UPLOAD_SIZE },
|
|
54
|
+
], //.xlsx
|
|
55
|
+
['application/pdf', { type: enums_1.FILE_TYPE.DOCUMENT, size: exports.MAX_DOC_UPLOAD_SIZE }],
|
|
46
56
|
]);
|
|
47
57
|
exports.DELETE_UNUSED_FILES_AFTER_HOURS = 12;
|
|
@@ -7,4 +7,5 @@ var SUBSCRIPTION_ACTION;
|
|
|
7
7
|
SUBSCRIPTION_ACTION["buy"] = "buy";
|
|
8
8
|
SUBSCRIPTION_ACTION["upgrade"] = "upgrade";
|
|
9
9
|
SUBSCRIPTION_ACTION["possible_upgrade"] = "possible_upgrade";
|
|
10
|
+
SUBSCRIPTION_ACTION["downgrade"] = "downgrade";
|
|
10
11
|
})(SUBSCRIPTION_ACTION || (exports.SUBSCRIPTION_ACTION = SUBSCRIPTION_ACTION = {}));
|
|
@@ -9,4 +9,7 @@ var SUBSCRIPTION_STATUS;
|
|
|
9
9
|
SUBSCRIPTION_STATUS["upgraded"] = "upgraded";
|
|
10
10
|
SUBSCRIPTION_STATUS["rejected"] = "rejected";
|
|
11
11
|
SUBSCRIPTION_STATUS["past_due"] = "past_due";
|
|
12
|
+
SUBSCRIPTION_STATUS["downgraded"] = "downgraded";
|
|
13
|
+
SUBSCRIPTION_STATUS["awaiting_activation"] = "awaiting_activation";
|
|
14
|
+
SUBSCRIPTION_STATUS["awaiting_downgrade"] = "awaiting_downgrade";
|
|
12
15
|
})(SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = SUBSCRIPTION_STATUS = {}));
|
|
@@ -11,6 +11,7 @@ exports.UserToSubscriptionSchema = zod_1.z.object({
|
|
|
11
11
|
active: zod_1.z.boolean(),
|
|
12
12
|
tokenBalance: zod_1.z.number(),
|
|
13
13
|
status: zod_1.z.string(),
|
|
14
|
+
startDate: zod_1.z.date().nullable(),
|
|
14
15
|
endDate: zod_1.z.date().nullable(),
|
|
15
16
|
marks: zod_1.z.array(zod_1.z.string()),
|
|
16
17
|
intervalEndDate: zod_1.z.date().nullable(),
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { UserToSubscriptionSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace DowngradeSubscriptionCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
downgradeSubscriptionId: z.string().uuid(),
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export const RequestParamSchema = UserToSubscriptionSchema.pick({
|
|
10
|
+
uuid: true,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
const IReceiptOrderSchema = z.object({
|
|
16
|
+
items: z.array(
|
|
17
|
+
z.object({
|
|
18
|
+
label: z.string(),
|
|
19
|
+
price: z.number(),
|
|
20
|
+
quantity: z.number(),
|
|
21
|
+
amount: z.number(),
|
|
22
|
+
vat: z.number(),
|
|
23
|
+
}),
|
|
24
|
+
),
|
|
25
|
+
email: z.string(),
|
|
26
|
+
isBso: z.boolean(),
|
|
27
|
+
amounts: z.object({
|
|
28
|
+
electronic: z.number(),
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const ResponseSchema = z.object({
|
|
33
|
+
publicId: z.string(),
|
|
34
|
+
amount: z.number(),
|
|
35
|
+
currency: z.string(),
|
|
36
|
+
accountId: z.string(),
|
|
37
|
+
description: z.string(),
|
|
38
|
+
invoiceId: z.string(),
|
|
39
|
+
email: z.string(),
|
|
40
|
+
skin: z.string(),
|
|
41
|
+
autoClose: z.number(),
|
|
42
|
+
data: z.object({
|
|
43
|
+
CloudPayments: z.object({
|
|
44
|
+
CustomerReceipt: IReceiptOrderSchema,
|
|
45
|
+
}),
|
|
46
|
+
}),
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
50
|
+
}
|
|
@@ -1809,38 +1809,116 @@ export const ERRORS = {
|
|
|
1809
1809
|
message: 'Произошла ошибка при удалении Telegram профиля',
|
|
1810
1810
|
httpCode: 500,
|
|
1811
1811
|
},
|
|
1812
|
-
|
|
1812
|
+
ORDER_CHECK_FIRST_PURCHASE_ERROR: {
|
|
1813
1813
|
code: 'A381',
|
|
1814
|
+
message: 'Произошла ошибка при проверке первой покупки',
|
|
1815
|
+
httpCode: 500,
|
|
1816
|
+
},
|
|
1817
|
+
ORDER_CURRENT_ORDER_NOT_FOUND_ERROR: {
|
|
1818
|
+
code: 'A382',
|
|
1819
|
+
message: 'Текущий заказ не найден',
|
|
1820
|
+
httpCode: 404,
|
|
1821
|
+
},
|
|
1822
|
+
ORDER_GET_USER_ORDERS_ERROR: {
|
|
1823
|
+
code: 'A383',
|
|
1824
|
+
message: 'Произошла ошибка при получении заказов пользователя',
|
|
1825
|
+
httpCode: 500,
|
|
1826
|
+
},
|
|
1827
|
+
ORDER_NO_SUBSCRIPTION_ID_OR_PRODUCT_ID_PROVIDED_ERROR: {
|
|
1828
|
+
code: 'A384',
|
|
1829
|
+
message: 'Не указан subscriptionId или productId',
|
|
1830
|
+
httpCode: 400,
|
|
1831
|
+
},
|
|
1832
|
+
FILE_TO_MD_FORMAT_ERROR: {
|
|
1833
|
+
code: 'A385',
|
|
1834
|
+
message: 'Неверный формат файла, варианты: .xlsx, .docx, .pdf',
|
|
1835
|
+
httpCode: 400,
|
|
1836
|
+
},
|
|
1837
|
+
FILE_TO_MD_ERROR: {
|
|
1838
|
+
code: 'A386',
|
|
1839
|
+
message: 'Произошла ошибка при конвертации файла в markdown',
|
|
1840
|
+
httpCode: 500,
|
|
1841
|
+
},
|
|
1842
|
+
FILE_TO_MD_CONVERT_ERROR: {
|
|
1843
|
+
code: 'A387',
|
|
1844
|
+
message:
|
|
1845
|
+
'Не получилось конвертировать файл в markdown, возможно файл пуст, поврежден или невалиден',
|
|
1846
|
+
httpCode: 400,
|
|
1847
|
+
},
|
|
1848
|
+
|
|
1849
|
+
IMAGE_EDITOR_MODEL_INACTIVE: {
|
|
1850
|
+
code: 'A388',
|
|
1851
|
+
message: 'Модель редактирования картинок архивирована и недоступна для пользования',
|
|
1852
|
+
httpCode: 403,
|
|
1853
|
+
},
|
|
1854
|
+
TTS_MODEL_INACTIVE: {
|
|
1855
|
+
code: 'A389',
|
|
1856
|
+
message: 'Модель генерации текста в голос архивирована и недоступна для пользования',
|
|
1857
|
+
httpCode: 403,
|
|
1858
|
+
},
|
|
1859
|
+
STT_MODEL_INACTIVE: {
|
|
1860
|
+
code: 'A390',
|
|
1861
|
+
message: 'Модель генерации голоса в текст архивирована и недоступна для пользования',
|
|
1862
|
+
httpCode: 403,
|
|
1863
|
+
},
|
|
1864
|
+
VIDEO_MODEL_INACTIVE: {
|
|
1865
|
+
code: 'A391',
|
|
1866
|
+
message: 'Модель генерации видео архивирована и недоступна для пользования',
|
|
1867
|
+
httpCode: 403,
|
|
1868
|
+
},
|
|
1869
|
+
PDF_TO_MD_CONVERT_ERROR: {
|
|
1870
|
+
code: 'A392',
|
|
1871
|
+
message:
|
|
1872
|
+
'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
|
|
1873
|
+
httpCode: 400,
|
|
1874
|
+
},
|
|
1875
|
+
SUBSCRIPTION_DOWNGRADE_INVALID: {
|
|
1876
|
+
code: 'A393',
|
|
1877
|
+
message: 'Невозможно понизить подписку до указанного уровня',
|
|
1878
|
+
httpCode: 400,
|
|
1879
|
+
},
|
|
1880
|
+
SUBSCRIPTION_DOWNGRADE_ERROR: {
|
|
1881
|
+
code: 'A394',
|
|
1882
|
+
message: 'Не удалось понизить подписку',
|
|
1883
|
+
httpCode: 500,
|
|
1884
|
+
},
|
|
1885
|
+
SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
|
|
1886
|
+
code: 'A395',
|
|
1887
|
+
message: 'Не удалось получить список возможных понижений для подписок',
|
|
1888
|
+
httpCode: 500,
|
|
1889
|
+
},
|
|
1890
|
+
WRITER_PARAPHRASE_ERROR: {
|
|
1891
|
+
code: 'A396',
|
|
1814
1892
|
message: 'Произошла ошибка при перефразировании текста',
|
|
1815
1893
|
httpCode: 500,
|
|
1816
1894
|
},
|
|
1817
1895
|
WRITER_EXTEND_TEXT_ERROR: {
|
|
1818
|
-
code: '
|
|
1896
|
+
code: 'A397',
|
|
1819
1897
|
message: 'Произошла ошибка при расширении текста',
|
|
1820
1898
|
httpCode: 500,
|
|
1821
1899
|
},
|
|
1822
1900
|
WRITER_SHORTEN_TEXT_ERROR: {
|
|
1823
|
-
code: '
|
|
1901
|
+
code: 'A398',
|
|
1824
1902
|
message: 'Произошла ошибка при сокращении текста',
|
|
1825
1903
|
httpCode: 500,
|
|
1826
1904
|
},
|
|
1827
1905
|
WRITER_FIX_ERRORS_ERROR: {
|
|
1828
|
-
code: '
|
|
1906
|
+
code: 'A399',
|
|
1829
1907
|
message: 'Произошла ошибка при исправлении ошибок в тексте',
|
|
1830
1908
|
httpCode: 500,
|
|
1831
1909
|
},
|
|
1832
1910
|
WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
|
|
1833
|
-
code: '
|
|
1911
|
+
code: 'A400',
|
|
1834
1912
|
message: 'Произошла ошибка при обновлении содержимого документа',
|
|
1835
1913
|
httpCode: 500,
|
|
1836
1914
|
},
|
|
1837
1915
|
WRITER_GENERATE_TEXT_ERROR: {
|
|
1838
|
-
code: '
|
|
1916
|
+
code: 'A401',
|
|
1839
1917
|
message: 'Произошла ошибка при генерации текста',
|
|
1840
1918
|
httpCode: 500,
|
|
1841
1919
|
},
|
|
1842
1920
|
WRITER_EXPORT_DOCX_ERROR: {
|
|
1843
|
-
code: '
|
|
1921
|
+
code: 'A402',
|
|
1844
1922
|
message: 'Произошла ошибка при экспорте документа в DOCX',
|
|
1845
1923
|
httpCode: 500,
|
|
1846
1924
|
},
|
|
@@ -3,6 +3,7 @@ import { FILE_TYPE } from './enums';
|
|
|
3
3
|
export const MAX_IMAGE_UPLOAD_SIZE = 5 * 1024 * 1024; // 5 MB
|
|
4
4
|
export const MAX_AUDIO_UPLOAD_SIZE = 500 * 1024 * 1024; // 500 MB
|
|
5
5
|
export const MAX_TEXT_UPLOAD_SIZE = 10 * 1024 * 1024; // 10 MB
|
|
6
|
+
export const MAX_DOC_UPLOAD_SIZE = 20 * 1024 * 1024; // 20 MB
|
|
6
7
|
|
|
7
8
|
export const SUPPORTED_FILES = new Map<
|
|
8
9
|
string,
|
|
@@ -48,6 +49,17 @@ export const SUPPORTED_FILES = new Map<
|
|
|
48
49
|
['text/x-ini', { type: FILE_TYPE.TEXT, size: MAX_TEXT_UPLOAD_SIZE }],
|
|
49
50
|
['text/x-properties', { type: FILE_TYPE.TEXT, size: MAX_TEXT_UPLOAD_SIZE }],
|
|
50
51
|
['text/x-config', { type: FILE_TYPE.TEXT, size: MAX_TEXT_UPLOAD_SIZE }],
|
|
52
|
+
[
|
|
53
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
54
|
+
{ type: FILE_TYPE.DOCUMENT, size: MAX_DOC_UPLOAD_SIZE },
|
|
55
|
+
], //.docx
|
|
56
|
+
|
|
57
|
+
[
|
|
58
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
59
|
+
{ type: FILE_TYPE.DOCUMENT, size: MAX_DOC_UPLOAD_SIZE },
|
|
60
|
+
], //.xlsx
|
|
61
|
+
|
|
62
|
+
['application/pdf', { type: FILE_TYPE.DOCUMENT, size: MAX_DOC_UPLOAD_SIZE }],
|
|
51
63
|
]);
|
|
52
64
|
|
|
53
65
|
export const DELETE_UNUSED_FILES_AFTER_HOURS = 12;
|
|
@@ -9,6 +9,7 @@ export const UserToSubscriptionSchema = z.object({
|
|
|
9
9
|
active: z.boolean(),
|
|
10
10
|
tokenBalance: z.number(),
|
|
11
11
|
status: z.string(),
|
|
12
|
+
startDate: z.date().nullable(),
|
|
12
13
|
endDate: z.date().nullable(),
|
|
13
14
|
marks: z.array(z.string()),
|
|
14
15
|
intervalEndDate: z.date().nullable(),
|