@purpleschool/gptbot 0.7.58 → 0.7.59-presentations

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 (274) hide show
  1. package/api/controllers/http/cabinet.ts +3 -2
  2. package/api/controllers/http/index.ts +3 -0
  3. package/api/controllers/http/music.ts +16 -0
  4. package/api/controllers/http/presentation.ts +10 -0
  5. package/api/controllers/http/video-editor.ts +14 -0
  6. package/api/controllers/http/webmaster.ts +10 -0
  7. package/api/controllers/http/writer.ts +1 -0
  8. package/api/routes.ts +8 -1
  9. package/build/api/controllers/http/cabinet.js +3 -2
  10. package/build/api/controllers/http/index.js +3 -0
  11. package/build/api/controllers/http/music.js +18 -0
  12. package/build/api/controllers/http/presentation.js +7 -0
  13. package/build/api/controllers/http/video-editor.js +16 -0
  14. package/build/api/controllers/http/webmaster.js +12 -0
  15. package/build/api/controllers/http/writer.js +1 -0
  16. package/build/api/routes.js +7 -1
  17. package/build/commands/auth/register-user.command.js +2 -4
  18. package/build/commands/auth/vk-login.command.js +5 -2
  19. package/build/commands/auth/yandex-login.command.js +5 -2
  20. package/build/commands/cabinet/get-user-statistics-by-month.command.js +25 -0
  21. package/build/commands/cabinet/get-user-statistics-overview.command.js +26 -0
  22. package/build/commands/cabinet/index.js +2 -1
  23. package/build/commands/chat/create-chat.command.js +1 -3
  24. package/build/commands/chat/find-chat-by-uuid.command.js +1 -1
  25. package/build/commands/chat/find-chats.command.js +1 -3
  26. package/build/commands/chat/get-last-active-chat-command.js +1 -1
  27. package/build/commands/folder/find-folder-by-uuid-with-chats.command.js +1 -3
  28. package/build/commands/index.js +1 -0
  29. package/build/commands/product/buy-product.command.js +4 -0
  30. package/build/commands/subscription/buy-subscription.command.js +4 -0
  31. package/build/commands/telegram-auth/create-telegram-auth-link.command.js +2 -0
  32. package/build/commands/telegram-profile/auth-with-telegram-web-app.command.js +4 -0
  33. package/build/commands/telegram-profile/bot-was-blocked-by-user.command.js +11 -0
  34. package/build/commands/telegram-profile/index.js +2 -0
  35. package/build/commands/telegram-profile/user-joined-telegram.command.js +11 -0
  36. package/build/commands/tools/index.js +2 -0
  37. package/build/commands/tools/music/convert-to-wav.command.js +16 -0
  38. package/build/commands/tools/music/delete-all-music-jobs.command.js +8 -0
  39. package/build/commands/tools/music/delete-music-job-by-uuid.command.js +11 -0
  40. package/build/commands/tools/music/find-music-job-by-uuid.command.js +14 -0
  41. package/build/commands/tools/music/find-music-jobs.command.js +18 -0
  42. package/build/commands/tools/music/generate-lyrics.command.js +16 -0
  43. package/build/commands/tools/music/generate-music.command.js +15 -0
  44. package/build/commands/tools/music/get-music-tool-config.command.js +11 -0
  45. package/build/commands/tools/music/index.js +27 -0
  46. package/build/commands/tools/music/retry-music-job.command.js +14 -0
  47. package/build/commands/tools/music/set-reaction-to-music-job.command.js +18 -0
  48. package/build/commands/tools/music/update-music-job-title.command.js +17 -0
  49. package/build/commands/tools/presentation/build-blank-slide.command.js +21 -0
  50. package/build/commands/tools/presentation/generate-and-insert-slide.command.js +22 -0
  51. package/build/commands/tools/presentation/index.js +7 -0
  52. package/build/commands/tools/presentation/presentation-generate-report.command.js +17 -0
  53. package/build/commands/tools/presentation/presentation-paraphrase.command.js +20 -0
  54. package/build/commands/tools/presentation/update-presentation-slides.command.js +25 -0
  55. package/build/commands/tools/presentation/update-presentation.command.js +4 -3
  56. package/build/commands/tools/presentation/update-slide-image-slot.command.js +34 -0
  57. package/build/commands/tools/presentation/update-slide.command.js +19 -0
  58. package/build/commands/tools/video-editor/delete-all-video-editor-jobs.command.js +11 -0
  59. package/build/commands/tools/video-editor/delete-video-editor-job-by-uuid.command.js +14 -0
  60. package/build/commands/tools/video-editor/edit-video.command.js +16 -0
  61. package/build/commands/tools/video-editor/find-video-editor-job-by-id.command.js +14 -0
  62. package/build/commands/tools/video-editor/find-video-editor-jobs.command.js +18 -0
  63. package/build/commands/tools/video-editor/get-video-editor-config.command.js +14 -0
  64. package/build/commands/tools/video-editor/index.js +25 -0
  65. package/build/commands/tools/video-editor/retry-video-editor-job.command.js +14 -0
  66. package/build/commands/tools/video-editor/set-reaction-to-video-editor-job.command.js +18 -0
  67. package/build/commands/tools/video-editor/update-video-editor-job-title.command.js +17 -0
  68. package/build/commands/tools/writer/generate-writer-document-contents.command.js +3 -0
  69. package/build/commands/tools/writer/index.js +1 -0
  70. package/build/commands/tools/writer/set-reaction.writer-document.command.js +18 -0
  71. package/build/commands/user/get-aggregated-user-data.command.js +1 -1
  72. package/build/commands/user/get-me.command.js +1 -0
  73. package/build/commands/webmaster/confirm-withdrawal.command.js +14 -0
  74. package/build/commands/webmaster/create-webmaster.command.js +16 -0
  75. package/build/commands/webmaster/create-withdrawal-request.command.js +16 -0
  76. package/build/commands/webmaster/get-my-webmaster.command.js +11 -0
  77. package/build/commands/webmaster/get-webmaster-balance-overview.command.js +26 -0
  78. package/build/commands/webmaster/index.js +22 -0
  79. package/build/commands/webmaster/update-webmaster.command.js +13 -0
  80. package/build/constants/ai-model/enums/ai-model-config-selector-type.enum.js +1 -0
  81. package/build/constants/cabinet/enums/group-by.enum.js +9 -0
  82. package/build/constants/cabinet/enums/index.js +17 -0
  83. package/build/constants/cabinet/index.js +17 -0
  84. package/build/constants/errors/errors.js +278 -0
  85. package/build/constants/file/enums/file-type.enum.js +1 -0
  86. package/build/constants/file/file.constants.js +4 -1
  87. package/build/constants/index.js +5 -0
  88. package/build/constants/presentation/enums/index.js +4 -0
  89. package/build/constants/presentation/enums/presentation-ai-action-call-status.enum.js +9 -0
  90. package/build/constants/presentation/enums/presentation-ai-action-pricing-type.enum.js +8 -0
  91. package/build/constants/presentation/enums/presentation-ai-action-type.enum.js +8 -0
  92. package/build/constants/presentation/enums/slide-image-slot-action.enum.js +8 -0
  93. package/build/constants/tool-music/enums/index.js +21 -0
  94. package/build/constants/tool-music/enums/music-pricing-rule-type.enum.js +7 -0
  95. package/build/constants/tool-music/enums/music-strategy.enum.js +7 -0
  96. package/build/constants/tool-music/enums/music-vocal-gender.enum.js +8 -0
  97. package/build/constants/tool-music/enums/suno-mode-type.enum.js +10 -0
  98. package/build/constants/tool-music/enums/suno-model-type.enum.js +10 -0
  99. package/build/constants/tool-music/index.js +17 -0
  100. package/build/constants/tool-video-editor/enums/index.js +17 -0
  101. package/build/constants/tool-video-editor/enums/video-editor-model-strategy.enum.js +7 -0
  102. package/build/constants/tool-video-editor/index.js +17 -0
  103. package/build/constants/webmaster/enums/index.js +17 -0
  104. package/build/constants/webmaster/enums/organization-type.enum.js +9 -0
  105. package/build/constants/webmaster/index.js +17 -0
  106. package/build/constants/webmaster-balance/enums/index.js +18 -0
  107. package/build/constants/webmaster-balance/enums/webmaster-balance-status.enum.js +10 -0
  108. package/build/constants/webmaster-balance/enums/webmaster-balance-type.enum.js +8 -0
  109. package/build/constants/webmaster-balance/index.js +17 -0
  110. package/build/constants/writer/enums/index.js +1 -0
  111. package/build/constants/writer/enums/tool-model-status.enum.js +8 -0
  112. package/build/helpers/index.js +2 -0
  113. package/build/helpers/presentation/calculate-presentation-ai-action-price.util.js +16 -0
  114. package/build/helpers/presentation/index.js +17 -0
  115. package/build/helpers/video-editor/calculate-video-editing-price.helper.js +6 -0
  116. package/build/helpers/video-editor/index.js +17 -0
  117. package/build/helpers/writer/calculate-writer-content-generation-price.util.js +2 -2
  118. package/build/models/chat-with-messages.schema.js +9 -0
  119. package/build/models/chat.schema.js +0 -2
  120. package/build/models/index.js +4 -0
  121. package/build/models/tools/index.js +3 -0
  122. package/build/models/tools/music/index.js +20 -0
  123. package/build/models/tools/music/music-config.schema.js +8 -0
  124. package/build/models/tools/music/music-job.schema.js +40 -0
  125. package/build/models/tools/music/music-model.schema.js +32 -0
  126. package/build/models/tools/music/music-track.schema.js +17 -0
  127. package/build/models/tools/presentation/index.js +1 -0
  128. package/build/models/tools/presentation/presentation-ai-action.schema.js +27 -0
  129. package/build/models/tools/presentation/presentation-config.schema.js +3 -0
  130. package/build/models/tools/presentation/presentation.schema.js +2 -0
  131. package/build/models/tools/presentation/slide-content-edit.schema.js +129 -0
  132. package/build/models/tools/presentation/slide-content.schema.js +22 -20
  133. package/build/models/tools/presentation/slide.schema.js +39 -1
  134. package/build/models/tools/video-editor/index.js +19 -0
  135. package/build/models/tools/video-editor/video-editor-config.schema.js +8 -0
  136. package/build/models/tools/video-editor/video-editor-job.schema.js +14 -0
  137. package/build/models/tools/video-editor/video-editor-model.schema.js +25 -0
  138. package/build/models/tools/writer/writer-config.schema.js +2 -0
  139. package/build/models/tools/writer/writer-document.schema.js +2 -0
  140. package/build/models/tools/writer/writer-model.schema.js +21 -0
  141. package/build/models/user-referrals.schema.js +15 -0
  142. package/build/models/user-to-subscription.schema.js +1 -0
  143. package/build/models/webmaster-balance.schema.js +19 -0
  144. package/build/models/webmaster.schema.js +21 -0
  145. package/commands/auth/register-user.command.ts +3 -5
  146. package/commands/auth/vk-login.command.ts +9 -6
  147. package/commands/auth/yandex-login.command.ts +7 -4
  148. package/commands/cabinet/get-user-statistics-by-month.command.ts +25 -0
  149. package/commands/cabinet/{get-user-statistics.command.ts → get-user-statistics-overview.command.ts} +5 -12
  150. package/commands/cabinet/index.ts +2 -1
  151. package/commands/chat/create-chat.command.ts +2 -4
  152. package/commands/chat/find-chat-by-uuid.command.ts +2 -2
  153. package/commands/chat/find-chats.command.ts +2 -6
  154. package/commands/chat/get-last-active-chat-command.ts +2 -2
  155. package/commands/folder/find-folder-by-uuid-with-chats.command.ts +2 -6
  156. package/commands/index.ts +1 -0
  157. package/commands/product/buy-product.command.ts +4 -0
  158. package/commands/subscription/buy-subscription.command.ts +4 -0
  159. package/commands/telegram-auth/create-telegram-auth-link.command.ts +5 -0
  160. package/commands/telegram-profile/auth-with-telegram-web-app.command.ts +4 -0
  161. package/commands/telegram-profile/bot-was-blocked-by-user.command.ts +13 -0
  162. package/commands/telegram-profile/index.ts +2 -0
  163. package/commands/telegram-profile/user-joined-telegram.command.ts +13 -0
  164. package/commands/tools/index.ts +2 -0
  165. package/commands/tools/music/convert-to-wav.command.ts +17 -0
  166. package/commands/tools/music/delete-all-music-jobs.command.ts +6 -0
  167. package/commands/tools/music/delete-music-job-by-uuid.command.ts +11 -0
  168. package/commands/tools/music/find-music-job-by-uuid.command.ts +16 -0
  169. package/commands/tools/music/find-music-jobs.command.ts +18 -0
  170. package/commands/tools/music/generate-lyrics.command.ts +17 -0
  171. package/commands/tools/music/generate-music.command.ts +16 -0
  172. package/commands/tools/music/get-music-tool-config.command.ts +10 -0
  173. package/commands/tools/music/index.ts +11 -0
  174. package/commands/tools/music/retry-music-job.command.ts +14 -0
  175. package/commands/tools/music/set-reaction-to-music-job.command.ts +20 -0
  176. package/commands/tools/music/update-music-job-title.command.ts +19 -0
  177. package/commands/tools/presentation/build-blank-slide.command.ts +23 -0
  178. package/commands/tools/presentation/generate-and-insert-slide.command.ts +27 -0
  179. package/commands/tools/presentation/index.ts +7 -0
  180. package/commands/tools/presentation/presentation-generate-report.command.ts +21 -0
  181. package/commands/tools/presentation/presentation-paraphrase.command.ts +26 -0
  182. package/commands/tools/presentation/update-presentation-slides.command.ts +32 -0
  183. package/commands/tools/presentation/update-presentation.command.ts +5 -4
  184. package/commands/tools/presentation/update-slide-image-slot.command.ts +40 -0
  185. package/commands/tools/presentation/update-slide.command.ts +25 -0
  186. package/commands/tools/video-editor/delete-all-video-editor-jobs.command.ts +13 -0
  187. package/commands/tools/video-editor/delete-video-editor-job-by-uuid.command.ts +16 -0
  188. package/commands/tools/video-editor/edit-video.command.ts +18 -0
  189. package/commands/tools/video-editor/find-video-editor-job-by-id.command.ts +16 -0
  190. package/commands/tools/video-editor/find-video-editor-jobs.command.ts +18 -0
  191. package/commands/tools/video-editor/get-video-editor-config.command.ts +16 -0
  192. package/commands/tools/video-editor/index.ts +9 -0
  193. package/commands/tools/video-editor/retry-video-editor-job.command.ts +16 -0
  194. package/commands/tools/video-editor/set-reaction-to-video-editor-job.command.ts +21 -0
  195. package/commands/tools/video-editor/update-video-editor-job-title.command.ts +20 -0
  196. package/commands/tools/writer/generate-writer-document-contents.command.ts +5 -0
  197. package/commands/tools/writer/index.ts +1 -0
  198. package/commands/tools/writer/set-reaction.writer-document.command.ts +21 -0
  199. package/commands/user/get-aggregated-user-data.command.ts +1 -1
  200. package/commands/user/get-me.command.ts +1 -0
  201. package/commands/webmaster/confirm-withdrawal.command.ts +16 -0
  202. package/commands/webmaster/create-webmaster.command.ts +18 -0
  203. package/commands/webmaster/create-withdrawal-request.command.ts +18 -0
  204. package/commands/webmaster/get-my-webmaster.command.ts +12 -0
  205. package/commands/webmaster/get-webmaster-balance-overview.command.ts +29 -0
  206. package/commands/webmaster/index.ts +6 -0
  207. package/commands/webmaster/update-webmaster.command.ts +18 -0
  208. package/constants/ai-model/enums/ai-model-config-selector-type.enum.ts +1 -0
  209. package/constants/cabinet/enums/group-by.enum.ts +5 -0
  210. package/constants/cabinet/enums/index.ts +1 -0
  211. package/constants/cabinet/index.ts +1 -0
  212. package/constants/errors/errors.ts +278 -0
  213. package/constants/file/enums/file-type.enum.ts +1 -0
  214. package/constants/file/file.constants.ts +4 -0
  215. package/constants/index.ts +5 -0
  216. package/constants/presentation/enums/index.ts +4 -0
  217. package/constants/presentation/enums/presentation-ai-action-call-status.enum.ts +5 -0
  218. package/constants/presentation/enums/presentation-ai-action-pricing-type.enum.ts +4 -0
  219. package/constants/presentation/enums/presentation-ai-action-type.enum.ts +4 -0
  220. package/constants/presentation/enums/slide-image-slot-action.enum.ts +4 -0
  221. package/constants/tool-music/enums/index.ts +5 -0
  222. package/constants/tool-music/enums/music-pricing-rule-type.enum.ts +3 -0
  223. package/constants/tool-music/enums/music-strategy.enum.ts +3 -0
  224. package/constants/tool-music/enums/music-vocal-gender.enum.ts +4 -0
  225. package/constants/tool-music/enums/suno-mode-type.enum.ts +6 -0
  226. package/constants/tool-music/enums/suno-model-type.enum.ts +6 -0
  227. package/constants/tool-music/index.ts +1 -0
  228. package/constants/tool-video-editor/enums/index.ts +1 -0
  229. package/constants/tool-video-editor/enums/video-editor-model-strategy.enum.ts +3 -0
  230. package/constants/tool-video-editor/index.ts +1 -0
  231. package/constants/webmaster/enums/index.ts +1 -0
  232. package/constants/webmaster/enums/organization-type.enum.ts +5 -0
  233. package/constants/webmaster/index.ts +1 -0
  234. package/constants/webmaster-balance/enums/index.ts +2 -0
  235. package/constants/webmaster-balance/enums/webmaster-balance-status.enum.ts +6 -0
  236. package/constants/webmaster-balance/enums/webmaster-balance-type.enum.ts +4 -0
  237. package/constants/webmaster-balance/index.ts +1 -0
  238. package/constants/writer/enums/index.ts +1 -0
  239. package/constants/writer/enums/tool-model-status.enum.ts +4 -0
  240. package/helpers/index.ts +2 -0
  241. package/helpers/presentation/calculate-presentation-ai-action-price.util.ts +20 -0
  242. package/helpers/presentation/index.ts +1 -0
  243. package/helpers/video-editor/calculate-video-editing-price.helper.ts +9 -0
  244. package/helpers/video-editor/index.ts +1 -0
  245. package/helpers/writer/calculate-writer-content-generation-price.util.ts +4 -2
  246. package/models/chat-with-messages.schema.ts +7 -0
  247. package/models/chat.schema.ts +0 -2
  248. package/models/index.ts +4 -0
  249. package/models/tools/index.ts +3 -0
  250. package/models/tools/music/index.ts +4 -0
  251. package/models/tools/music/music-config.schema.ts +6 -0
  252. package/models/tools/music/music-job.schema.ts +43 -0
  253. package/models/tools/music/music-model.schema.ts +33 -0
  254. package/models/tools/music/music-track.schema.ts +19 -0
  255. package/models/tools/presentation/index.ts +1 -0
  256. package/models/tools/presentation/presentation-ai-action.schema.ts +33 -0
  257. package/models/tools/presentation/presentation-config.schema.ts +3 -0
  258. package/models/tools/presentation/presentation.schema.ts +2 -0
  259. package/models/tools/presentation/slide-content-edit.schema.ts +154 -0
  260. package/models/tools/presentation/slide-content.schema.ts +119 -32
  261. package/models/tools/presentation/slide.schema.ts +47 -0
  262. package/models/tools/video-editor/index.ts +3 -0
  263. package/models/tools/video-editor/video-editor-config.schema.ts +6 -0
  264. package/models/tools/video-editor/video-editor-job.schema.ts +14 -0
  265. package/models/tools/video-editor/video-editor-model.schema.ts +24 -0
  266. package/models/tools/writer/writer-config.schema.ts +2 -0
  267. package/models/tools/writer/writer-document.schema.ts +3 -1
  268. package/models/tools/writer/writer-model.schema.ts +21 -0
  269. package/models/user-referrals.schema.ts +10 -0
  270. package/models/user-to-subscription.schema.ts +1 -0
  271. package/models/webmaster-balance.schema.ts +15 -0
  272. package/models/webmaster.schema.ts +18 -0
  273. package/package.json +1 -1
  274. package/build/commands/cabinet/get-user-statistics.command.js +0 -30
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { WebmasterWithBalanceSchema } from '../../models';
3
+
4
+ export namespace GetMyWebmasterCommand {
5
+ export type Request = void;
6
+
7
+ export const ResponseSchema = z.object({
8
+ data: WebmasterWithBalanceSchema,
9
+ });
10
+
11
+ export type Response = z.infer<typeof ResponseSchema>;
12
+ }
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ import { GROUP_BY } from '../../constants';
3
+
4
+ export namespace GetWebmasterBalanceOverviewCommand {
5
+ export const RequestSchema = z.object({
6
+ startDate: z.string().refine((v) => !isNaN(Date.parse(v)), {
7
+ message: 'from must be a valid date string',
8
+ }),
9
+ endDate: z.string().refine((v) => !isNaN(Date.parse(v)), {
10
+ message: 'to must be a valid date string',
11
+ }),
12
+ groupBy: z.nativeEnum(GROUP_BY).default(GROUP_BY.DAY),
13
+ });
14
+
15
+ export type Request = z.infer<typeof RequestSchema>;
16
+
17
+ export const WebmasterBalanceOverviewResponseSchema = z.object({
18
+ startDate: z.string(),
19
+ endDate: z.string(),
20
+ total_deposited: z.number(),
21
+ total_withdrawn: z.number(),
22
+ });
23
+
24
+ export const ResponseSchema = z.object({
25
+ data: z.array(WebmasterBalanceOverviewResponseSchema),
26
+ });
27
+
28
+ export type Response = z.infer<typeof ResponseSchema>;
29
+ }
@@ -0,0 +1,6 @@
1
+ export * from './create-webmaster.command';
2
+ export * from './update-webmaster.command';
3
+ export * from './get-my-webmaster.command';
4
+ export * from './get-webmaster-balance-overview.command';
5
+ export * from './create-withdrawal-request.command';
6
+ export * from './confirm-withdrawal.command';
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { WebmasterSchema } from '../../models';
3
+
4
+ export namespace UpdateWebmasterCommand {
5
+ export const RequestParamSchema = WebmasterSchema.pick({ uuid: true });
6
+
7
+ export type RequestParam = z.infer<typeof RequestParamSchema>;
8
+
9
+ export const RequestSchema = WebmasterSchema.partial();
10
+
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = z.object({
14
+ data: WebmasterSchema,
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -3,4 +3,5 @@ export enum AI_MODEL_CONFIG_PARAM {
3
3
  IMAGE_STYLE = 'image-style',
4
4
  WEB_SEARCH = 'web-search',
5
5
  EXTRA_SYMBOLS_PRICING = 'extra-symbols-pricing',
6
+ REASONING = 'reasoning',
6
7
  }
@@ -0,0 +1,5 @@
1
+ export enum GROUP_BY {
2
+ DAY = 'day',
3
+ WEEK = 'week',
4
+ MONTH = 'month',
5
+ }
@@ -0,0 +1 @@
1
+ export * from './group-by.enum';
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -2024,4 +2024,282 @@ export const ERRORS = {
2024
2024
  message: 'Ошибка при получении всех тулов',
2025
2025
  httpCode: 500,
2026
2026
  },
2027
+ VIDEO_EDITOR_CONFIG_ERROR: {
2028
+ code: 'A414',
2029
+ message: 'Произошла ошибка при получении конфигурации инструмента для редактирования видео',
2030
+ httpCode: 500,
2031
+ },
2032
+ VIDEO_EDITOR_SEND_REQUEST_ERROR: {
2033
+ code: 'A415',
2034
+ message: 'Произошла ошибка при отправке запроса на редактирование видео',
2035
+ httpCode: 500,
2036
+ },
2037
+ VIDEO_EDITOR_FIND_JOBS_ERROR: {
2038
+ code: 'A416',
2039
+ message: 'Произошла ошибка при получении списка заданий на редактирование видео',
2040
+ httpCode: 500,
2041
+ },
2042
+ VIDEO_EDITOR_FIND_JOB_ERROR: {
2043
+ code: 'A417',
2044
+ message: 'Произошла ошибка при получении задания на редактирование видео',
2045
+ httpCode: 500,
2046
+ },
2047
+ VIDEO_EDITOR_RETRY_JOB_ERROR: {
2048
+ code: 'A418',
2049
+ message: 'Произошла ошибка при повторном запросе на редактирование видео',
2050
+ httpCode: 500,
2051
+ },
2052
+ VIDEO_EDITOR_SET_REACTION_ERROR: {
2053
+ code: 'A419',
2054
+ message: 'Произошла ошибка при установке оценки задания на редактирование видео',
2055
+ httpCode: 500,
2056
+ },
2057
+ VIDEO_EDITOR_UPDATE_TITLE_ERROR: {
2058
+ code: 'A420',
2059
+ message: 'Произошла ошибка при обновлении названия задания на редактирование видео',
2060
+ httpCode: 500,
2061
+ },
2062
+ VIDEO_EDITOR_DELETE_JOB_ERROR: {
2063
+ code: 'A421',
2064
+ message: 'Произошла ошибка при удалении задания на редактирование видео',
2065
+ httpCode: 500,
2066
+ },
2067
+ VIDEO_EDITOR_DELETE_ALL_JOBS_ERROR: {
2068
+ code: 'A422',
2069
+ message: 'Произошла ошибка при удалении всех заданий на редактирование видео',
2070
+ httpCode: 500,
2071
+ },
2072
+ VIDEO_EDITOR_MODEL_NOT_FOUND: {
2073
+ code: 'A423',
2074
+ message: 'Не удалось найти указанную модель для редактирования видео',
2075
+ httpCode: 400,
2076
+ },
2077
+ VIDEO_EDITOR_MODEL_INACTIVE: {
2078
+ code: 'A424',
2079
+ message: 'Модель для редактирования видео неактивна',
2080
+ httpCode: 400,
2081
+ },
2082
+ VIDEO_EDITOR_MODEL_NOT_AVAILABLE: {
2083
+ code: 'A425',
2084
+ message: 'Модель для редактирования видео недоступна для данного пользователя',
2085
+ httpCode: 403,
2086
+ },
2087
+ VIDEO_EDITOR_FILE_SIZE_EXCEEDED: {
2088
+ code: 'A426',
2089
+ message: 'Размер файла превышает допустимый лимит для выбранной модели',
2090
+ httpCode: 400,
2091
+ },
2092
+ VIDEO_EDITOR_UNSUPPORTED_FORMAT: {
2093
+ code: 'A427',
2094
+ message: 'Формат файла не поддерживается выбранной моделью',
2095
+ httpCode: 400,
2096
+ },
2097
+ FILE_ACCESS_DENIED: {
2098
+ code: 'A428',
2099
+ message: 'Доступ к файлу запрещен',
2100
+ httpCode: 403,
2101
+ },
2102
+ VIDEO_EDITOR_FILE_DURATION_EXCEEDED: {
2103
+ code: 'A429',
2104
+ message: 'Продолжительность файла превышает допустимый лимит для выбранной модели',
2105
+ httpCode: 400,
2106
+ },
2107
+ WEBMASTER_CREATE_ERROR: {
2108
+ code: 'A430',
2109
+ message: 'Ошибка при создании вебмастера',
2110
+ httpCode: 500,
2111
+ },
2112
+ WEBMASTER_FIND_ERROR: {
2113
+ code: 'A431',
2114
+ message: 'Ошибка при получении вебмастера',
2115
+ httpCode: 500,
2116
+ },
2117
+ WEBMASTER_UPDATE_ERROR: {
2118
+ code: 'A432',
2119
+ message: 'Ошибка при обновлении вебмастера',
2120
+ httpCode: 500,
2121
+ },
2122
+ WEBMASTER_ALIAS_CONFLICT_ERROR: {
2123
+ code: 'A433',
2124
+ message: 'Выбранный alias уже занят',
2125
+ httpCode: 409,
2126
+ },
2127
+ WEBMASTER_NOT_FOUND_ERROR: {
2128
+ code: 'A434',
2129
+ message: 'Запрашиваемый вебмастер не найден',
2130
+ httpCode: 404,
2131
+ },
2132
+ WEBMASTER_OWNERSHIP_ERROR: {
2133
+ code: 'A435',
2134
+ message: 'Кабинет вебмастер не принадлежит юзеру, сделавшему запрос',
2135
+ httpCode: 401,
2136
+ },
2137
+ WEBMASTER_BALANCE_CREATE_ERROR: {
2138
+ code: 'A436',
2139
+ message: 'Ошибка при создании записи баланса вебмастера',
2140
+ httpCode: 500,
2141
+ },
2142
+ WEBMASTER_BALANCE_GET_ERROR: {
2143
+ code: 'A437',
2144
+ message: 'Ошибка при получении баланса вебмастера',
2145
+ httpCode: 500,
2146
+ },
2147
+ WEBMASTER_BALANCE_GET_OVERVIEW_ERROR: {
2148
+ code: 'A438',
2149
+ message: 'Не удалось получить историю баланса вебмастера',
2150
+ httpCode: 500,
2151
+ },
2152
+ WEBMASTER_INSUFFICIENT_BALANCE_ERROR: {
2153
+ code: 'A439',
2154
+ message: 'На балансе недостатчно средств для вывода',
2155
+ httpCode: 400,
2156
+ },
2157
+ WEBMASTER_SEND_WITHDRAWAL_REQUEST_ERROR: {
2158
+ code: 'A440',
2159
+ message: 'Произошла ошибка при отправке запроса на вывод средств в Telegram для вебмастера',
2160
+ httpCode: 500,
2161
+ },
2162
+ WEBMASTER_BALANCE_UPDATE_ERROR: {
2163
+ code: 'A441',
2164
+ message: 'Ошибка при обновлении записи баланса вебмастера',
2165
+ httpCode: 500,
2166
+ },
2167
+ WEBMASTER_PROMOCODE_CONFLICT_ERROR: {
2168
+ code: 'A442',
2169
+ message: 'Вебмастер не может создать промокод для самого себя',
2170
+ httpCode: 409,
2171
+ },
2172
+ WEBMASTER_CREATE_WITHDRAWAL_REQUEST_ERROR: {
2173
+ code: 'A443',
2174
+ message: 'Произошла ошибка при создании запроса на вывод средств для вебмастера',
2175
+ httpCode: 500,
2176
+ },
2177
+ TELEGRAM_SEND_TO_CHANNEL_ERROR: {
2178
+ code: 'A444',
2179
+ message: 'Произошла ошибка при отправке сообщения в телеграм канал',
2180
+ httpCode: 500,
2181
+ },
2182
+ WRITER_SET_REACTION_TO_WRITER_DOCUMENT_ERROR: {
2183
+ code: 'A445',
2184
+ message: 'Произошла ошибка при установке реакции на документ',
2185
+ httpCode: 500,
2186
+ },
2187
+ MUSIC_CONFIG_ERROR: {
2188
+ code: 'A446',
2189
+ message: 'Произошла ошибка при получении конфигурации инструмента для генерации музыки',
2190
+ httpCode: 500,
2191
+ },
2192
+ MUSIC_SEND_REQUEST_ERROR: {
2193
+ code: 'A447',
2194
+ message: 'Произошла ошибка при отправке запроса на генерацию музыки',
2195
+ httpCode: 500,
2196
+ },
2197
+ MUSIC_FIND_JOBS_ERROR: {
2198
+ code: 'A448',
2199
+ message: 'Произошла ошибка при получении списка заданий на генерацию музыки',
2200
+ httpCode: 500,
2201
+ },
2202
+ MUSIC_FIND_JOB_ERROR: {
2203
+ code: 'A449',
2204
+ message: 'Произошла ошибка при получении задания на генерацию музыки',
2205
+ httpCode: 500,
2206
+ },
2207
+ MUSIC_RETRY_JOB_ERROR: {
2208
+ code: 'A450',
2209
+ message: 'Произошла ошибка при повторном запросе на генерацию музыки',
2210
+ httpCode: 500,
2211
+ },
2212
+ MUSIC_SET_REACTION_ERROR: {
2213
+ code: 'A451',
2214
+ message: 'Произошла ошибка при установке оценки задания на генерацию музыки',
2215
+ httpCode: 500,
2216
+ },
2217
+ MUSIC_UPDATE_TITLE_ERROR: {
2218
+ code: 'A452',
2219
+ message: 'Произошла ошибка при обновлении названия задания на генерацию музыки',
2220
+ httpCode: 500,
2221
+ },
2222
+ MUSIC_DELETE_JOB_ERROR: {
2223
+ code: 'A453',
2224
+ message: 'Произошла ошибка при удалении задания на генерацию музыки',
2225
+ httpCode: 500,
2226
+ },
2227
+ MUSIC_DELETE_ALL_JOBS_ERROR: {
2228
+ code: 'A454',
2229
+ message: 'Произошла ошибка при удалении всех заданий на генерацию музыки',
2230
+ httpCode: 500,
2231
+ },
2232
+ MUSIC_MODEL_NOT_FOUND: {
2233
+ code: 'A455',
2234
+ message: 'Не удалось найти указанную модель для генерации музыки',
2235
+ httpCode: 400,
2236
+ },
2237
+ MUSIC_MODEL_INACTIVE: {
2238
+ code: 'A456',
2239
+ message: 'Модель для генерации музыки неактивна',
2240
+ httpCode: 400,
2241
+ },
2242
+ MUSIC_MODEL_NOT_AVAILABLE: {
2243
+ code: 'A457',
2244
+ message: 'Модель для генерации музыки недоступна для данного пользователя',
2245
+ httpCode: 403,
2246
+ },
2247
+ MUSIC_MAX_SYMBOLS_EXCEEDED: {
2248
+ code: 'A458',
2249
+ message: 'Превышена максимальная количество символов',
2250
+ },
2251
+ MUSIC_INVALID_VOCAL: {
2252
+ code: 'A459',
2253
+ message: 'Выбран неверный голос для вокала',
2254
+ },
2255
+ MUSIC_JOB_DELETE_ERROR: {
2256
+ code: 'A460',
2257
+ message: 'Произошла ошибка при удалении сообщения',
2258
+ httpCode: 500,
2259
+ },
2260
+ MUSIC_RETRY_REQUEST_ERROR: {
2261
+ code: 'A461',
2262
+ message: 'Произошла ошибка при повторном запросе на генерацию музыки',
2263
+ httpCode: 500,
2264
+ },
2265
+ MUSIC_LYRICS_GENERATION_ERROR: {
2266
+ code: 'A462',
2267
+ message: 'Произошла ошибка при запросе на генерацию текста песни',
2268
+ httpCode: 500,
2269
+ },
2270
+ MUSIC_CONVERT_TO_WAV_ERROR: {
2271
+ code: 'A463',
2272
+ message: 'Произошла ошибка при запросе на конвертацию mp3 в wav',
2273
+ httpCode: 500,
2274
+ },
2275
+ WRITER_MODEL_NOT_FOUND: {
2276
+ code: 'A464',
2277
+ message: 'Не удалось найти указанную модель для Writer',
2278
+ httpCode: 400,
2279
+ },
2280
+ WRITER_MODEL_INACTIVE: {
2281
+ code: 'A465',
2282
+ message: 'Модель Writer архивирована и недоступна для пользования',
2283
+ httpCode: 403,
2284
+ },
2285
+ WRITER_MODEL_ACCESS_DENIED: {
2286
+ code: 'A466',
2287
+ message: 'У вас нет доступа к этой модели Writer',
2288
+ httpCode: 403,
2289
+ },
2290
+ WEBMASTER_BONUS_APPLY_ERROR: {
2291
+ code: 'A449',
2292
+ message: 'Не удалось применить бонусы вебмастеру',
2293
+ httpCode: 500,
2294
+ },
2295
+ SLIDE_IMAGE_SLOT_UPDATE_ERROR: {
2296
+ code: 'A450',
2297
+ message: 'Произошла ошибка при обновлении изображения на слайде',
2298
+ httpCode: 500,
2299
+ },
2300
+ FILE_TYPE_NOT_SUPPORTED: {
2301
+ code: 'A451',
2302
+ message: 'Неподдерживаемый тип файла',
2303
+ httpCode: 400,
2304
+ },
2027
2305
  };
@@ -3,5 +3,6 @@ export enum FILE_TYPE {
3
3
  AUDIO = 'audio',
4
4
  TEXT = 'text',
5
5
  DOCUMENT = 'document',
6
+ VIDEO = 'video',
6
7
  OTHER = 'other',
7
8
  }
@@ -4,6 +4,7 @@ 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
6
  export const MAX_DOC_UPLOAD_SIZE = 20 * 1024 * 1024; // 20 MB
7
+ export const MAX_VIDEO_UPLOAD_SIZE = 500 * 1024 * 1024; // 500 MB
7
8
 
8
9
  export const SUPPORTED_FILES = new Map<
9
10
  string,
@@ -60,6 +61,9 @@ export const SUPPORTED_FILES = new Map<
60
61
  ], //.xlsx
61
62
 
62
63
  ['application/pdf', { type: FILE_TYPE.DOCUMENT, size: MAX_DOC_UPLOAD_SIZE }],
64
+
65
+ // Video formats
66
+ ['video/mp4', { type: FILE_TYPE.VIDEO, size: MAX_VIDEO_UPLOAD_SIZE }],
63
67
  ]);
