@purpleschool/multisite 0.0.3 → 0.0.4

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 (208) hide show
  1. package/api/controller/http/ai-proxy.ts +6 -0
  2. package/api/controller/http/auth.ts +14 -0
  3. package/api/controller/http/cloud-payments.ts +5 -0
  4. package/api/controller/http/file.ts +6 -0
  5. package/api/controller/http/health.ts +3 -0
  6. package/api/controller/http/image-editor.ts +15 -0
  7. package/api/controller/http/image-generation.ts +15 -0
  8. package/api/controller/http/index.ts +16 -0
  9. package/api/controller/http/marketplace-card.ts +15 -0
  10. package/api/controller/http/page-question.ts +9 -0
  11. package/api/controller/http/page.ts +12 -0
  12. package/api/controller/http/payment.ts +5 -0
  13. package/api/controller/http/product.ts +7 -0
  14. package/api/controller/http/subscription.ts +7 -0
  15. package/api/controller/http/transaction.ts +5 -0
  16. package/api/controller/http/unregistered-user.ts +1 -0
  17. package/api/controller/http/user.ts +5 -0
  18. package/api/controller/index.ts +1 -0
  19. package/api/index.ts +2 -0
  20. package/api/routes.ts +109 -0
  21. package/commands/auth/create-user.command.ts +18 -0
  22. package/commands/auth/index.ts +9 -0
  23. package/commands/auth/login.command.ts +17 -0
  24. package/commands/auth/register.command.ts +20 -0
  25. package/commands/auth/reset-password.command.ts +19 -0
  26. package/commands/auth/restore-password.command.ts +16 -0
  27. package/commands/auth/verify-email-retry.command.ts +17 -0
  28. package/commands/auth/verify-email.command.ts +18 -0
  29. package/commands/auth/vk-login.command.ts +21 -0
  30. package/commands/auth/yandex-login.command.ts +19 -0
  31. package/commands/file/index.ts +1 -0
  32. package/commands/file/upload-file.command.ts +9 -0
  33. package/commands/image-editor/execute-image-editor.command.ts +18 -0
  34. package/commands/image-editor/index.ts +7 -0
  35. package/commands/image-editor/proxy-image-editor-callback.command.ts +15 -0
  36. package/commands/image-editor/retry-image-editor-job.command.ts +17 -0
  37. package/commands/image-editor/set-reaction-to-image-editor-job.command.ts +18 -0
  38. package/commands/image-editor/soft-delete-image-editor-job-by-uuid.command.ts +8 -0
  39. package/commands/image-editor/soft-delete-image-editor-jobs-by-criteria.command.ts +8 -0
  40. package/commands/image-editor/update-image-editor-job-title.command.ts +16 -0
  41. package/commands/image-generation/execute-image-generation.command.ts +19 -0
  42. package/commands/image-generation/index.ts +7 -0
  43. package/commands/image-generation/proxy-image-generation-callback.command.ts +21 -0
  44. package/commands/image-generation/retry-image-generation-job.command.ts +19 -0
  45. package/commands/image-generation/set-reaction-to-image-generation-job.command.ts +28 -0
  46. package/commands/image-generation/soft-delete-image-generation-job-by-uuid.command.ts +9 -0
  47. package/commands/image-generation/soft-delete-image-generation-jobs-by-criteria.command.ts +9 -0
  48. package/commands/image-generation/update-image-generation-job-title.command.ts +16 -0
  49. package/commands/index.ts +11 -0
  50. package/commands/marketplace-card/execute-marketplace-card.command.ts +12 -0
  51. package/commands/marketplace-card/index.ts +6 -0
  52. package/commands/marketplace-card/retry-marketplace-card-job.command.ts +27 -0
  53. package/commands/marketplace-card/set-reaction-to-marketplace-card-job.command.ts +21 -0
  54. package/commands/marketplace-card/soft-delete-marketplace-card-job-by-uuid.command.ts +13 -0
  55. package/commands/marketplace-card/soft-delete-marketplace-card-jobs-by-criteria.command.ts +8 -0
  56. package/commands/marketplace-card/update-marketplace-card-job-title.command.ts +19 -0
  57. package/commands/page/create-page-question.command.ts +18 -0
  58. package/commands/page/create-page.command.ts +18 -0
  59. package/commands/page/delete-page-question.command.ts +14 -0
  60. package/commands/page/delete-page.command.ts +12 -0
  61. package/commands/page/find-page-by-alias.command.ts +28 -0
  62. package/commands/page/find-page-by-criteria.command.ts +24 -0
  63. package/commands/page/find-page.command.ts +22 -0
  64. package/commands/page/index.ts +9 -0
  65. package/commands/page/update-page-question.command.ts +24 -0
  66. package/commands/page/update-page.command.ts +24 -0
  67. package/commands/payment/cloud-payments.command.ts +53 -0
  68. package/commands/payment/index.ts +1 -0
  69. package/commands/product/buy-product.command.ts +19 -0
  70. package/commands/product/index.ts +1 -0
  71. package/commands/subscription/buy-subscription.command.ts +19 -0
  72. package/commands/subscription/index.ts +1 -0
  73. package/commands/transaction/index.ts +1 -0
  74. package/commands/transaction/write-off.command.ts +19 -0
  75. package/commands/unregistered-user/index.ts +1 -0
  76. package/commands/unregistered-user/upsert-unregistered-user.command.ts +16 -0
  77. package/constants/common/enums/index.ts +1 -0
  78. package/constants/common/enums/user-reaction.enum.ts +4 -0
  79. package/constants/common/index.ts +1 -0
  80. package/constants/email/email-endpoint.ts +1 -0
  81. package/constants/email/index.ts +2 -0
  82. package/constants/email/subjects.ts +12 -0
  83. package/constants/errors/errors.ts +682 -0
  84. package/constants/errors/index.ts +1 -0
  85. package/constants/files/enums/file-type.enum.ts +3 -0
  86. package/constants/files/enums/index.ts +1 -0
  87. package/constants/files/index.ts +1 -0
  88. package/constants/image-editor/enums/image-editing-strategy.enum.ts +9 -0
  89. package/constants/image-editor/enums/image-editor-model-type.enum.ts +5 -0
  90. package/constants/image-editor/enums/index.ts +2 -0
  91. package/constants/image-editor/index.ts +1 -0
  92. package/constants/image-generation/enums/image-generation-model-strategy.enum.ts +15 -0
  93. package/constants/image-generation/enums/image-generation-resolution.enum.ts +5 -0
  94. package/constants/image-generation/enums/index.ts +2 -0
  95. package/constants/image-generation/index.ts +1 -0
  96. package/constants/index.ts +15 -0
  97. package/constants/order/enums/index.ts +2 -0
  98. package/constants/order/enums/order-status.enum.ts +5 -0
  99. package/constants/order/enums/order-type.enum.ts +3 -0
  100. package/constants/order/index.ts +1 -0
  101. package/constants/page/enums/page-type.enum.ts +5 -0
  102. package/constants/page/index.ts +1 -0
  103. package/constants/payment/enums/index.ts +1 -0
  104. package/constants/payment/enums/payment-status.enum.ts +3 -0
  105. package/constants/payment/index.ts +1 -0
  106. package/constants/subscription/free-subscription-id.constant.ts +1 -0
  107. package/constants/subscription/index.ts +1 -0
  108. package/constants/tools/enums/index.ts +5 -0
  109. package/constants/tools/enums/job-request-origin.enum.ts +3 -0
  110. package/constants/tools/enums/job-status.enum.ts +5 -0
  111. package/constants/tools/enums/marketplace-card-strategy.enum.ts +6 -0
  112. package/constants/tools/enums/tool-model-status.enum.ts +4 -0
  113. package/constants/tools/enums/tool-type.enum.ts +5 -0
  114. package/constants/tools/index.ts +1 -0
  115. package/constants/transaction/enums/index.ts +1 -0
  116. package/constants/transaction/enums/transaction-status.enum.ts +5 -0
  117. package/constants/transaction/index.ts +1 -0
  118. package/constants/user/enums/index.ts +3 -0
  119. package/constants/user/enums/signup-method.enum.ts +6 -0
  120. package/constants/user/enums/user-role.enum.ts +5 -0
  121. package/constants/user/enums/user-status.enum.ts +5 -0
  122. package/constants/user/index.ts +1 -0
  123. package/constants/user-to-product/enums/index.ts +1 -0
  124. package/constants/user-to-product/enums/user-to-product-status.enum.ts +3 -0
  125. package/constants/user-to-product/index.ts +1 -0
  126. package/constants/user-to-subscription/enums/index.ts +1 -0
  127. package/constants/user-to-subscription/enums/user-to-subscription-status.enum.ts +3 -0
  128. package/constants/user-to-subscription/index.ts +1 -0
  129. package/index.ts +5 -0
  130. package/models/cloud-payments-widget-data.schema.ts +18 -0
  131. package/models/cloud-payments-widget.schema.ts +15 -0
  132. package/models/common/attached-file.schema.ts +13 -0
  133. package/models/common/icon-variants.schema.ts +12 -0
  134. package/models/common/index.ts +4 -0
  135. package/models/common/json-value.schema.ts +10 -0
  136. package/models/common/receipt.schema.ts +19 -0
  137. package/models/file.schema.ts +13 -0
  138. package/models/image-editor/image-editor-config.schema.ts +10 -0
  139. package/models/image-editor/image-editor-job-params.schema.ts +12 -0
  140. package/models/image-editor/image-editor-job-request-params.schema.ts +9 -0
  141. package/models/image-editor/image-editor-job.schema.ts +30 -0
  142. package/models/image-editor/image-editor-model-params.schema.ts +18 -0
  143. package/models/image-editor/image-editor-model.schema.ts +28 -0
  144. package/models/image-editor/image-editor-pricing-rule.schema.ts +14 -0
  145. package/models/image-editor/image-editor-prompt-group.schema.ts +13 -0
  146. package/models/image-editor/image-editor-system-prompt.schema.ts +20 -0
  147. package/models/image-editor/index.ts +9 -0
  148. package/models/image-generation/image-generation-config.schema.ts +10 -0
  149. package/models/image-generation/image-generation-job-attempt.schema.ts +11 -0
  150. package/models/image-generation/image-generation-job-params.schema.ts +11 -0
  151. package/models/image-generation/image-generation-job-request-params.schema.ts +10 -0
  152. package/models/image-generation/image-generation-job.schema.ts +30 -0
  153. package/models/image-generation/image-generation-model-params.schema.ts +22 -0
  154. package/models/image-generation/image-generation-model.schema.ts +28 -0
  155. package/models/image-generation/image-generation-preset.schema.ts +10 -0
  156. package/models/image-generation/image-generation-pricing-rule.schema.ts +19 -0
  157. package/models/image-generation/image-generation-vendor.schema.ts +9 -0
  158. package/models/image-generation/index.ts +10 -0
  159. package/models/index.ts +13 -0
  160. package/models/marketplace-card/index.ts +6 -0
  161. package/models/marketplace-card/marketplace-card-config.schema.ts +10 -0
  162. package/models/marketplace-card/marketplace-card-job-request-params.schema.ts +15 -0
  163. package/models/marketplace-card/marketplace-card-job.schema.ts +28 -0
  164. package/models/marketplace-card/marketplace-card-model-params.schema.ts +11 -0
  165. package/models/marketplace-card/marketplace-card-model.schema.ts +16 -0
  166. package/models/marketplace-card/marketplace-card-style-preset.schema.ts +10 -0
  167. package/models/page-question.schema.ts +10 -0
  168. package/models/page.schema.ts +40 -0
  169. package/models/product.schema.ts +10 -0
  170. package/models/subscription.schema.ts +12 -0
  171. package/models/tools/index.ts +1 -0
  172. package/models/tools/vendor.schema.ts +11 -0
  173. package/models/user.schema.ts +11 -0
  174. package/package.json +1 -7
  175. package/queries/file/find-files.command.ts +20 -0
  176. package/queries/file/get-file.command.ts +14 -0
  177. package/queries/file/index.ts +2 -0
  178. package/queries/image-editor/find-image-editor-jobs.command.ts +20 -0
  179. package/queries/image-editor/get-image-editor-config.command.ts +9 -0
  180. package/queries/image-editor/get-image-editor-job.command.ts +14 -0
  181. package/queries/image-editor/get-image-editor-price.command.ts +17 -0
  182. package/queries/image-editor/index.ts +4 -0
  183. package/queries/image-generation/find-image-generation-jobs.command.ts +20 -0
  184. package/queries/image-generation/get-image-generation-config.command.ts +9 -0
  185. package/queries/image-generation/get-image-generation-job.command.ts +14 -0
  186. package/queries/image-generation/get-image-generation-price.command.ts +19 -0
  187. package/queries/image-generation/index.ts +4 -0
  188. package/queries/index.ts +9 -0
  189. package/queries/marketplace-card/find-marketplace-card-jobs.command.ts +21 -0
  190. package/queries/marketplace-card/get-marketplace-card-config.command.ts +9 -0
  191. package/queries/marketplace-card/get-marketplace-card-job.command.ts +14 -0
  192. package/queries/marketplace-card/get-marketplace-card-price.command.ts +15 -0
  193. package/queries/marketplace-card/index.ts +4 -0
  194. package/queries/page/find-all-page-questions.query.ts +14 -0
  195. package/queries/page/find-page-question-by-uuid.query.ts +16 -0
  196. package/queries/page/find-page-questions-by-page-id.query.ts +16 -0
  197. package/queries/page/index.ts +3 -0
  198. package/queries/payment/get-payment-history.command.ts +17 -0
  199. package/queries/payment/index.ts +1 -0
  200. package/queries/product/find-products.command.ts +9 -0
  201. package/queries/product/index.ts +1 -0
  202. package/queries/subscription/find-subscriptions.command.ts +9 -0
  203. package/queries/subscription/index.ts +1 -0
  204. package/queries/user/get-my-products.command.ts +19 -0
  205. package/queries/user/get-my-subscriptions.command.ts +21 -0
  206. package/queries/user/get-user.command.ts +14 -0
  207. package/queries/user/index.ts +3 -0
  208. package/tsconfig.json +104 -0
