@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.
@@ -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',
@@ -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
- WRITER_PARAPHRASE_ERROR: {
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: 'A382',
1885
+ code: 'A397',
1811
1886
  message: 'Произошла ошибка при расширении текста',
1812
1887
  httpCode: 500,
1813
1888
  },
1814
1889
  WRITER_SHORTEN_TEXT_ERROR: {
1815
- code: 'A383',
1890
+ code: 'A398',
1816
1891
  message: 'Произошла ошибка при сокращении текста',
1817
1892
  httpCode: 500,
1818
1893
  },
1819
1894
  WRITER_FIX_ERRORS_ERROR: {
1820
- code: 'A384',
1895
+ code: 'A399',
1821
1896
  message: 'Произошла ошибка при исправлении ошибок в тексте',
1822
1897
  httpCode: 500,
1823
1898
  },
1824
1899
  WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
1825
- code: 'A385',
1900
+ code: 'A400',
1826
1901
  message: 'Произошла ошибка при обновлении содержимого документа',
1827
1902
  httpCode: 500,
1828
1903
  },
1829
1904
  WRITER_GENERATE_TEXT_ERROR: {
1830
- code: 'A386',
1905
+ code: 'A401',
1831
1906
  message: 'Произошла ошибка при генерации текста',
1832
1907
  httpCode: 500,
1833
1908
  },
1834
1909
  WRITER_EXPORT_DOCX_ERROR: {
1835
- code: 'A387',
1910
+ code: 'A402',
1836
1911
  message: 'Произошла ошибка при экспорте документа в DOCX',
1837
1912
  httpCode: 500,
1838
1913
  },
@@ -6,5 +6,6 @@ var FILE_TYPE;
6
6
  FILE_TYPE["IMAGE"] = "image";
7
7
  FILE_TYPE["AUDIO"] = "audio";
8
8
  FILE_TYPE["TEXT"] = "text";
9
+ FILE_TYPE["DOCUMENT"] = "document";
9
10
  FILE_TYPE["OTHER"] = "other";
10
11
  })(FILE_TYPE || (exports.FILE_TYPE = FILE_TYPE = {}));
@@ -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;
@@ -5,4 +5,5 @@ var ORDER_TYPE;
5
5
  (function (ORDER_TYPE) {
6
6
  ORDER_TYPE["purchase"] = "purchase";
7
7
  ORDER_TYPE["upgrade"] = "upgrade";
8
+ ORDER_TYPE["downgrade"] = "downgrade";
8
9
  })(ORDER_TYPE || (exports.ORDER_TYPE = ORDER_TYPE = {}));
@@ -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
+ }
@@ -11,3 +11,4 @@ export * from './recover-past-due-subscription.command';
11
11
  export * from './recover-subscription.command';
12
12
  export * from './update-subscription.command';
13
13
  export * from './upgrade-subscription.command';
14
+ export * from './downgrade-subscription.command';
@@ -1809,38 +1809,116 @@ export const ERRORS = {
1809
1809
  message: 'Произошла ошибка при удалении Telegram профиля',
1810
1810
  httpCode: 500,
1811
1811
  },
1812
- WRITER_PARAPHRASE_ERROR: {
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: 'A382',
1896
+ code: 'A397',
1819
1897
  message: 'Произошла ошибка при расширении текста',
1820
1898
  httpCode: 500,
1821
1899
  },
1822
1900
  WRITER_SHORTEN_TEXT_ERROR: {
1823
- code: 'A383',
1901
+ code: 'A398',
1824
1902
  message: 'Произошла ошибка при сокращении текста',
1825
1903
  httpCode: 500,
1826
1904
  },
1827
1905
  WRITER_FIX_ERRORS_ERROR: {
1828
- code: 'A384',
1906
+ code: 'A399',
1829
1907
  message: 'Произошла ошибка при исправлении ошибок в тексте',
1830
1908
  httpCode: 500,
1831
1909
  },
1832
1910
  WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
1833
- code: 'A385',
1911
+ code: 'A400',
1834
1912
  message: 'Произошла ошибка при обновлении содержимого документа',
1835
1913
  httpCode: 500,
1836
1914
  },
1837
1915
  WRITER_GENERATE_TEXT_ERROR: {
1838
- code: 'A386',
1916
+ code: 'A401',
1839
1917
  message: 'Произошла ошибка при генерации текста',
1840
1918
  httpCode: 500,
1841
1919
  },
1842
1920
  WRITER_EXPORT_DOCX_ERROR: {
1843
- code: 'A387',
1921
+ code: 'A402',
1844
1922
  message: 'Произошла ошибка при экспорте документа в DOCX',
1845
1923
  httpCode: 500,
1846
1924
  },
@@ -2,5 +2,6 @@ export enum FILE_TYPE {
2
2
  IMAGE = 'image',
3
3
  AUDIO = 'audio',
4
4
  TEXT = 'text',
5
+ DOCUMENT = 'document',
5
6
  OTHER = 'other',
6
7
  }
@@ -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;
@@ -1,4 +1,5 @@
1
1
  export enum ORDER_TYPE {
2
2
  purchase = 'purchase',
3
3
  upgrade = 'upgrade',
4
+ downgrade = 'downgrade',
4
5
  }
@@ -3,4 +3,5 @@ export enum SUBSCRIPTION_ACTION {
3
3
  buy = 'buy',
4
4
  upgrade = 'upgrade',
5
5
  possible_upgrade = 'possible_upgrade',
6
+ downgrade = 'downgrade',
6
7
  }
@@ -5,4 +5,7 @@ export enum SUBSCRIPTION_STATUS {
5
5
  upgraded = 'upgraded',
6
6
  rejected = 'rejected',
7
7
  past_due = 'past_due',
8
+ downgraded = 'downgraded',
9
+ awaiting_activation = 'awaiting_activation',
10
+ awaiting_downgrade = 'awaiting_downgrade',
8
11
  }
@@ -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(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.7.39-texteditor",
3
+ "version": "0.7.40-texteditor",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",