@purpleschool/gptbot 0.7.58-presentations → 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 (234) 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/tool.ts +1 -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/tool.js +1 -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/check-limit.command.js +1 -0
  24. package/build/commands/index.js +1 -0
  25. package/build/commands/message/create-suggestions.command.js +1 -1
  26. package/build/commands/product/buy-product.command.js +4 -0
  27. package/build/commands/subscription/buy-subscription.command.js +4 -0
  28. package/build/commands/telegram-auth/create-telegram-auth-link.command.js +2 -0
  29. package/build/commands/telegram-profile/auth-with-telegram-web-app.command.js +4 -0
  30. package/build/commands/telegram-profile/bot-was-blocked-by-user.command.js +11 -0
  31. package/build/commands/telegram-profile/index.js +2 -0
  32. package/build/commands/telegram-profile/user-joined-telegram.command.js +11 -0
  33. package/build/commands/tools/index.js +2 -0
  34. package/build/commands/tools/music/convert-to-wav.command.js +16 -0
  35. package/build/commands/tools/music/delete-all-music-jobs.command.js +8 -0
  36. package/build/commands/tools/music/delete-music-job-by-uuid.command.js +11 -0
  37. package/build/commands/tools/music/find-music-job-by-uuid.command.js +14 -0
  38. package/build/commands/tools/music/find-music-jobs.command.js +18 -0
  39. package/build/commands/tools/music/generate-lyrics.command.js +16 -0
  40. package/build/commands/tools/music/generate-music.command.js +15 -0
  41. package/build/commands/tools/music/get-music-tool-config.command.js +11 -0
  42. package/build/commands/tools/music/index.js +27 -0
  43. package/build/commands/tools/music/retry-music-job.command.js +14 -0
  44. package/build/commands/tools/music/set-reaction-to-music-job.command.js +18 -0
  45. package/build/commands/tools/music/update-music-job-title.command.js +17 -0
  46. package/build/commands/tools/tool/find-formatted-tools.command.js +11 -0
  47. package/build/commands/tools/tool/index.js +1 -0
  48. package/build/commands/tools/video-editor/delete-all-video-editor-jobs.command.js +11 -0
  49. package/build/commands/tools/video-editor/delete-video-editor-job-by-uuid.command.js +14 -0
  50. package/build/commands/tools/video-editor/edit-video.command.js +16 -0
  51. package/build/commands/tools/video-editor/find-video-editor-job-by-id.command.js +14 -0
  52. package/build/commands/tools/video-editor/find-video-editor-jobs.command.js +18 -0
  53. package/build/commands/tools/video-editor/get-video-editor-config.command.js +14 -0
  54. package/build/commands/tools/video-editor/index.js +25 -0
  55. package/build/commands/tools/video-editor/retry-video-editor-job.command.js +14 -0
  56. package/build/commands/tools/video-editor/set-reaction-to-video-editor-job.command.js +18 -0
  57. package/build/commands/tools/video-editor/update-video-editor-job-title.command.js +17 -0
  58. package/build/commands/tools/writer/generate-writer-document-contents.command.js +3 -0
  59. package/build/commands/tools/writer/index.js +1 -0
  60. package/build/commands/tools/writer/set-reaction.writer-document.command.js +18 -0
  61. package/build/commands/user/get-aggregated-user-data.command.js +1 -1
  62. package/build/commands/user/get-me.command.js +1 -0
  63. package/build/commands/webmaster/confirm-withdrawal.command.js +14 -0
  64. package/build/commands/webmaster/create-webmaster.command.js +16 -0
  65. package/build/commands/webmaster/create-withdrawal-request.command.js +16 -0
  66. package/build/commands/webmaster/get-my-webmaster.command.js +11 -0
  67. package/build/commands/webmaster/get-webmaster-balance-overview.command.js +26 -0
  68. package/build/commands/webmaster/index.js +22 -0
  69. package/build/commands/webmaster/update-webmaster.command.js +13 -0
  70. package/build/constants/ai-model/enums/ai-model-config-selector-type.enum.js +1 -0
  71. package/build/constants/cabinet/enums/group-by.enum.js +9 -0
  72. package/build/constants/cabinet/enums/index.js +17 -0
  73. package/build/constants/cabinet/index.js +17 -0
  74. package/build/constants/errors/errors.js +280 -2
  75. package/build/constants/file/enums/file-type.enum.js +1 -0
  76. package/build/constants/file/file.constants.js +4 -1
  77. package/build/constants/index.js +5 -0
  78. package/build/constants/subscription/enums/subscription-feature-type.enum.js +3 -0
  79. package/build/constants/tool-music/enums/index.js +21 -0
  80. package/build/constants/tool-music/enums/music-pricing-rule-type.enum.js +7 -0
  81. package/build/constants/tool-music/enums/music-strategy.enum.js +7 -0
  82. package/build/constants/tool-music/enums/music-vocal-gender.enum.js +8 -0
  83. package/build/constants/tool-music/enums/suno-mode-type.enum.js +10 -0
  84. package/build/constants/tool-music/enums/suno-model-type.enum.js +10 -0
  85. package/build/constants/tool-music/index.js +17 -0
  86. package/build/constants/tool-video-editor/enums/index.js +17 -0
  87. package/build/constants/tool-video-editor/enums/video-editor-model-strategy.enum.js +7 -0
  88. package/build/constants/tool-video-editor/index.js +17 -0
  89. package/build/constants/transaction/enums/user-balance-status.enum.js +1 -0
  90. package/build/constants/webmaster/enums/index.js +17 -0
  91. package/build/constants/webmaster/enums/organization-type.enum.js +9 -0
  92. package/build/constants/webmaster/index.js +17 -0
  93. package/build/constants/webmaster-balance/enums/index.js +18 -0
  94. package/build/constants/webmaster-balance/enums/webmaster-balance-status.enum.js +10 -0
  95. package/build/constants/webmaster-balance/enums/webmaster-balance-type.enum.js +8 -0
  96. package/build/constants/webmaster-balance/index.js +17 -0
  97. package/build/constants/writer/enums/index.js +1 -0
  98. package/build/constants/writer/enums/tool-model-status.enum.js +8 -0
  99. package/build/helpers/index.js +1 -0
  100. package/build/helpers/video-editor/calculate-video-editing-price.helper.js +6 -0
  101. package/build/helpers/video-editor/index.js +17 -0
  102. package/build/helpers/writer/calculate-writer-content-generation-price.util.js +2 -2
  103. package/build/models/index.js +3 -0
  104. package/build/models/page.schema.js +2 -0
  105. package/build/models/subscription-feature.schema.js +26 -1
  106. package/build/models/subscription.schema.js +1 -0
  107. package/build/models/tool.schema.js +8 -1
  108. package/build/models/tools/index.js +2 -0
  109. package/build/models/tools/music/index.js +20 -0
  110. package/build/models/tools/music/music-config.schema.js +8 -0
  111. package/build/models/tools/music/music-job.schema.js +40 -0
  112. package/build/models/tools/music/music-model.schema.js +32 -0
  113. package/build/models/tools/music/music-track.schema.js +17 -0
  114. package/build/models/tools/video-editor/index.js +19 -0
  115. package/build/models/tools/video-editor/video-editor-config.schema.js +8 -0
  116. package/build/models/tools/video-editor/video-editor-job.schema.js +14 -0
  117. package/build/models/tools/video-editor/video-editor-model.schema.js +25 -0
  118. package/build/models/tools/writer/writer-config.schema.js +2 -0
  119. package/build/models/tools/writer/writer-document.schema.js +2 -0
  120. package/build/models/tools/writer/writer-model.schema.js +21 -0
  121. package/build/models/user-referrals.schema.js +15 -0
  122. package/build/models/user-to-subscription.schema.js +2 -0
  123. package/build/models/webmaster-balance.schema.js +19 -0
  124. package/build/models/webmaster.schema.js +21 -0
  125. package/commands/auth/register-user.command.ts +3 -5
  126. package/commands/auth/vk-login.command.ts +9 -6
  127. package/commands/auth/yandex-login.command.ts +7 -4
  128. package/commands/cabinet/get-user-statistics-by-month.command.ts +25 -0
  129. package/commands/cabinet/{get-user-statistics.command.ts → get-user-statistics-overview.command.ts} +5 -12
  130. package/commands/cabinet/index.ts +2 -1
  131. package/commands/chat/check-limit.command.ts +1 -0
  132. package/commands/index.ts +1 -0
  133. package/commands/message/create-suggestions.command.ts +1 -1
  134. package/commands/product/buy-product.command.ts +4 -0
  135. package/commands/subscription/buy-subscription.command.ts +4 -0
  136. package/commands/telegram-auth/create-telegram-auth-link.command.ts +5 -0
  137. package/commands/telegram-profile/auth-with-telegram-web-app.command.ts +4 -0
  138. package/commands/telegram-profile/bot-was-blocked-by-user.command.ts +13 -0
  139. package/commands/telegram-profile/index.ts +2 -0
  140. package/commands/telegram-profile/user-joined-telegram.command.ts +13 -0
  141. package/commands/tools/index.ts +2 -0
  142. package/commands/tools/music/convert-to-wav.command.ts +17 -0
  143. package/commands/tools/music/delete-all-music-jobs.command.ts +6 -0
  144. package/commands/tools/music/delete-music-job-by-uuid.command.ts +11 -0
  145. package/commands/tools/music/find-music-job-by-uuid.command.ts +16 -0
  146. package/commands/tools/music/find-music-jobs.command.ts +18 -0
  147. package/commands/tools/music/generate-lyrics.command.ts +17 -0
  148. package/commands/tools/music/generate-music.command.ts +16 -0
  149. package/commands/tools/music/get-music-tool-config.command.ts +10 -0
  150. package/commands/tools/music/index.ts +11 -0
  151. package/commands/tools/music/retry-music-job.command.ts +14 -0
  152. package/commands/tools/music/set-reaction-to-music-job.command.ts +20 -0
  153. package/commands/tools/music/update-music-job-title.command.ts +19 -0
  154. package/commands/tools/tool/find-formatted-tools.command.ts +11 -0
  155. package/commands/tools/tool/index.ts +1 -0
  156. package/commands/tools/video-editor/delete-all-video-editor-jobs.command.ts +13 -0
  157. package/commands/tools/video-editor/delete-video-editor-job-by-uuid.command.ts +16 -0
  158. package/commands/tools/video-editor/edit-video.command.ts +18 -0
  159. package/commands/tools/video-editor/find-video-editor-job-by-id.command.ts +16 -0
  160. package/commands/tools/video-editor/find-video-editor-jobs.command.ts +18 -0
  161. package/commands/tools/video-editor/get-video-editor-config.command.ts +16 -0
  162. package/commands/tools/video-editor/index.ts +9 -0
  163. package/commands/tools/video-editor/retry-video-editor-job.command.ts +16 -0
  164. package/commands/tools/video-editor/set-reaction-to-video-editor-job.command.ts +21 -0
  165. package/commands/tools/video-editor/update-video-editor-job-title.command.ts +20 -0
  166. package/commands/tools/writer/generate-writer-document-contents.command.ts +5 -0
  167. package/commands/tools/writer/index.ts +1 -0
  168. package/commands/tools/writer/set-reaction.writer-document.command.ts +21 -0
  169. package/commands/user/get-aggregated-user-data.command.ts +1 -1
  170. package/commands/user/get-me.command.ts +1 -0
  171. package/commands/webmaster/confirm-withdrawal.command.ts +16 -0
  172. package/commands/webmaster/create-webmaster.command.ts +18 -0
  173. package/commands/webmaster/create-withdrawal-request.command.ts +18 -0
  174. package/commands/webmaster/get-my-webmaster.command.ts +12 -0
  175. package/commands/webmaster/get-webmaster-balance-overview.command.ts +29 -0
  176. package/commands/webmaster/index.ts +6 -0
  177. package/commands/webmaster/update-webmaster.command.ts +18 -0
  178. package/constants/ai-model/enums/ai-model-config-selector-type.enum.ts +1 -0
  179. package/constants/cabinet/enums/group-by.enum.ts +5 -0
  180. package/constants/cabinet/enums/index.ts +1 -0
  181. package/constants/cabinet/index.ts +1 -0
  182. package/constants/errors/errors.ts +280 -2
  183. package/constants/file/enums/file-type.enum.ts +1 -0
  184. package/constants/file/file.constants.ts +4 -0
  185. package/constants/index.ts +5 -0
  186. package/constants/subscription/enums/subscription-feature-type.enum.ts +3 -0
  187. package/constants/tool-music/enums/index.ts +5 -0
  188. package/constants/tool-music/enums/music-pricing-rule-type.enum.ts +3 -0
  189. package/constants/tool-music/enums/music-strategy.enum.ts +3 -0
  190. package/constants/tool-music/enums/music-vocal-gender.enum.ts +4 -0
  191. package/constants/tool-music/enums/suno-mode-type.enum.ts +6 -0
  192. package/constants/tool-music/enums/suno-model-type.enum.ts +6 -0
  193. package/constants/tool-music/index.ts +1 -0
  194. package/constants/tool-video-editor/enums/index.ts +1 -0
  195. package/constants/tool-video-editor/enums/video-editor-model-strategy.enum.ts +3 -0
  196. package/constants/tool-video-editor/index.ts +1 -0
  197. package/constants/transaction/enums/user-balance-status.enum.ts +1 -0
  198. package/constants/webmaster/enums/index.ts +1 -0
  199. package/constants/webmaster/enums/organization-type.enum.ts +5 -0
  200. package/constants/webmaster/index.ts +1 -0
  201. package/constants/webmaster-balance/enums/index.ts +2 -0
  202. package/constants/webmaster-balance/enums/webmaster-balance-status.enum.ts +6 -0
  203. package/constants/webmaster-balance/enums/webmaster-balance-type.enum.ts +4 -0
  204. package/constants/webmaster-balance/index.ts +1 -0
  205. package/constants/writer/enums/index.ts +1 -0
  206. package/constants/writer/enums/tool-model-status.enum.ts +4 -0
  207. package/helpers/index.ts +1 -0
  208. package/helpers/video-editor/calculate-video-editing-price.helper.ts +9 -0
  209. package/helpers/video-editor/index.ts +1 -0
  210. package/helpers/writer/calculate-writer-content-generation-price.util.ts +4 -2
  211. package/models/index.ts +3 -0
  212. package/models/page.schema.ts +2 -0
  213. package/models/subscription-feature.schema.ts +30 -0
  214. package/models/subscription.schema.ts +1 -0
  215. package/models/tool.schema.ts +13 -0
  216. package/models/tools/index.ts +2 -0
  217. package/models/tools/music/index.ts +4 -0
  218. package/models/tools/music/music-config.schema.ts +6 -0
  219. package/models/tools/music/music-job.schema.ts +43 -0
  220. package/models/tools/music/music-model.schema.ts +33 -0
  221. package/models/tools/music/music-track.schema.ts +19 -0
  222. package/models/tools/video-editor/index.ts +3 -0
  223. package/models/tools/video-editor/video-editor-config.schema.ts +6 -0
  224. package/models/tools/video-editor/video-editor-job.schema.ts +14 -0
  225. package/models/tools/video-editor/video-editor-model.schema.ts +24 -0
  226. package/models/tools/writer/writer-config.schema.ts +2 -0
  227. package/models/tools/writer/writer-document.schema.ts +3 -1
  228. package/models/tools/writer/writer-model.schema.ts +21 -0
  229. package/models/user-referrals.schema.ts +10 -0
  230. package/models/user-to-subscription.schema.ts +2 -0
  231. package/models/webmaster-balance.schema.ts +15 -0
  232. package/models/webmaster.schema.ts +18 -0
  233. package/package.json +1 -1
  234. package/build/commands/cabinet/get-user-statistics.command.js +0 -30