@@ -0,0 +1,6 @@
1
+ export const AI_PROXY_CONTROLLER = 'ai-proxy' as const;
2
+
3
+ export const AI_PROXY_ROUTES = {
4
+ IMAGE_GENERATION_CALLBACK: 'image-generation/callback',
5
+ IMAGE_EDITOR_CALLBACK: 'image-editor/callback',
6
+ } as const;
@@ -0,0 +1,14 @@
1
+ export const AUTH_CONTROLLER = 'auth' as const;
2
+
3
+ export const AUTH_ROUTES = {
4
+ REGISTER: 'register',
5
+ LOGIN: 'login',
6
+ ADMIN_LOGIN: 'admin/login',
7
+ VK_LOGIN: 'vk/login',
8
+ YANDEX_LOGIN: 'yandex/login',
9
+ CREATE_USER: 'create-user',
10
+ RESTORE_PASSWORD: 'restore-password',
11
+ RESET_PASSWORD: 'reset-password',
12
+ VERIFY_EMAIL: 'verify-email',
13
+ VERIFY_EMAIL_RETRY: 'verify-email-retry',
14
+ } as const;
@@ -0,0 +1,5 @@
1
+ export const CLOUD_PAYMENTS_CONTROLLER = 'cloud-payments' as const;
2
+
3
+ export const CLOUD_PAYMENTS_ROUTES = {
4
+ CALLBACK: 'callback',
5
+ } as const;
@@ -0,0 +1,6 @@
1
+ export const FILE_PRIVATE_CONTROLLER = 'files/private' as const;
2
+ export const FILE_PUBLIC_CONTROLLER = 'files/public' as const;
3
+
4
+ export const FILE_ROUTES = {
5
+ UPLOAD: 'upload',
6
+ } as const;
@@ -0,0 +1,3 @@
1
+ export const HEALTH_ROUTES = {
2
+ PING: 'ping',
3
+ } as const;
@@ -0,0 +1,15 @@
1
+ export const IMAGE_EDITOR_PRIVATE_CONTROLLER = 'image-editor/private' as const;
2
+ export const IMAGE_EDITOR_PUBLIC_CONTROLLER = 'image-editor/public' as const;
3
+
4
+ export const IMAGE_EDITOR_ROUTES = {
5
+ CONFIG: 'config',
6
+ PRICE: 'price',
7
+ EXECUTE: 'execute',
8
+ GET_JOBS: 'jobs',
9
+ GET_JOB: (uuid: string) => `jobs/${uuid}`,
10
+ UPDATE: (uuid: string) => `jobs/${uuid}`,
11
+ SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
12
+ DELETE: (uuid: string) => `jobs/${uuid}`,
13
+ DELETE_ALL: 'jobs',
14
+ RETRY: (uuid: string) => `jobs/${uuid}/retry`,
15
+ } as const;
@@ -0,0 +1,15 @@
1
+ export const IMAGE_GENERATION_PRIVATE_CONTROLLER = 'image-generation/private' as const;
2
+ export const IMAGE_GENERATION_PUBLIC_CONTROLLER = 'image-generation/public' as const;
3
+
4
+ export const IMAGE_GENERATION_ROUTES = {
5
+ CONFIG: 'config',
6
+ PRICE: 'price',
7
+ EXECUTE: 'execute',
8
+ GET_JOBS: 'jobs',
9
+ GET_JOB: (uuid: string) => `jobs/${uuid}`,
10
+ UPDATE: (uuid: string) => `jobs/${uuid}`,
11
+ SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
12
+ DELETE: (uuid: string) => `jobs/${uuid}`,
13
+ DELETE_ALL: 'jobs',
14
+ RETRY: (uuid: string) => `jobs/${uuid}/retry`,
15
+ } as const;
@@ -0,0 +1,16 @@
1
+ export * from './auth';
2
+ export * from './user';
3
+ export * from './product';
4
+ export * from './subscription';
5
+ export * from './payment';
6
+ export * from './cloud-payments';
7
+ export * from './transaction';
8
+ export * from './health';
9
+ export * from './image-generation';
10
+ export * from './image-editor';
11
+ export * from './marketplace-card';
12
+ export * from './ai-proxy';
13
+ export * from './file';
14
+ export * from './unregistered-user';
15
+ export * from './page';
16
+ export * from './page-question';
@@ -0,0 +1,15 @@
1
+ export const MARKETPLACE_CARD_PRIVATE_CONTROLLER = 'marketplace-card/private' as const;
2
+ export const MARKETPLACE_CARD_PUBLIC_CONTROLLER = 'marketplace-card/public' as const;
3
+
4
+ export const MARKETPLACE_CARD_ROUTES = {
5
+ CONFIG: 'config',
6
+ PRICE: 'price',
7
+ EXECUTE: 'execute',
8
+ GET_JOBS: 'jobs',
9
+ GET_JOB: (uuid: string) => `jobs/${uuid}`,
10
+ UPDATE: (uuid: string) => `jobs/${uuid}`,
11
+ SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
12
+ DELETE: (uuid: string) => `jobs/${uuid}`,
13
+ DELETE_ALL: 'jobs',
14
+ RETRY: (uuid: string) => `jobs/${uuid}/retry`,
15
+ } as const;
@@ -0,0 +1,9 @@
1
+ export const PAGE_QUESTION_CONTROLLER = 'page-question' as const;
2
+
3
+ export const PAGE_QUESTION_ROUTES = {
4
+ FIND_BY_UUID: (uuid: string) => `${uuid}`,
5
+ CREATE: '',
6
+ UPDATE: (uuid: string) => `update/${uuid}`,
7
+ DELETE: (uuid: string) => `delete/${uuid}`,
8
+ GET_ALL: '',
9
+ } as const;
@@ -0,0 +1,12 @@
1
+ export const PAGE_CONTROLLER = 'page' as const;
2
+
3
+ export const PAGE_ROUTES = {
4
+ FIND_BY_CRITERIA: 'search',
5
+ FIND_BY_UUID: (uuid: string) => `${uuid}`,
6
+ GET_ALL: '',
7
+ FIND_BY_ALIAS: (alias: string) => `by/alias/${alias}`,
8
+ CREATE: '',
9
+ UPDATE: (uuid: string) => `update/${uuid}`,
10
+ DELETE: (uuid: string) => `delete/${uuid}`,
11
+ CREATE_QUESTIONS_BULK: (pageId: string) => `${pageId}/questions/bulk`,
12
+ } as const;
@@ -0,0 +1,5 @@
1
+ export const PAYMENT_CONTROLLER = 'payments' as const;
2
+
3
+ export const PAYMENT_ROUTES = {
4
+ HISTORY: 'history',
5
+ } as const;
@@ -0,0 +1,7 @@
1
+ export const PRODUCT_PRIVATE_CONTROLLER = 'product/private' as const;
2
+ export const PRODUCT_PUBLIC_CONTROLLER = 'product/public' as const;
3
+
4
+ export const PRODUCT_ROUTES = {
5
+ GET_ALL: 'all',
6
+ BUY: 'buy',
7
+ } as const;
@@ -0,0 +1,7 @@
1
+ export const SUBSCRIPTION_PRIVATE_CONTROLLER = 'subscription/private' as const;
2
+ export const SUBSCRIPTION_PUBLIC_CONTROLLER = 'subscription/public' as const;
3
+
4
+ export const SUBSCRIPTION_ROUTES = {
5
+ GET_ALL: 'all',
6
+ BUY: 'buy',
7
+ } as const;
@@ -0,0 +1,5 @@
1
+ export const TRANSACTION_CONTROLLER = 'transactions' as const;
2
+
3
+ export const TRANSACTION_ROUTES = {
4
+ WRITE_OFF: 'write-off',
5
+ } as const;
@@ -0,0 +1 @@
1
+ export const UNREGISTERED_USER_CONTROLLER = 'unregistered-user' as const;
@@ -0,0 +1,5 @@
1
+ export const USER_CONTROLLER = 'users' as const;
2
+
3
+ export const USER_ROUTES = {
4
+ GET: 'me',
5
+ } as const;
@@ -0,0 +1 @@
1
+ export * from './http';
package/api/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './controller';
2
+ export * from './routes';
package/api/routes.ts ADDED
@@ -0,0 +1,109 @@
1
+ import * as CONTROLLERS from './controller';
2
+
3
+ export const ROOT = '/api' as const;
4
+
5
+ export const REST_API = {
6
+ HEALTH: {
7
+ PING: `${ROOT}/${CONTROLLERS.HEALTH_ROUTES.PING}`,
8
+ },
9
+ AUTH: {
10
+ REGISTER: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.REGISTER}`,
11
+ LOGIN: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.LOGIN}`,
12
+ },
13
+ UNREGISTERED_USER: {
14
+ UPSERT: `${ROOT}/${CONTROLLERS.UNREGISTERED_USER_CONTROLLER}`,
15
+ },
16
+ USERS: {
17
+ GET: `${ROOT}/${CONTROLLERS.USER_CONTROLLER}`,
18
+ },
19
+ PRODUCT_PUBLIC: {
20
+ GET: `${ROOT}/${CONTROLLERS.PRODUCT_PUBLIC_CONTROLLER}/${CONTROLLERS.PRODUCT_ROUTES.GET_ALL}`,
21
+ },
22
+ PRODUCT_PRIVATE: {
23
+ GET: `${ROOT}/${CONTROLLERS.PRODUCT_PRIVATE_CONTROLLER}/${CONTROLLERS.PRODUCT_ROUTES.GET_ALL}`,
24
+ BUY: (uuid: string) =>
25
+ `${ROOT}/${CONTROLLERS.PRODUCT_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.PRODUCT_ROUTES.BUY}`,
26
+ },
27
+ SUBSCRIPTION_PUBLIC: {
28
+ GET: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PUBLIC_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_ALL}`,
29
+ },
30
+ SUBSCRIPTION_PRIVATE: {
31
+ GET: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_ALL}`,
32
+ BUY: (uuid: string) =>
33
+ `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.BUY}`,
34
+ },
35
+ PAYMENT: {
36
+ HISTORY: `${ROOT}/${CONTROLLERS.PAYMENT_CONTROLLER}/${CONTROLLERS.PAYMENT_ROUTES.HISTORY}`,
37
+ },
38
+ CLOUD_PAYMENTS: {
39
+ CALLBACK: (type: string) =>
40
+ `${ROOT}/${CONTROLLERS.CLOUD_PAYMENTS_CONTROLLER}/${CONTROLLERS.CLOUD_PAYMENTS_ROUTES.CALLBACK}/${type}`,
41
+ },
42
+ IMAGE_GENERATION_PUBLIC: {
43
+ CONFIG: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PUBLIC_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.CONFIG}`,
44
+ PRICE: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PUBLIC_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.PRICE}`,
45
+ },
46
+ IMAGE_GENERATION_PRIVATE: {
47
+ CONFIG: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.CONFIG}`,
48
+ EXECUTE: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.EXECUTE}`,
49
+ LIST_JOBS: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.GET_JOBS}`,
50
+ GET_JOB: (uuid: string) =>
51
+ `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.GET_JOB(uuid)}`,
52
+ UPDATE: (uuid: string) =>
53
+ `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.UPDATE(uuid)}`,
54
+ SET_REACTION: (uuid: string) =>
55
+ `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.SET_REACTION(uuid)}`,
56
+ DELETE: (uuid: string) =>
57
+ `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.DELETE(uuid)}`,
58
+ DELETE_ALL: `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_PRIVATE_CONTROLLER}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.DELETE_ALL}`,
59
+ },
60
+ MARKETPLACE_CARD_PUBLIC: {
61
+ CONFIG: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
62
+ EXECUTE: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
63
+ LIST_JOBS: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
64
+ GET_JOB: (uuid: string) =>
65
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
66
+ RETRY: (uuid: string) =>
67
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
68
+ SET_REACTION: (uuid: string) =>
69
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
70
+ UPDATE: (uuid: string) =>
71
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.UPDATE(uuid)}`,
72
+ DELETE: (uuid: string) =>
73
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
74
+ DELETE_ALL: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PUBLIC_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE_ALL}`,
75
+ },
76
+ MARKETPLACE_CARD_PRIVATE: {
77
+ CONFIG: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
78
+ PRICE: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.PRICE}`,
79
+ EXECUTE: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
80
+ LIST_JOBS: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
81
+ GET_JOB: (uuid: string) =>
82
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
83
+ RETRY: (uuid: string) =>
84
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
85
+ SET_REACTION: (uuid: string) =>
86
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
87
+ UPDATE: (uuid: string) =>
88
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.UPDATE(uuid)}`,
89
+ DELETE: (uuid: string) =>
90
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
91
+ DELETE_ALL: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_PRIVATE_CONTROLLER}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE_ALL}`,
92
+ },
93
+ AI_PROXY: {
94
+ IMAGE_GENERATION_CALLBACK: `${ROOT}/${CONTROLLERS.AI_PROXY_CONTROLLER}/${CONTROLLERS.AI_PROXY_ROUTES.IMAGE_GENERATION_CALLBACK}`,
95
+ },
96
+ FILES_PRIVATE: {
97
+ UPLOAD: `${ROOT}/${CONTROLLERS.FILE_PRIVATE_CONTROLLER}/${CONTROLLERS.FILE_ROUTES.UPLOAD}`,
98
+ LIST: `${ROOT}/${CONTROLLERS.FILE_PRIVATE_CONTROLLER}`,
99
+ GET: (uuid: string) => `${ROOT}/${CONTROLLERS.FILE_PRIVATE_CONTROLLER}/${uuid}`,
100
+ },
101
+ FILES_PUBLIC: {
102
+ UPLOAD: `${ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}/${CONTROLLERS.FILE_ROUTES.UPLOAD}`,
103
+ LIST: `${ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}`,
104
+ GET: (uuid: string) => `${ROOT}/${CONTROLLERS.FILE_PUBLIC_CONTROLLER}/${uuid}`,
105
+ },
106
+ TRANSACTION: {
107
+ WRITE_OFF: `${ROOT}/${CONTROLLERS.TRANSACTION_CONTROLLER}/${CONTROLLERS.TRANSACTION_ROUTES.WRITE_OFF}`,
108
+ },
109
+ } as const;
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from '../../models';
3
+
4
+ export namespace CreateUserCommand {
5
+ export const RequestSchema = UserSchema.pick({
6
+ email: true,
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: z.object({
13
+ uuid: z.string().uuid(),
14
+ }),
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,9 @@
1
+ export * from './login.command';
2
+ export * from './register.command';
3
+ export * from './create-user.command';
4
+ export * from './restore-password.command';
5
+ export * from './reset-password.command';
6
+ export * from './verify-email.command';
7
+ export * from './verify-email-retry.command';
8
+ export * from './vk-login.command';
9
+ export * from './yandex-login.command';
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from '../../models';
3
+
4
+ export namespace LoginCommand {
5
+ export const RequestSchema = UserSchema.pick({
6
+ email: true,
7
+ password: true,
8
+ });
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: z.object({
13
+ accessToken: z.string(),
14
+ }),
15
+ });
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from '../../models';
3
+
4
+ export namespace RegisterCommand {
5
+ export const RequestSchema = UserSchema.pick({
6
+ email: true,
7
+ password: true,
8
+ }).extend({
9
+ partnerId: z.string().uuid().optional(),
10
+ marketingConsent: z.boolean().default(false),
11
+ });
12
+ export type Request = z.infer<typeof RequestSchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: z.object({
16
+ accessToken: z.string(),
17
+ }),
18
+ });
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace ResetPasswordCommand {
4
+ export const RequestSchema = z.object({
5
+ userId: z.string().uuid(),
6
+ restoreToken: z.string().min(6),
7
+ newPassword: z.string().min(6).max(128),
8
+ });
9
+
10
+ export type Request = z.infer<typeof RequestSchema>;
11
+
12
+ export const ResponseSchema = z.object({
13
+ data: z.object({
14
+ accessToken: z.string(),
15
+ }),
16
+ });
17
+
18
+ export type Response = z.infer<typeof ResponseSchema>;
19
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { UserSchema } from '../../models';
3
+
4
+ export namespace RestorePasswordCommand {
5
+ export const RequestSchema = UserSchema.pick({
6
+ email: true,
7
+ });
8
+ export type Request = z.infer<typeof RequestSchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ data: z.object({
12
+ message: z.string(),
13
+ }),
14
+ });
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace VerifyEmailRetryCommand {
4
+ export const RequestSchema = z.object({
5
+ userId: z.string().uuid(),
6
+ });
7
+
8
+ export type Request = z.infer<typeof RequestSchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ data: z.object({
12
+ isSuccess: z.boolean(),
13
+ }),
14
+ });
15
+
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace VerifyEmailCommand {
4
+ export const RequestSchema = z.object({
5
+ verifyTokenHash: z.string().min(6),
6
+ email: z.string().email(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: z.object({
13
+ isSuccess: z.boolean(),
14
+ }),
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace VKLoginCommand {
4
+ export const RequestSchema = z.object({
5
+ code: z.string(),
6
+ code_verifier: z.string(),
7
+ device_id: z.string(),
8
+ state: z.string(),
9
+ marketingConsent: z.boolean().default(false),
10
+ partnerId: z.string().uuid().optional(),
11
+ });
12
+
13
+ export type Request = z.infer<typeof RequestSchema>;
14
+
15
+ export const ResponseSchema = z.object({
16
+ data: z.object({
17
+ accessToken: z.string(),
18
+ }),
19
+ });
20
+ export type Response = z.infer<typeof ResponseSchema>;
21
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace YandexLoginCommand {
4
+ export const RequestSchema = z.object({
5
+ code: z.string(),
6
+ code_verifier: z.string(),
7
+ marketingConsent: z.boolean().default(false),
8
+ partnerId: z.string().uuid().optional(),
9
+ });
10
+
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = z.object({
14
+ data: z.object({
15
+ accessToken: z.string(),
16
+ }),
17
+ });
18
+ export type Response = z.infer<typeof ResponseSchema>;
19
+ }
@@ -0,0 +1 @@
1
+ export * from './upload-file.command';
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { FileSchema } from '../../models';
3
+
4
+ export namespace UploadFileCommand {
5
+ export const ResponseSchema = z.object({
6
+ data: FileSchema,
7
+ });
8
+ export type Response = z.infer<typeof ResponseSchema>;
9
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { ImageEditorJobRequestParamsSchema, ImageEditorJobSchema } from '../../models';
3
+
4
+ export namespace ExecuteImageEditorCommand {
5
+ export const RequestSchema = z.object({
6
+ modelId: z.string().uuid(),
7
+ prompt: z.string().min(1).max(5000),
8
+ params: ImageEditorJobRequestParamsSchema,
9
+ });
10
+
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = z.object({
14
+ data: ImageEditorJobSchema,
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,7 @@
1
+ export * from './proxy-image-editor-callback.command';
2
+ export * from './execute-image-editor.command';
3
+ export * from './retry-image-editor-job.command';
4
+ export * from './set-reaction-to-image-editor-job.command';
5
+ export * from './update-image-editor-job-title.command';
6
+ export * from './soft-delete-image-editor-job-by-uuid.command';
7
+ export * from './soft-delete-image-editor-jobs-by-criteria.command';
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace ProxyImageEditorCallbackCommand {
4
+ export const RequestSchema = z.object({
5
+ jobId: z.string().min(1),
6
+ imageUrl: z.string().url().optional(),
7
+ error: z.string().optional(),
8
+ });
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ ok: z.boolean(),
13
+ });
14
+ export type Response = z.infer<typeof ResponseSchema>;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { ImageEditorJobRequestParamsSchema, ImageEditorJobSchema } from '../../models';
3
+
4
+ export namespace RetryImageEditorJobCommand {
5
+ export const RequestSchema = z.object({
6
+ prompt: z.string().min(1).max(5000).optional(),
7
+ modelId: z.string().uuid().optional(),
8
+ params: ImageEditorJobRequestParamsSchema.optional(),
9
+ });
10
+
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = z.object({
14
+ data: ImageEditorJobSchema,
15
+ });
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { ImageEditorJobSchema } from '../../models';
3
+ import { USER_REACTION } from '../../constants';
4
+
5
+ export namespace SetReactionToImageEditorJobCommand {
6
+ export const RequestSchema = z.object({
7
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
8
+ dislikeReason: z.string().nullable().optional(),
9
+ });
10
+
11
+ export type Request = z.infer<typeof RequestSchema>;
12
+
13
+ export const ResponseSchema = z.object({
14
+ data: ImageEditorJobSchema,
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace SoftDeleteImageEditorJobByUuidCommand {
4
+ export const ResponseSchema = z.object({
5
+ data: z.boolean(),
6
+ });
7
+ export type Response = z.infer<typeof ResponseSchema>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace SoftDeleteImageEditorJobsByCriteriaCommand {
4
+ export const ResponseSchema = z.object({
5
+ data: z.boolean(),
6
+ });
7
+ export type Response = z.infer<typeof ResponseSchema>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { ImageEditorJobSchema } from '../../models';
3
+
4
+ export namespace UpdateImageEditorJobTitleCommand {
5
+ export const RequestSchema = z.object({
6
+ title: z.string().min(1).max(200),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: ImageEditorJobSchema,
13
+ });
14
+
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { ImageGenerationJobRequestParamsSchema, ImageGenerationJobSchema } from '../../models';
3
+
4
+ export namespace ExecuteImageGenerationCommand {
5
+ export const RequestSchema = z.object({
6
+ modelId: z.string().uuid(),
7
+ prompt: z.string().min(1).max(4000),
8
+ presetId: z.string().uuid().nullable().optional(),
9
+ params: ImageGenerationJobRequestParamsSchema,
10
+ });
11
+
12
+ export type Request = z.infer<typeof RequestSchema>;
13
+
14
+ export const ResponseSchema = z.object({
15
+ data: ImageGenerationJobSchema,
16
+ });
17
+
18
+ export type Response = z.infer<typeof ResponseSchema>;
19
+ }
@@ -0,0 +1,7 @@
1
+ export * from './execute-image-generation.command';
2
+ export * from './retry-image-generation-job.command';
3
+ export * from './set-reaction-to-image-generation-job.command';
4
+ export * from './update-image-generation-job-title.command';
5
+ export * from './soft-delete-image-generation-job-by-uuid.command';
6
+ export * from './soft-delete-image-generation-jobs-by-criteria.command';
7
+ export * from './proxy-image-generation-callback.command';