64
68
 
65
69
  export const DELETE_UNUSED_FILES_AFTER_HOURS = 12;
@@ -31,7 +31,12 @@ export * from './promocode';
31
31
  export * from './ui-notification';
32
32
  export * from './review';
33
33
  export * from './tool-video';
34
+ export * from './tool-video-editor';
34
35
  export * from './writer';
35
36
  export * from './tool-image-editor';
36
37
  export * from './feedback';
37
38
  export * from './daily-streak';
39
+ export * from './cabinet';
40
+ export * from './webmaster';
41
+ export * from './webmaster-balance';
42
+ export * from './tool-music';
@@ -3,3 +3,7 @@ export * from './slide-content-type.enum';
3
3
  export * from './slide-icon-slot-status.enum';
4
4
  export * from './slide-image-slot.status.enum';
5
5
  export * from './slide-layout.enum';
6
+ export * from './slide-image-slot-action.enum';
7
+ export * from './presentation-ai-action-type.enum';
8
+ export * from './presentation-ai-action-pricing-type.enum';
9
+ export * from './presentation-ai-action-call-status.enum';
@@ -0,0 +1,5 @@
1
+ export enum PRESENTATION_AI_ACTION_CALL_STATUS {
2
+ PROCESSING = 'processing',
3
+ COMPLETED = 'completed',
4
+ FAILED = 'failed',
5
+ }
@@ -0,0 +1,4 @@
1
+ export enum PRESENTATION_AI_ACTION_PRICING_TYPE {
2
+ PER_CHARACTER = 'PER_CHARACTER',
3
+ FLAT = 'FLAT',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum PRESENTATION_AI_ACTION_TYPE {
2
+ PARAPHRASE = 'PARAPHRASE',
3
+ GENERATE_REPORT = 'GENERATE_REPORT',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum SLIDE_IMAGE_SLOT_ACTION {
2
+ REPLACE = 'REPLACE',
3
+ GENERATE = 'GENERATE',
4
+ }
@@ -0,0 +1,5 @@
1
+ export * from './suno-model-type.enum';
2
+ export * from './music-strategy.enum';
3
+ export * from './music-vocal-gender.enum';
4
+ export * from './music-pricing-rule-type.enum';
5
+ export * from './suno-mode-type.enum';
@@ -0,0 +1,3 @@
1
+ export enum MUSIC_PRICING_RULE_TYPE {
2
+ FLAT = 'flat',
3
+ }
@@ -0,0 +1,3 @@
1
+ export enum MUSIC_GENERATION_STRATEGY {
2
+ SUNO_POLLING = 'SUNO_POLLING',
3
+ }
@@ -0,0 +1,4 @@
1
+ export enum MUSIC_VOCAL_GENDER {
2
+ MALE = 'm',
3
+ FEMALE = 'f',
4
+ }
@@ -0,0 +1,6 @@
1
+ export enum SUNO_MODE_TYPE {
2
+ SIMPLE = 'simple',
3
+ SIMPLE_INSTRUMENTAL = 'simple_instrumental',
4
+ CUSTOM = 'custom',
5
+ CUSTOM_INSTRUMENTAL = 'custom_instrumental',
6
+ }
@@ -0,0 +1,6 @@
1
+ export enum SUNO_MODEL_TYPE {
2
+ V4 = 'V4',
3
+ V4_5 = 'V4_5',
4
+ V4_5PLUS = 'V4_5PLUS',
5
+ V5 = 'V5',
6
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -0,0 +1 @@
1
+ export * from './video-editor-model-strategy.enum';
@@ -0,0 +1,3 @@
1
+ export enum VIDEO_EDITOR_MODEL_STRATEGY {
2
+ LUMA_MODIFY_POLLING = 'LUMA_MODIFY_POLLING',
3
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -0,0 +1 @@
1
+ export * from './organization-type.enum';
@@ -0,0 +1,5 @@
1
+ export enum ORGANIZATION_TYPE {
2
+ INDIVIDUAL_ENTREPRENEUR = 'ИП',
3
+ LEGAL_ENTITY = 'Юридическое лицо',
4
+ SELF_EMPLOYED = 'Самозанятый',
5
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -0,0 +1,2 @@
1
+ export * from './webmaster-balance-type.enum';
2
+ export * from './webmaster-balance-status.enum';
@@ -0,0 +1,6 @@
1
+ export enum WEBMASTER_BALANCE_STATUS {
2
+ SUCCESS = 'success',
3
+ AWAITING_CONFIRMATION = 'awaiting_confirmation',
4
+ CANCELLED = 'cancelled',
5
+ TELEGRAM_ERROR = 'telegram_error',
6
+ }
@@ -0,0 +1,4 @@
1
+ export enum WEBMASTER_BALANCE_TYPE {
2
+ DEPOSIT = 'deposit',
3
+ WITHDRAWAL = 'withdrawal',
4
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -2,3 +2,4 @@ export * from './writer-document-section-type.enum';
2
2
  export * from './writer-document-stage.enum';
3
3
  export * from './writer-ai-action-pricing-type.enum';
4
4
  export * from './writer-ai-action-type.enum';
5
+ export * from './tool-model-status.enum';
@@ -0,0 +1,4 @@
1
+ export enum TOOL_MODEL_STATUS {
2
+ ACTIVE = 'active',
3
+ INACTIVE = 'inactive',
4
+ }
package/helpers/index.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from './ai-model';
2
+ export * from './presentation';
2
3
  export * from './stt';
3
4
  export * from './subscription';
4
5
  export * from './tts';
5
6
  export * from './video';
7
+ export * from './video-editor';
6
8
  export * from './writer';
@@ -0,0 +1,20 @@
1
+ import { PRESENTATION_AI_ACTION_PRICING_TYPE } from '../../constants';
2
+ import { PresentationAiActionPricingRules } from '../../models/tools/presentation';
3
+
4
+ export function calculatePresentationAiActionPrice(
5
+ pricingRules: PresentationAiActionPricingRules,
6
+ selectionText: string,
7
+ ): number {
8
+ switch (pricingRules.type) {
9
+ case PRESENTATION_AI_ACTION_PRICING_TYPE.PER_CHARACTER:
10
+ const characterCount = selectionText.length;
11
+ const price = characterCount * pricingRules.price;
12
+ return Math.max(1, Math.ceil(price));
13
+
14
+ case PRESENTATION_AI_ACTION_PRICING_TYPE.FLAT:
15
+ return Math.max(1, Math.ceil(pricingRules.price));
16
+
17
+ default:
18
+ throw new Error(`Unknown pricing type`);
19
+ }
20
+ }
@@ -0,0 +1 @@
1
+ export * from './calculate-presentation-ai-action-price.util';
@@ -0,0 +1,9 @@
1
+ export function calculateVideoEditingPrice({
2
+ duration,
3
+ pricePerSecond,
4
+ }: {
5
+ duration: number;
6
+ pricePerSecond: number;
7
+ }): number {
8
+ return Math.ceil(duration * pricePerSecond);
9
+ }
@@ -0,0 +1 @@
1
+ export * from './calculate-video-editing-price.helper';
@@ -1,3 +1,5 @@
1
- export function calculateWriterContentGenerationPrice(pages: number): number {
2
- return Math.max(1, pages);
1
+ import { WriterModel } from '../../models/tools/writer/writer-model.schema';
2
+
3
+ export function calculateWriterContentGenerationPrice(pages: number, aiModel: WriterModel): number {
4
+ return Math.max(1, pages * aiModel.pricePerPage);
3
5
  }
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ import { ChatSchema } from './chat.schema';
3
+ import { MessageSchema } from './message.schema';
4
+
5
+ export const ChatWithMessagesSchema = ChatSchema.extend({
6
+ messages: z.array(MessageSchema),
7
+ });
@@ -1,6 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  import { CHAT_STATUS_ENUM, TChatStatusEnum } from '../constants';
3
- import { MessageSchema } from './message.schema';
4
3
 
5
4
  export const ChatSchema = z.object({
6
5
  uuid: z.string().uuid(),
@@ -10,7 +9,6 @@ export const ChatSchema = z.object({
10
9
  aIModelId: z.string().uuid(),
11
10
  title: z.string(),
12
11
  chatStatus: z.enum(Object.values(CHAT_STATUS_ENUM) as [TChatStatusEnum]),
13
- messages: z.array(MessageSchema),
14
12
  folderId: z.string().nullable(),
15
13
 
16
14
  createdAt: z.date(),
package/models/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from './ai-model-formatted.schema';
4
4
  export * from './ai-model.schema';
5
5
  export * from './ai-vendor.schema';
6
6
  export * from './category.schema';
7
+ export * from './chat-with-messages.schema';
7
8
  export * from './chat.schema';
8
9
  export * from './cloud-payments-receipt.schema';
9
10
  export * from './course-author.schema';
@@ -49,3 +50,6 @@ export * from './folder.schema';
49
50
  export * from './filters.schema';
50
51
  export * from './users-filter-notification.schema';
51
52
  export * from './daily-streak';
53
+ export * from './webmaster.schema';
54
+ export * from './webmaster-balance.schema';
55
+ export * from './user-referrals.schema';