@@ -2014,13 +2014,291 @@ export const ERRORS = {
2014
2014
  message: 'не удалось получить статистику пользователя',
2015
2015
  httpCode: 500,
2016
2016
  },
2017
- SLIDE_IMAGE_SLOT_UPDATE_ERROR: {
2017
+ TOOL_GET_FORMATTED_ERROR: {
2018
2018
  code: 'A412',
2019
+ message: 'Ошибка при получении отформатированных тулов',
2020
+ httpCode: 500,
2021
+ },
2022
+ TOOL_FIND_ALL_ERROR: {
2023
+ code: 'A413',
2024
+ message: 'Ошибка при получении всех тулов',
2025
+ httpCode: 500,
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',
2019
2297
  message: 'Произошла ошибка при обновлении изображения на слайде',
2020
2298
  httpCode: 500,
2021
2299
  },
2022
2300
  FILE_TYPE_NOT_SUPPORTED: {
2023
- code: 'A413',
2301
+ code: 'A451',
2024
2302
  message: 'Неподдерживаемый тип файла',
2025
2303
  httpCode: 400,
2026
2304
  },
@@ -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';
@@ -14,6 +14,8 @@ export enum SUBSCRIPTION_FEATURE_TYPE {
14
14
  VIDEO_MODEL_ACCESS = 'video_model_access',
15
15
  EXTENDED_CONTEXT = 'extended_context',
16
16
  PRESENTATION_QUOTA = 'presentation_quota',
17
+ TOKENS = 'tokens',
18
+ CARRYOVER_BALANCE = 'carryover_balance',
17
19
  }
18
20
 
19
21
  export enum SUBSCRIPTION_FEATURE_KIND {
@@ -25,4 +27,5 @@ export enum SUBSCRIPTION_FEATURE_KIND {
25
27
  PRESENTATIONS = 'presentations',
26
28
  VIDEO = 'video',
27
29
  PRESENTATION = 'presentation',
30
+ BASE = 'base',
28
31
  }
@@ -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';
@@ -1,6 +1,7 @@
1
1
  export enum USER_BALANCE_STATUS {
2
2
  bonus_balance = 'bonus_balance',
3
3
  subscription_balance = 'subscription_balance',
4
+ carried_over_balance = 'carried_over_balance',
4
5
  product_balance = 'product_balance',
5
6
  referral_bonus_balance = 'referral_bonus_balance',
6
7
  }
@@ -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
@@ -4,4 +4,5 @@ export * from './stt';
4
4
  export * from './subscription';
5
5
  export * from './tts';
6
6
  export * from './video';
7
+ export * from './video-editor';
7
8
  export * from './writer';
@@ -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
  }
package/models/index.ts CHANGED
@@ -50,3 +50,6 @@ export * from './folder.schema';
50
50
  export * from './filters.schema';
51
51
  export * from './users-filter-notification.schema';
52
52
  export * from './daily-streak';
53
+ export * from './webmaster.schema';
54
+ export * from './webmaster-balance.schema';
55
+ export * from './user-referrals.schema';
@@ -12,6 +12,8 @@ export const PageSchema = z.object({
12
12
  categoryId: z.string().uuid().nullable().optional(),
13
13
  aIModelId: z.string().uuid().nullable().optional(),
14
14
  toolId: z.string().uuid().nullable().optional(),
15
+ toolOptionId: z.string().uuid().nullable().optional(),
16
+ toolTitle: z.string().nullable(),
15
17
  type: z.nativeEnum(PageType),
16
18
 
17
19
  createdAt: z.date(),
@@ -12,6 +12,34 @@ export const SubscriptionFeatureBaseSchema = z.object({
12
12
  });
13
13
  export type SubscriptionFeatureBase = z.infer<typeof SubscriptionFeatureBaseSchema>;
14
14
 
15
+ const SubscriptionFeatureIconsSchema = z.object({
16
+ light: z.object({
17
+ png: z.string(),
18
+ svg: z.string(),
19
+ }),
20
+ dark: z.object({
21
+ png: z.string(),
22
+ svg: z.string(),
23
+ }),
24
+ });
25
+
26
+ export const TokensFeatureSchema = SubscriptionFeatureBaseSchema.extend({
27
+ kind: z.literal(SUBSCRIPTION_FEATURE_KIND.BASE),
28
+ type: z.literal(SUBSCRIPTION_FEATURE_TYPE.TOKENS),
29
+ tokens: z.number(),
30
+ icons: SubscriptionFeatureIconsSchema,
31
+ });
32
+ export type TokensFeature = z.infer<typeof TokensFeatureSchema>;
33
+
34
+ export const CarryoverBalanceFeatureSchema = SubscriptionFeatureBaseSchema.extend({
35
+ kind: z.literal(SUBSCRIPTION_FEATURE_KIND.BASE),
36
+ type: z.literal(SUBSCRIPTION_FEATURE_TYPE.CARRYOVER_BALANCE),
37
+ isAvailable: z.boolean(),
38
+ tooltip: z.array(z.string()),
39
+ icons: SubscriptionFeatureIconsSchema,
40
+ });
41
+ export type CarryoverBalanceFeature = z.infer<typeof CarryoverBalanceFeatureSchema>;
42
+
15
43
  export const AiModelAccessFeatureSchema = SubscriptionFeatureBaseSchema.extend({
16
44
  type: z.literal(SUBSCRIPTION_FEATURE_TYPE.AI_MODEL_ACCESS),
17
45
  kind: z.literal(SUBSCRIPTION_FEATURE_KIND.AI_MODEL),
@@ -134,6 +162,8 @@ export const SubscriptionFeatureSchema = z.union([
134
162
  VideoModelAccessFeatureSchema,
135
163
  ExtendedContextFeatureSchema,
136
164
  PresentationQuotaFeatureSchema,
165
+ TokensFeatureSchema,
166
+ CarryoverBalanceFeatureSchema,
137
167
  ]);
138
168
 
139
169
  export type SubscriptionFeature = z.infer<typeof SubscriptionFeatureSchema>;
@@ -28,6 +28,7 @@ export const SubscriptionSchema = z.object({
28
28
  features: z.array(SubscriptionFeatureSchema),
29
29
  maxInputLength: z.number(),
30
30
  maxInputTokens: z.number(),
31
+ carryoverPercent: z.number(),
31
32
  createdAt: z.date(),
32
33
  updatedAt: z.date(),
33
34
  });
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { PageSchema } from './page.schema';
2
3
 
3
4
  export const ToolSchema = z.object({
4
5
  uuid: z.string().uuid(),
@@ -6,4 +7,16 @@ export const ToolSchema = z.object({
6
7
  description: z.string(),
7
8
  icon: z.string(),
8
9
  order: z.number(),
10
+ contentType: z.string(),
9
11
  });
12
+
13
+ export const ToolFormattedSchema = z.intersection(
14
+ ToolSchema,
15
+ z.object({
16
+ pages: z.array(
17
+ PageSchema.pick({ alias: true, toolTitle: true, toolOptionId: true })
18
+ .optional()
19
+ .nullable(),
20
+ ),
21
+ }),
22
+ );
@@ -6,3 +6,5 @@ export * from './tts';
6
6
  export * from './video';
7
7
  export * from './writer';
8
8
  export * from './image-editor';
9
+ export * from './video-editor';
10
+ export * from './music';
@@ -0,0 +1,4 @@
1
+ export * from './music-config.schema';
2
+ export * from './music-job.schema';
3
+ export * from './music-model.schema';
4
+ export * from './music-track.schema';
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import { MusicModelSchema } from './music-model.schema';
3
+
4
+ export const MusicConfigSchema = z.object({
5
+ models: z.array(MusicModelSchema),
6
+ });
@@ -0,0 +1,43 @@
1
+ import { z } from 'zod';
2
+ import { ToolJobSchema } from '../../tool-job.schema';
3
+ import { MUSIC_VOCAL_GENDER, SUNO_MODE_TYPE, USER_REACTION } from '../../../constants';
4
+ import { MusicTrackSchema } from './music-track.schema';
5
+
6
+ export const MusicJobParamsSchema = z.discriminatedUnion('mode', [
7
+ z.object({
8
+ mode: z.literal(SUNO_MODE_TYPE.SIMPLE),
9
+ prompt: z.string().min(1).max(450),
10
+ style: z.string(),
11
+ vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER),
12
+ }),
13
+ z.object({
14
+ mode: z.literal(SUNO_MODE_TYPE.SIMPLE_INSTRUMENTAL),
15
+ prompt: z.string().min(1).max(450),
16
+ style: z.string(),
17
+ }),
18
+ z.object({
19
+ mode: z.literal(SUNO_MODE_TYPE.CUSTOM),
20
+ prompt: z.string().min(1).max(5000),
21
+ title: z.string().min(1).max(80),
22
+ style: z.string().min(1).max(1000),
23
+ vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER),
24
+ }),
25
+ z.object({
26
+ mode: z.literal(SUNO_MODE_TYPE.CUSTOM_INSTRUMENTAL),
27
+ title: z.string().min(1).max(80),
28
+ style: z.string().min(1).max(1000),
29
+ }),
30
+ ]);
31
+
32
+ export type MusicJobParams = z.infer<typeof MusicJobParamsSchema>;
33
+
34
+ export const MusicJobSchema = ToolJobSchema.extend({
35
+ title: z.string(),
36
+ prompt: z.string(),
37
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
38
+ tracks: z.array(MusicTrackSchema),
39
+ params: MusicJobParamsSchema,
40
+ modelId: z.string(),
41
+ });
42
+
43
+ export type MusicJob = z.infer<typeof MusicJobSchema>;