@purpleschool/gptbot 0.14.27 → 0.14.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/controllers/http/avatar-studio.ts +23 -12
- package/api/routes.ts +68 -19
- package/build/api/controllers/http/avatar-studio.js +22 -12
- package/build/api/routes.js +41 -10
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-frame.command.js +2 -1
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-image.command.js +23 -0
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-scene-voice.command.js +4 -1
- package/build/commands/avatar-studio/generation-job/index.js +1 -3
- package/build/commands/avatar-studio/media/create-avatar-studio-media-from-file.command.js +6 -9
- package/build/commands/avatar-studio/media/find-avatar-studio-media.query.js +7 -5
- package/build/commands/avatar-studio/media/update-avatar-studio-media.command.js +1 -4
- package/build/commands/avatar-studio/scene/apply-avatar-studio-voice-sample-to-all-scenes.command.js +15 -0
- package/build/commands/avatar-studio/scene/index.js +2 -0
- package/build/commands/avatar-studio/scene/set-avatar-studio-scene-slot.command.js +21 -0
- package/build/commands/avatar-studio/scriptwriter/calculate-avatar-studio-scriptwriter-price.command.js +13 -6
- package/build/commands/avatar-studio/scriptwriter/create-avatar-studio-scriptwriter-message.command.js +23 -1
- package/build/commands/avatar-studio/shared/avatar-studio-common.schema.js +2 -1
- package/build/commands/avatar-studio/shared/get-avatar-studio-config.query.js +28 -18
- package/build/commands/avatar-studio/voice/design-avatar-studio-voice.command.js +5 -7
- package/build/commands/avatar-studio/voice/index.js +0 -3
- package/build/commands/photo-studio/execute-photo-studio-action.command.js +7 -2
- package/build/commands/photo-studio/find-photo-studio-job-by-id.query.js +2 -1
- package/build/constants/avatar-studio/enums/avatar-studio-job-type.enum.js +0 -3
- package/build/constants/avatar-studio/enums/avatar-studio-slot.enum.js +10 -7
- package/build/constants/avatar-studio/enums/avatar-studio-unavailable-reason.enum.js +16 -0
- package/build/constants/avatar-studio/enums/index.js +1 -5
- package/build/models/avatar-studio/avatar-studio.schema.js +60 -68
- package/commands/avatar-studio/generation-job/generate-avatar-studio-frame.command.ts +2 -1
- package/commands/avatar-studio/generation-job/{generate-avatar-studio-media-image.command.ts → generate-avatar-studio-image.command.ts} +5 -1
- package/commands/avatar-studio/generation-job/generate-avatar-studio-scene-voice.command.ts +4 -1
- package/commands/avatar-studio/generation-job/index.ts +1 -3
- package/commands/avatar-studio/media/create-avatar-studio-media-from-file.command.ts +7 -16
- package/commands/avatar-studio/media/find-avatar-studio-media.query.ts +9 -7
- package/commands/avatar-studio/media/update-avatar-studio-media.command.ts +1 -4
- package/commands/avatar-studio/scene/apply-avatar-studio-voice-sample-to-all-scenes.command.ts +20 -0
- package/commands/avatar-studio/scene/index.ts +2 -0
- package/commands/avatar-studio/{generation-job/generate-avatar-studio-voice-timings.command.ts → scene/set-avatar-studio-scene-slot.command.ts} +8 -5
- package/commands/avatar-studio/scriptwriter/calculate-avatar-studio-scriptwriter-price.command.ts +14 -7
- package/commands/avatar-studio/scriptwriter/create-avatar-studio-scriptwriter-message.command.ts +26 -1
- package/commands/avatar-studio/shared/avatar-studio-common.schema.ts +2 -1
- package/commands/avatar-studio/shared/get-avatar-studio-config.query.ts +31 -19
- package/commands/avatar-studio/voice/design-avatar-studio-voice.command.ts +6 -14
- package/commands/avatar-studio/voice/index.ts +0 -3
- package/commands/photo-studio/execute-photo-studio-action.command.ts +8 -2
- package/commands/photo-studio/find-photo-studio-job-by-id.query.ts +2 -1
- package/constants/avatar-studio/enums/avatar-studio-job-type.enum.ts +0 -3
- package/constants/avatar-studio/enums/avatar-studio-slot.enum.ts +10 -7
- package/constants/avatar-studio/enums/avatar-studio-unavailable-reason.enum.ts +12 -0
- package/constants/avatar-studio/enums/index.ts +1 -5
- package/models/avatar-studio/avatar-studio.schema.ts +59 -75
- package/package.json +1 -1
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-library-image.command.js +0 -20
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-media-image.command.js +0 -19
- package/build/commands/avatar-studio/generation-job/generate-avatar-studio-voice-timings.command.js +0 -18
- package/build/commands/avatar-studio/voice/find-avatar-studio-clip-voices.query.js +0 -14
- package/build/commands/avatar-studio/voice/find-avatar-studio-voices.query.js +0 -19
- package/build/commands/avatar-studio/voice/update-avatar-studio-clip-voice.command.js +0 -19
- package/build/constants/avatar-studio/enums/avatar-studio-job-phase.enum.js +0 -12
- package/build/constants/avatar-studio/enums/avatar-studio-media-role.enum.js +0 -14
- package/build/constants/avatar-studio/enums/avatar-studio-media-source.enum.js +0 -13
- package/build/constants/avatar-studio/enums/avatar-studio-scene-kind.enum.js +0 -7
- package/build/constants/avatar-studio/enums/avatar-studio-voice-source.enum.js +0 -10
- package/commands/avatar-studio/generation-job/generate-avatar-studio-library-image.command.ts +0 -25
- package/commands/avatar-studio/voice/find-avatar-studio-clip-voices.query.ts +0 -21
- package/commands/avatar-studio/voice/find-avatar-studio-voices.query.ts +0 -24
- package/commands/avatar-studio/voice/update-avatar-studio-clip-voice.command.ts +0 -21
- package/constants/avatar-studio/enums/avatar-studio-job-phase.enum.ts +0 -8
- package/constants/avatar-studio/enums/avatar-studio-media-role.enum.ts +0 -10
- package/constants/avatar-studio/enums/avatar-studio-media-source.enum.ts +0 -9
- package/constants/avatar-studio/enums/avatar-studio-scene-kind.enum.ts +0 -3
- package/constants/avatar-studio/enums/avatar-studio-voice-source.enum.ts +0 -6
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export const AVATAR_STUDIO_CONTROLLER_PRIVATE = 'private/avatar-studio' as const;
|
|
2
|
+
/**
|
|
3
|
+
* Тот же набор роутов для незарегистрированных. Правила доступа к моделям это не ослабляет:
|
|
4
|
+
* анрегу недоступна ни одна модель студии, поэтому ему остаются клипы, сцены, медиатека и экспорт.
|
|
5
|
+
*/
|
|
6
|
+
export const AVATAR_STUDIO_CONTROLLER_PUBLIC = 'public/avatar-studio' as const;
|
|
2
7
|
|
|
3
8
|
export const AVATAR_STUDIO_ROUTES = {
|
|
4
9
|
CREATE_CLIP: 'clips',
|
|
@@ -10,28 +15,34 @@ export const AVATAR_STUDIO_ROUTES = {
|
|
|
10
15
|
UPDATE_SCENE: (clipId: string, sceneId: string) => `clips/${clipId}/scenes/${sceneId}`,
|
|
11
16
|
DELETE_SCENE: (clipId: string, sceneId: string) => `clips/${clipId}/scenes/${sceneId}`,
|
|
12
17
|
REORDER_SCENES: (clipId: string) => `clips/${clipId}/scenes/reorder`,
|
|
18
|
+
SET_SCENE_SLOT: (clipId: string, sceneId: string, slot: string) =>
|
|
19
|
+
`clips/${clipId}/scenes/${sceneId}/slots/${slot}`,
|
|
20
|
+
/**
|
|
21
|
+
* Разовое действие над всеми сценами клипа: проставить им один образец голоса.
|
|
22
|
+
* Не состояние клипа — голос принадлежит сцене, поэтому новые сцены его не наследуют.
|
|
23
|
+
*/
|
|
24
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId: string, mediaId: string) =>
|
|
25
|
+
`clips/${clipId}/voice-sample/${mediaId}/apply-to-all-scenes`,
|
|
13
26
|
GET_CONFIG: 'config',
|
|
14
|
-
|
|
27
|
+
// Медиатека принадлежит пользователю, а не клипу, поэтому роуты плоские.
|
|
28
|
+
CREATE_MEDIA_FROM_FILE: 'media/from-file',
|
|
15
29
|
GET_MEDIA: 'media',
|
|
16
|
-
UPDATE_MEDIA: (
|
|
17
|
-
DELETE_MEDIA: (
|
|
30
|
+
UPDATE_MEDIA: (mediaId: string) => `media/${mediaId}`,
|
|
31
|
+
DELETE_MEDIA: (mediaId: string) => `media/${mediaId}`,
|
|
18
32
|
GENERATE_FRAME: (clipId: string, sceneId: string) =>
|
|
19
33
|
`clips/${clipId}/scenes/${sceneId}/frame/generate`,
|
|
20
|
-
|
|
21
|
-
GENERATE_MEDIA_IMAGE: 'media/images/generate',
|
|
34
|
+
GENERATE_IMAGE: 'images/generate',
|
|
22
35
|
GENERATE_SCENE_VIDEO: (clipId: string, sceneId: string) =>
|
|
23
36
|
`clips/${clipId}/scenes/${sceneId}/video/generate`,
|
|
24
37
|
GENERATE_SCENE_VOICE: (clipId: string, sceneId: string) =>
|
|
25
38
|
`clips/${clipId}/scenes/${sceneId}/voice/generate`,
|
|
26
|
-
GENERATE_VOICE_TIMINGS: (clipId: string, sceneId: string) =>
|
|
27
|
-
`clips/${clipId}/scenes/${sceneId}/voice/timings`,
|
|
28
39
|
GENERATE_AVATAR: (clipId: string, sceneId: string) =>
|
|
29
40
|
`clips/${clipId}/scenes/${sceneId}/avatar/generate`,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
CALCULATE_SCRIPTWRITER_PRICE:
|
|
41
|
+
// Голос рождается в медиатеке пользователя, клип тут ни при чём — роут плоский,
|
|
42
|
+
// как и GENERATE_IMAGE.
|
|
43
|
+
DESIGN_VOICE: 'voices/design',
|
|
44
|
+
// Клип опционален и едет в теле: цену спрашивают ещё до создания клипа.
|
|
45
|
+
CALCULATE_SCRIPTWRITER_PRICE: 'scriptwriter/price',
|
|
35
46
|
GET_SCRIPTWRITER_MESSAGES: (clipId: string) => `clips/${clipId}/scriptwriter/messages`,
|
|
36
47
|
CREATE_SCRIPTWRITER_MESSAGE: (clipId: string) => `clips/${clipId}/scriptwriter/messages`,
|
|
37
48
|
APPLY_SCRIPTWRITER_MESSAGE: (clipId: string, messageId: string) =>
|
package/api/routes.ts
CHANGED
|
@@ -1711,34 +1711,27 @@ export const REST_API = {
|
|
|
1711
1711
|
REORDER_SCENES: (clipId: string) =>
|
|
1712
1712
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.REORDER_SCENES(clipId)}`,
|
|
1713
1713
|
GET_CONFIG: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CONFIG}`,
|
|
1714
|
-
CREATE_MEDIA_FROM_FILE:
|
|
1715
|
-
|
|
1714
|
+
CREATE_MEDIA_FROM_FILE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_MEDIA_FROM_FILE}`,
|
|
1715
|
+
SET_SCENE_SLOT: (clipId: string, sceneId: string, slot: string) =>
|
|
1716
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.SET_SCENE_SLOT(clipId, sceneId, slot)}`,
|
|
1717
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId: string, mediaId: string) =>
|
|
1718
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_VOICE_SAMPLE_TO_ALL_SCENES(clipId, mediaId)}`,
|
|
1716
1719
|
GET_MEDIA: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_MEDIA}`,
|
|
1717
|
-
UPDATE_MEDIA: (
|
|
1718
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_MEDIA(
|
|
1719
|
-
DELETE_MEDIA: (
|
|
1720
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_MEDIA(
|
|
1720
|
+
UPDATE_MEDIA: (mediaId: string) =>
|
|
1721
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_MEDIA(mediaId)}`,
|
|
1722
|
+
DELETE_MEDIA: (mediaId: string) =>
|
|
1723
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_MEDIA(mediaId)}`,
|
|
1721
1724
|
GENERATE_FRAME: (clipId: string, sceneId: string) =>
|
|
1722
1725
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_FRAME(clipId, sceneId)}`,
|
|
1723
|
-
|
|
1724
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_LIBRARY_IMAGE(clipId)}`,
|
|
1726
|
+
GENERATE_IMAGE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_IMAGE}`,
|
|
1725
1727
|
GENERATE_SCENE_VIDEO: (clipId: string, sceneId: string) =>
|
|
1726
1728
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VIDEO(clipId, sceneId)}`,
|
|
1727
1729
|
GENERATE_SCENE_VOICE: (clipId: string, sceneId: string) =>
|
|
1728
1730
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VOICE(clipId, sceneId)}`,
|
|
1729
|
-
GENERATE_VOICE_TIMINGS: (clipId: string, sceneId: string) =>
|
|
1730
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_VOICE_TIMINGS(clipId, sceneId)}`,
|
|
1731
1731
|
GENERATE_AVATAR: (clipId: string, sceneId: string) =>
|
|
1732
1732
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_AVATAR(clipId, sceneId)}`,
|
|
1733
|
-
DESIGN_VOICE:
|
|
1734
|
-
|
|
1735
|
-
GET_VOICES: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_VOICES}`,
|
|
1736
|
-
GET_CLIP_VOICES: (clipId: string) =>
|
|
1737
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_VOICES(clipId)}`,
|
|
1738
|
-
UPDATE_CLIP_VOICE: (clipId: string) =>
|
|
1739
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_CLIP_VOICE(clipId)}`,
|
|
1740
|
-
CALCULATE_SCRIPTWRITER_PRICE: (clipId: string) =>
|
|
1741
|
-
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE(clipId)}`,
|
|
1733
|
+
DESIGN_VOICE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DESIGN_VOICE}`,
|
|
1734
|
+
CALCULATE_SCRIPTWRITER_PRICE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE}`,
|
|
1742
1735
|
GET_SCRIPTWRITER_MESSAGES: (clipId: string) =>
|
|
1743
1736
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_SCRIPTWRITER_MESSAGES(clipId)}`,
|
|
1744
1737
|
CREATE_SCRIPTWRITER_MESSAGE: (clipId: string) =>
|
|
@@ -1756,6 +1749,62 @@ export const REST_API = {
|
|
|
1756
1749
|
START_EXPORT: (clipId: string) =>
|
|
1757
1750
|
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.START_EXPORT(clipId)}`,
|
|
1758
1751
|
},
|
|
1752
|
+
AVATAR_STUDIO_PUBLIC: {
|
|
1753
|
+
CREATE_CLIP: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_CLIP}`,
|
|
1754
|
+
GET_CLIPS: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIPS}`,
|
|
1755
|
+
GET_CLIP: (clipId: string) =>
|
|
1756
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP(clipId)}`,
|
|
1757
|
+
UPDATE_CLIP: (clipId: string) =>
|
|
1758
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_CLIP(clipId)}`,
|
|
1759
|
+
DELETE_CLIP: (clipId: string) =>
|
|
1760
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_CLIP(clipId)}`,
|
|
1761
|
+
CREATE_SCENE: (clipId: string) =>
|
|
1762
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_SCENE(clipId)}`,
|
|
1763
|
+
UPDATE_SCENE: (clipId: string, sceneId: string) =>
|
|
1764
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_SCENE(clipId, sceneId)}`,
|
|
1765
|
+
DELETE_SCENE: (clipId: string, sceneId: string) =>
|
|
1766
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_SCENE(clipId, sceneId)}`,
|
|
1767
|
+
REORDER_SCENES: (clipId: string) =>
|
|
1768
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.REORDER_SCENES(clipId)}`,
|
|
1769
|
+
GET_CONFIG: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CONFIG}`,
|
|
1770
|
+
CREATE_MEDIA_FROM_FILE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_MEDIA_FROM_FILE}`,
|
|
1771
|
+
SET_SCENE_SLOT: (clipId: string, sceneId: string, slot: string) =>
|
|
1772
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.SET_SCENE_SLOT(clipId, sceneId, slot)}`,
|
|
1773
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId: string, mediaId: string) =>
|
|
1774
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_VOICE_SAMPLE_TO_ALL_SCENES(clipId, mediaId)}`,
|
|
1775
|
+
GET_MEDIA: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_MEDIA}`,
|
|
1776
|
+
UPDATE_MEDIA: (mediaId: string) =>
|
|
1777
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_MEDIA(mediaId)}`,
|
|
1778
|
+
DELETE_MEDIA: (mediaId: string) =>
|
|
1779
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_MEDIA(mediaId)}`,
|
|
1780
|
+
GENERATE_FRAME: (clipId: string, sceneId: string) =>
|
|
1781
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_FRAME(clipId, sceneId)}`,
|
|
1782
|
+
GENERATE_IMAGE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_IMAGE}`,
|
|
1783
|
+
GENERATE_SCENE_VIDEO: (clipId: string, sceneId: string) =>
|
|
1784
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VIDEO(clipId, sceneId)}`,
|
|
1785
|
+
GENERATE_SCENE_VOICE: (clipId: string, sceneId: string) =>
|
|
1786
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VOICE(clipId, sceneId)}`,
|
|
1787
|
+
GENERATE_AVATAR: (clipId: string, sceneId: string) =>
|
|
1788
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_AVATAR(clipId, sceneId)}`,
|
|
1789
|
+
DESIGN_VOICE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DESIGN_VOICE}`,
|
|
1790
|
+
CALCULATE_SCRIPTWRITER_PRICE: `${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE}`,
|
|
1791
|
+
GET_SCRIPTWRITER_MESSAGES: (clipId: string) =>
|
|
1792
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_SCRIPTWRITER_MESSAGES(clipId)}`,
|
|
1793
|
+
CREATE_SCRIPTWRITER_MESSAGE: (clipId: string) =>
|
|
1794
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_SCRIPTWRITER_MESSAGE(clipId)}`,
|
|
1795
|
+
APPLY_SCRIPTWRITER_MESSAGE: (clipId: string, messageId: string) =>
|
|
1796
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_SCRIPTWRITER_MESSAGE(clipId, messageId)}`,
|
|
1797
|
+
GET_GENERATION_JOB: (jobId: string) =>
|
|
1798
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_GENERATION_JOB(jobId)}`,
|
|
1799
|
+
GET_CLIP_GENERATION_JOBS: (clipId: string) =>
|
|
1800
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_GENERATION_JOBS(clipId)}`,
|
|
1801
|
+
GET_EXPORT_JOB: (jobId: string) =>
|
|
1802
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_EXPORT_JOB(jobId)}`,
|
|
1803
|
+
GET_CLIP_EXPORT_JOBS: (clipId: string) =>
|
|
1804
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_EXPORT_JOBS(clipId)}`,
|
|
1805
|
+
START_EXPORT: (clipId: string) =>
|
|
1806
|
+
`${ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.START_EXPORT(clipId)}`,
|
|
1807
|
+
},
|
|
1759
1808
|
PHOTO_STUDIO_PRIVATE: {
|
|
1760
1809
|
ACTIONS: `${ROOT}/${CONTROLLERS.PHOTO_STUDIO_PRIVATE_CONTROLLER}/${CONTROLLERS.PHOTO_STUDIO_ROUTES.ACTIONS}`,
|
|
1761
1810
|
CONFIG: `${ROOT}/${CONTROLLERS.PHOTO_STUDIO_PRIVATE_CONTROLLER}/${CONTROLLERS.PHOTO_STUDIO_ROUTES.CONFIG}`,
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AVATAR_STUDIO_ROUTES = exports.AVATAR_STUDIO_CONTROLLER_PRIVATE = void 0;
|
|
3
|
+
exports.AVATAR_STUDIO_ROUTES = exports.AVATAR_STUDIO_CONTROLLER_PUBLIC = exports.AVATAR_STUDIO_CONTROLLER_PRIVATE = void 0;
|
|
4
4
|
exports.AVATAR_STUDIO_CONTROLLER_PRIVATE = 'private/avatar-studio';
|
|
5
|
+
/**
|
|
6
|
+
* Тот же набор роутов для незарегистрированных. Правила доступа к моделям это не ослабляет:
|
|
7
|
+
* анрегу недоступна ни одна модель студии, поэтому ему остаются клипы, сцены, медиатека и экспорт.
|
|
8
|
+
*/
|
|
9
|
+
exports.AVATAR_STUDIO_CONTROLLER_PUBLIC = 'public/avatar-studio';
|
|
5
10
|
exports.AVATAR_STUDIO_ROUTES = {
|
|
6
11
|
CREATE_CLIP: 'clips',
|
|
7
12
|
GET_CLIPS: 'clips',
|
|
@@ -12,23 +17,28 @@ exports.AVATAR_STUDIO_ROUTES = {
|
|
|
12
17
|
UPDATE_SCENE: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}`,
|
|
13
18
|
DELETE_SCENE: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}`,
|
|
14
19
|
REORDER_SCENES: (clipId) => `clips/${clipId}/scenes/reorder`,
|
|
20
|
+
SET_SCENE_SLOT: (clipId, sceneId, slot) => `clips/${clipId}/scenes/${sceneId}/slots/${slot}`,
|
|
21
|
+
/**
|
|
22
|
+
* Разовое действие над всеми сценами клипа: проставить им один образец голоса.
|
|
23
|
+
* Не состояние клипа — голос принадлежит сцене, поэтому новые сцены его не наследуют.
|
|
24
|
+
*/
|
|
25
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId, mediaId) => `clips/${clipId}/voice-sample/${mediaId}/apply-to-all-scenes`,
|
|
15
26
|
GET_CONFIG: 'config',
|
|
16
|
-
|
|
27
|
+
// Медиатека принадлежит пользователю, а не клипу, поэтому роуты плоские.
|
|
28
|
+
CREATE_MEDIA_FROM_FILE: 'media/from-file',
|
|
17
29
|
GET_MEDIA: 'media',
|
|
18
|
-
UPDATE_MEDIA: (
|
|
19
|
-
DELETE_MEDIA: (
|
|
30
|
+
UPDATE_MEDIA: (mediaId) => `media/${mediaId}`,
|
|
31
|
+
DELETE_MEDIA: (mediaId) => `media/${mediaId}`,
|
|
20
32
|
GENERATE_FRAME: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}/frame/generate`,
|
|
21
|
-
|
|
22
|
-
GENERATE_MEDIA_IMAGE: 'media/images/generate',
|
|
33
|
+
GENERATE_IMAGE: 'images/generate',
|
|
23
34
|
GENERATE_SCENE_VIDEO: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}/video/generate`,
|
|
24
35
|
GENERATE_SCENE_VOICE: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}/voice/generate`,
|
|
25
|
-
GENERATE_VOICE_TIMINGS: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}/voice/timings`,
|
|
26
36
|
GENERATE_AVATAR: (clipId, sceneId) => `clips/${clipId}/scenes/${sceneId}/avatar/generate`,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
CALCULATE_SCRIPTWRITER_PRICE:
|
|
37
|
+
// Голос рождается в медиатеке пользователя, клип тут ни при чём — роут плоский,
|
|
38
|
+
// как и GENERATE_IMAGE.
|
|
39
|
+
DESIGN_VOICE: 'voices/design',
|
|
40
|
+
// Клип опционален и едет в теле: цену спрашивают ещё до создания клипа.
|
|
41
|
+
CALCULATE_SCRIPTWRITER_PRICE: 'scriptwriter/price',
|
|
32
42
|
GET_SCRIPTWRITER_MESSAGES: (clipId) => `clips/${clipId}/scriptwriter/messages`,
|
|
33
43
|
CREATE_SCRIPTWRITER_MESSAGE: (clipId) => `clips/${clipId}/scriptwriter/messages`,
|
|
34
44
|
APPLY_SCRIPTWRITER_MESSAGE: (clipId, messageId) => `clips/${clipId}/scriptwriter/messages/${messageId}/apply`,
|
package/build/api/routes.js
CHANGED
|
@@ -1232,21 +1232,19 @@ exports.REST_API = {
|
|
|
1232
1232
|
DELETE_SCENE: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_SCENE(clipId, sceneId)}`,
|
|
1233
1233
|
REORDER_SCENES: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.REORDER_SCENES(clipId)}`,
|
|
1234
1234
|
GET_CONFIG: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CONFIG}`,
|
|
1235
|
-
CREATE_MEDIA_FROM_FILE:
|
|
1235
|
+
CREATE_MEDIA_FROM_FILE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_MEDIA_FROM_FILE}`,
|
|
1236
|
+
SET_SCENE_SLOT: (clipId, sceneId, slot) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.SET_SCENE_SLOT(clipId, sceneId, slot)}`,
|
|
1237
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId, mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_VOICE_SAMPLE_TO_ALL_SCENES(clipId, mediaId)}`,
|
|
1236
1238
|
GET_MEDIA: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_MEDIA}`,
|
|
1237
|
-
UPDATE_MEDIA: (
|
|
1238
|
-
DELETE_MEDIA: (
|
|
1239
|
+
UPDATE_MEDIA: (mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_MEDIA(mediaId)}`,
|
|
1240
|
+
DELETE_MEDIA: (mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_MEDIA(mediaId)}`,
|
|
1239
1241
|
GENERATE_FRAME: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_FRAME(clipId, sceneId)}`,
|
|
1240
|
-
|
|
1242
|
+
GENERATE_IMAGE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_IMAGE}`,
|
|
1241
1243
|
GENERATE_SCENE_VIDEO: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VIDEO(clipId, sceneId)}`,
|
|
1242
1244
|
GENERATE_SCENE_VOICE: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VOICE(clipId, sceneId)}`,
|
|
1243
|
-
GENERATE_VOICE_TIMINGS: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_VOICE_TIMINGS(clipId, sceneId)}`,
|
|
1244
1245
|
GENERATE_AVATAR: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_AVATAR(clipId, sceneId)}`,
|
|
1245
|
-
DESIGN_VOICE:
|
|
1246
|
-
|
|
1247
|
-
GET_CLIP_VOICES: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_VOICES(clipId)}`,
|
|
1248
|
-
UPDATE_CLIP_VOICE: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_CLIP_VOICE(clipId)}`,
|
|
1249
|
-
CALCULATE_SCRIPTWRITER_PRICE: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE(clipId)}`,
|
|
1246
|
+
DESIGN_VOICE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DESIGN_VOICE}`,
|
|
1247
|
+
CALCULATE_SCRIPTWRITER_PRICE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE}`,
|
|
1250
1248
|
GET_SCRIPTWRITER_MESSAGES: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_SCRIPTWRITER_MESSAGES(clipId)}`,
|
|
1251
1249
|
CREATE_SCRIPTWRITER_MESSAGE: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_SCRIPTWRITER_MESSAGE(clipId)}`,
|
|
1252
1250
|
APPLY_SCRIPTWRITER_MESSAGE: (clipId, messageId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_SCRIPTWRITER_MESSAGE(clipId, messageId)}`,
|
|
@@ -1256,6 +1254,39 @@ exports.REST_API = {
|
|
|
1256
1254
|
GET_CLIP_EXPORT_JOBS: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_EXPORT_JOBS(clipId)}`,
|
|
1257
1255
|
START_EXPORT: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PRIVATE}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.START_EXPORT(clipId)}`,
|
|
1258
1256
|
},
|
|
1257
|
+
AVATAR_STUDIO_PUBLIC: {
|
|
1258
|
+
CREATE_CLIP: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_CLIP}`,
|
|
1259
|
+
GET_CLIPS: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIPS}`,
|
|
1260
|
+
GET_CLIP: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP(clipId)}`,
|
|
1261
|
+
UPDATE_CLIP: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_CLIP(clipId)}`,
|
|
1262
|
+
DELETE_CLIP: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_CLIP(clipId)}`,
|
|
1263
|
+
CREATE_SCENE: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_SCENE(clipId)}`,
|
|
1264
|
+
UPDATE_SCENE: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_SCENE(clipId, sceneId)}`,
|
|
1265
|
+
DELETE_SCENE: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_SCENE(clipId, sceneId)}`,
|
|
1266
|
+
REORDER_SCENES: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.REORDER_SCENES(clipId)}`,
|
|
1267
|
+
GET_CONFIG: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CONFIG}`,
|
|
1268
|
+
CREATE_MEDIA_FROM_FILE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_MEDIA_FROM_FILE}`,
|
|
1269
|
+
SET_SCENE_SLOT: (clipId, sceneId, slot) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.SET_SCENE_SLOT(clipId, sceneId, slot)}`,
|
|
1270
|
+
APPLY_VOICE_SAMPLE_TO_ALL_SCENES: (clipId, mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_VOICE_SAMPLE_TO_ALL_SCENES(clipId, mediaId)}`,
|
|
1271
|
+
GET_MEDIA: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_MEDIA}`,
|
|
1272
|
+
UPDATE_MEDIA: (mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.UPDATE_MEDIA(mediaId)}`,
|
|
1273
|
+
DELETE_MEDIA: (mediaId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DELETE_MEDIA(mediaId)}`,
|
|
1274
|
+
GENERATE_FRAME: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_FRAME(clipId, sceneId)}`,
|
|
1275
|
+
GENERATE_IMAGE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_IMAGE}`,
|
|
1276
|
+
GENERATE_SCENE_VIDEO: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VIDEO(clipId, sceneId)}`,
|
|
1277
|
+
GENERATE_SCENE_VOICE: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_SCENE_VOICE(clipId, sceneId)}`,
|
|
1278
|
+
GENERATE_AVATAR: (clipId, sceneId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GENERATE_AVATAR(clipId, sceneId)}`,
|
|
1279
|
+
DESIGN_VOICE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.DESIGN_VOICE}`,
|
|
1280
|
+
CALCULATE_SCRIPTWRITER_PRICE: `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CALCULATE_SCRIPTWRITER_PRICE}`,
|
|
1281
|
+
GET_SCRIPTWRITER_MESSAGES: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_SCRIPTWRITER_MESSAGES(clipId)}`,
|
|
1282
|
+
CREATE_SCRIPTWRITER_MESSAGE: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.CREATE_SCRIPTWRITER_MESSAGE(clipId)}`,
|
|
1283
|
+
APPLY_SCRIPTWRITER_MESSAGE: (clipId, messageId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.APPLY_SCRIPTWRITER_MESSAGE(clipId, messageId)}`,
|
|
1284
|
+
GET_GENERATION_JOB: (jobId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_GENERATION_JOB(jobId)}`,
|
|
1285
|
+
GET_CLIP_GENERATION_JOBS: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_GENERATION_JOBS(clipId)}`,
|
|
1286
|
+
GET_EXPORT_JOB: (jobId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_EXPORT_JOB(jobId)}`,
|
|
1287
|
+
GET_CLIP_EXPORT_JOBS: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.GET_CLIP_EXPORT_JOBS(clipId)}`,
|
|
1288
|
+
START_EXPORT: (clipId) => `${exports.ROOT}/${CONTROLLERS.AVATAR_STUDIO_CONTROLLER_PUBLIC}/${CONTROLLERS.AVATAR_STUDIO_ROUTES.START_EXPORT(clipId)}`,
|
|
1289
|
+
},
|
|
1259
1290
|
PHOTO_STUDIO_PRIVATE: {
|
|
1260
1291
|
ACTIONS: `${exports.ROOT}/${CONTROLLERS.PHOTO_STUDIO_PRIVATE_CONTROLLER}/${CONTROLLERS.PHOTO_STUDIO_ROUTES.ACTIONS}`,
|
|
1261
1292
|
CONFIG: `${exports.ROOT}/${CONTROLLERS.PHOTO_STUDIO_PRIVATE_CONTROLLER}/${CONTROLLERS.PHOTO_STUDIO_ROUTES.CONFIG}`,
|
|
@@ -8,11 +8,12 @@ const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.sc
|
|
|
8
8
|
var GenerateAvatarStudioFrameCommand;
|
|
9
9
|
(function (GenerateAvatarStudioFrameCommand) {
|
|
10
10
|
GenerateAvatarStudioFrameCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioSceneIdParamsSchema;
|
|
11
|
+
/** Все три поля — параметры imageConfig сцены: они же в неё и сохраняются. */
|
|
11
12
|
GenerateAvatarStudioFrameCommand.RequestSchema = zod_1.z
|
|
12
13
|
.object({
|
|
13
14
|
prompt: zod_1.z.string().trim().min(1),
|
|
14
15
|
style: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_IMAGE_STYLE).default(constants_1.AVATAR_STUDIO_IMAGE_STYLE.UGC),
|
|
15
|
-
|
|
16
|
+
references: avatar_studio_common_schema_1.AvatarStudioUuidListSchema,
|
|
16
17
|
})
|
|
17
18
|
.strict();
|
|
18
19
|
GenerateAvatarStudioFrameCommand.ResponseSchema = zod_1.z.object({
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateAvatarStudioImageCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.schema");
|
|
7
|
+
/**
|
|
8
|
+
* Генерация изображения в медиатеку пользователя. Клипа у неё нет: медиатека
|
|
9
|
+
* принадлежит пользователю, и картинка доступна из любого его клипа.
|
|
10
|
+
*/
|
|
11
|
+
var GenerateAvatarStudioImageCommand;
|
|
12
|
+
(function (GenerateAvatarStudioImageCommand) {
|
|
13
|
+
GenerateAvatarStudioImageCommand.RequestSchema = zod_1.z
|
|
14
|
+
.object({
|
|
15
|
+
prompt: zod_1.z.string().trim().min(1),
|
|
16
|
+
referenceMediaIds: avatar_studio_common_schema_1.AvatarStudioUuidListSchema.optional(),
|
|
17
|
+
aspectRatio: models_1.AvatarStudioAspectRatioSchema.default('9:16'),
|
|
18
|
+
})
|
|
19
|
+
.strict();
|
|
20
|
+
GenerateAvatarStudioImageCommand.ResponseSchema = zod_1.z.object({
|
|
21
|
+
data: models_1.AvatarStudioGenerationJobSchema,
|
|
22
|
+
});
|
|
23
|
+
})(GenerateAvatarStudioImageCommand || (exports.GenerateAvatarStudioImageCommand = GenerateAvatarStudioImageCommand = {}));
|
package/build/commands/avatar-studio/generation-job/generate-avatar-studio-scene-voice.command.js
CHANGED
|
@@ -7,10 +7,13 @@ const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.sc
|
|
|
7
7
|
var GenerateAvatarStudioSceneVoiceCommand;
|
|
8
8
|
(function (GenerateAvatarStudioSceneVoiceCommand) {
|
|
9
9
|
GenerateAvatarStudioSceneVoiceCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioSceneIdParamsSchema;
|
|
10
|
+
/**
|
|
11
|
+
* Образец голоса не передаётся: он берётся из voiceConfig.voiceSampleMediaId сцены.
|
|
12
|
+
* Сменить образец — обычный PATCH сцены, а не отдельная операция.
|
|
13
|
+
*/
|
|
10
14
|
GenerateAvatarStudioSceneVoiceCommand.RequestSchema = zod_1.z
|
|
11
15
|
.object({
|
|
12
16
|
text: zod_1.z.string().trim().min(1).optional(),
|
|
13
|
-
mediaId: zod_1.z.string().uuid().optional(),
|
|
14
17
|
})
|
|
15
18
|
.strict();
|
|
16
19
|
GenerateAvatarStudioSceneVoiceCommand.ResponseSchema = zod_1.z.object({
|
|
@@ -16,10 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./find-avatar-studio-generation-jobs.query"), exports);
|
|
18
18
|
__exportStar(require("./generate-avatar-studio-frame.command"), exports);
|
|
19
|
-
__exportStar(require("./generate-avatar-studio-
|
|
20
|
-
__exportStar(require("./generate-avatar-studio-media-image.command"), exports);
|
|
19
|
+
__exportStar(require("./generate-avatar-studio-image.command"), exports);
|
|
21
20
|
__exportStar(require("./generate-avatar-studio-scene-video.command"), exports);
|
|
22
21
|
__exportStar(require("./generate-avatar-studio-scene-voice.command"), exports);
|
|
23
22
|
__exportStar(require("./generate-avatar-studio-talking-avatar.command"), exports);
|
|
24
|
-
__exportStar(require("./generate-avatar-studio-voice-timings.command"), exports);
|
|
25
23
|
__exportStar(require("./get-avatar-studio-generation-job.query"), exports);
|
|
@@ -4,22 +4,19 @@ exports.CreateAvatarStudioMediaFromFileCommand = void 0;
|
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const constants_1 = require("../../../constants");
|
|
6
6
|
const models_1 = require("../../../models");
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Загруженный файл попадает в медиатеку пользователя и доступен из любого его клипа.
|
|
9
|
+
* Положить его в сцену — отдельная операция: PUT .../scenes/:sceneId/slots/:slot.
|
|
10
|
+
* Чем медиа будет — озвучкой, образцом голоса, референсом — решает поле, которое на него
|
|
11
|
+
* сошлётся, а не признак на самом медиа.
|
|
12
|
+
*/
|
|
8
13
|
var CreateAvatarStudioMediaFromFileCommand;
|
|
9
14
|
(function (CreateAvatarStudioMediaFromFileCommand) {
|
|
10
|
-
CreateAvatarStudioMediaFromFileCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioClipIdParamsSchema;
|
|
11
15
|
CreateAvatarStudioMediaFromFileCommand.RequestSchema = zod_1.z
|
|
12
16
|
.object({
|
|
13
17
|
fileId: zod_1.z.string().uuid(),
|
|
14
|
-
sceneId: zod_1.z.string().uuid().optional(),
|
|
15
18
|
kind: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_KIND),
|
|
16
|
-
source: zod_1.z
|
|
17
|
-
.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_SOURCE)
|
|
18
|
-
.default(constants_1.AVATAR_STUDIO_MEDIA_SOURCE.UPLOAD)
|
|
19
|
-
.optional(),
|
|
20
|
-
role: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_ROLE),
|
|
21
19
|
title: zod_1.z.string().trim().min(1).max(255).optional(),
|
|
22
|
-
prompt: zod_1.z.string().optional(),
|
|
23
20
|
})
|
|
24
21
|
.strict();
|
|
25
22
|
CreateAvatarStudioMediaFromFileCommand.ResponseSchema = zod_1.z.object({
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FindAvatarStudioMediaQuery = void 0;
|
|
3
|
+
exports.FindAvatarStudioMediaQuery = exports.AvatarStudioMediaOwnerSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const constants_1 = require("../../../constants");
|
|
6
6
|
const models_1 = require("../../../models");
|
|
7
7
|
const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.schema");
|
|
8
|
+
/**
|
|
9
|
+
* Список медиа всегда однороден по владельцу: либо медиатека пользователя,
|
|
10
|
+
* либо общие системные медиа. Смешанного списка нет, поэтому owner обязателен.
|
|
11
|
+
*/
|
|
12
|
+
exports.AvatarStudioMediaOwnerSchema = zod_1.z.enum(['me', 'system']);
|
|
8
13
|
var FindAvatarStudioMediaQuery;
|
|
9
14
|
(function (FindAvatarStudioMediaQuery) {
|
|
10
|
-
FindAvatarStudioMediaQuery.ParamsSchema = zod_1.z.object({}).strict();
|
|
11
15
|
FindAvatarStudioMediaQuery.QuerySchema = avatar_studio_common_schema_1.AvatarStudioPaginationQuerySchema.extend({
|
|
12
|
-
|
|
13
|
-
sceneId: zod_1.z.string().uuid().optional(),
|
|
16
|
+
owner: exports.AvatarStudioMediaOwnerSchema,
|
|
14
17
|
kind: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_KIND).optional(),
|
|
15
|
-
role: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_ROLE).optional(),
|
|
16
18
|
});
|
|
17
19
|
FindAvatarStudioMediaQuery.ResponseSchema = (0, avatar_studio_common_schema_1.AvatarStudioPagedResponseSchema)(models_1.AvatarStudioMediaSchema);
|
|
18
20
|
})(FindAvatarStudioMediaQuery || (exports.FindAvatarStudioMediaQuery = FindAvatarStudioMediaQuery = {}));
|
|
@@ -2,18 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpdateAvatarStudioMediaCommand = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
const constants_1 = require("../../../constants");
|
|
6
5
|
const models_1 = require("../../../models");
|
|
7
6
|
const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.schema");
|
|
7
|
+
/** Только метаданные: прикрепление медиа в сцену — операция сцены, а не медиа. */
|
|
8
8
|
var UpdateAvatarStudioMediaCommand;
|
|
9
9
|
(function (UpdateAvatarStudioMediaCommand) {
|
|
10
10
|
UpdateAvatarStudioMediaCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioMediaIdParamsSchema;
|
|
11
11
|
UpdateAvatarStudioMediaCommand.RequestSchema = zod_1.z
|
|
12
12
|
.object({
|
|
13
|
-
sceneId: zod_1.z.string().uuid().nullable().optional(),
|
|
14
|
-
role: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_MEDIA_ROLE).optional(),
|
|
15
13
|
title: zod_1.z.string().trim().min(1).max(255).nullable().optional(),
|
|
16
|
-
prompt: zod_1.z.string().nullable().optional(),
|
|
17
14
|
})
|
|
18
15
|
.strict();
|
|
19
16
|
UpdateAvatarStudioMediaCommand.ResponseSchema = zod_1.z.object({
|
package/build/commands/avatar-studio/scene/apply-avatar-studio-voice-sample-to-all-scenes.command.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplyAvatarStudioVoiceSampleToAllScenesCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.schema");
|
|
7
|
+
var ApplyAvatarStudioVoiceSampleToAllScenesCommand;
|
|
8
|
+
(function (ApplyAvatarStudioVoiceSampleToAllScenesCommand) {
|
|
9
|
+
ApplyAvatarStudioVoiceSampleToAllScenesCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioClipIdParamsSchema.merge(avatar_studio_common_schema_1.AvatarStudioMediaIdParamsSchema);
|
|
10
|
+
// Ответ — клип со сценами, а не список сцен: фронт перерисовывает клип целиком
|
|
11
|
+
// и не ходит следом за GET /clips/:clipId.
|
|
12
|
+
ApplyAvatarStudioVoiceSampleToAllScenesCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
data: models_1.AvatarStudioClipSchema,
|
|
14
|
+
});
|
|
15
|
+
})(ApplyAvatarStudioVoiceSampleToAllScenesCommand || (exports.ApplyAvatarStudioVoiceSampleToAllScenesCommand = ApplyAvatarStudioVoiceSampleToAllScenesCommand = {}));
|
|
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./apply-avatar-studio-voice-sample-to-all-scenes.command"), exports);
|
|
17
18
|
__exportStar(require("./create-avatar-studio-scene.command"), exports);
|
|
18
19
|
__exportStar(require("./delete-avatar-studio-scene.command"), exports);
|
|
19
20
|
__exportStar(require("./reorder-avatar-studio-scenes.command"), exports);
|
|
21
|
+
__exportStar(require("./set-avatar-studio-scene-slot.command"), exports);
|
|
20
22
|
__exportStar(require("./update-avatar-studio-scene.command"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetAvatarStudioSceneSlotCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../constants");
|
|
6
|
+
const models_1 = require("../../../models");
|
|
7
|
+
const avatar_studio_common_schema_1 = require("../shared/avatar-studio-common.schema");
|
|
8
|
+
var SetAvatarStudioSceneSlotCommand;
|
|
9
|
+
(function (SetAvatarStudioSceneSlotCommand) {
|
|
10
|
+
SetAvatarStudioSceneSlotCommand.ParamsSchema = avatar_studio_common_schema_1.AvatarStudioSceneIdParamsSchema.extend({
|
|
11
|
+
slot: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_SLOT),
|
|
12
|
+
});
|
|
13
|
+
SetAvatarStudioSceneSlotCommand.RequestSchema = zod_1.z
|
|
14
|
+
.object({
|
|
15
|
+
mediaId: zod_1.z.string().uuid(),
|
|
16
|
+
})
|
|
17
|
+
.strict();
|
|
18
|
+
SetAvatarStudioSceneSlotCommand.ResponseSchema = zod_1.z.object({
|
|
19
|
+
data: models_1.AvatarStudioSceneSchema,
|
|
20
|
+
});
|
|
21
|
+
})(SetAvatarStudioSceneSlotCommand || (exports.SetAvatarStudioSceneSlotCommand = SetAvatarStudioSceneSlotCommand = {}));
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CalculateAvatarStudioScriptwriterPriceCommand = void 0;
|
|
3
|
+
exports.CalculateAvatarStudioScriptwriterPriceCommand = exports.AvatarStudioScriptwriterPriceSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
|
|
5
|
+
/** Сама цена, без транспортной обёртки: её считает и сервис сценариста. */
|
|
6
|
+
exports.AvatarStudioScriptwriterPriceSchema = zod_1.z.object({
|
|
7
|
+
price: zod_1.z.number(),
|
|
8
|
+
charsUntilNextPriceIncrease: zod_1.z.number().int().nonnegative().nullable(),
|
|
9
|
+
charsUntilNextPriceDecrease: zod_1.z.number().int().nonnegative().nullable(),
|
|
10
|
+
});
|
|
6
11
|
var CalculateAvatarStudioScriptwriterPriceCommand;
|
|
7
12
|
(function (CalculateAvatarStudioScriptwriterPriceCommand) {
|
|
8
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Клип опционален: цену спрашивают ещё до его создания. Без клипа считаем по одной длине
|
|
15
|
+
* ввода, без контекста прошлого диалога — история в цену и не входит, если её нет.
|
|
16
|
+
*/
|
|
9
17
|
CalculateAvatarStudioScriptwriterPriceCommand.RequestSchema = zod_1.z
|
|
10
18
|
.object({
|
|
11
19
|
inputLength: zod_1.z.number().int().nonnegative(),
|
|
20
|
+
clipId: zod_1.z.string().uuid().optional(),
|
|
12
21
|
})
|
|
13
22
|
.strict();
|
|
14
23
|
CalculateAvatarStudioScriptwriterPriceCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
-
|
|
16
|
-
charsUntilNextPriceIncrease: zod_1.z.number().int().nonnegative().nullable(),
|
|
17
|
-
charsUntilNextPriceDecrease: zod_1.z.number().int().nonnegative().nullable(),
|
|
24
|
+
data: exports.AvatarStudioScriptwriterPriceSchema,
|
|
18
25
|
});
|
|
19
26
|
})(CalculateAvatarStudioScriptwriterPriceCommand || (exports.CalculateAvatarStudioScriptwriterPriceCommand = CalculateAvatarStudioScriptwriterPriceCommand = {}));
|
|
@@ -40,10 +40,32 @@ var CreateAvatarStudioScriptwriterMessageCommand;
|
|
|
40
40
|
}),
|
|
41
41
|
})
|
|
42
42
|
.strict();
|
|
43
|
+
CreateAvatarStudioScriptwriterMessageCommand.ModelOutputScenePlanSchema = zod_1.z
|
|
44
|
+
.object({
|
|
45
|
+
voiceConfig: zod_1.z.object({
|
|
46
|
+
text: zod_1.z.string().trim().min(1),
|
|
47
|
+
trimStart: zod_1.z.number().nonnegative().nullable(),
|
|
48
|
+
trimEnd: zod_1.z.number().nonnegative().nullable(),
|
|
49
|
+
}),
|
|
50
|
+
imageConfig: zod_1.z.object({
|
|
51
|
+
prompt: zod_1.z.string().trim().min(1),
|
|
52
|
+
style: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_IMAGE_STYLE),
|
|
53
|
+
}),
|
|
54
|
+
videoConfig: zod_1.z.object({
|
|
55
|
+
prompt: zod_1.z.string().trim().min(1),
|
|
56
|
+
durationSeconds: zod_1.z.number().positive(),
|
|
57
|
+
videoMode: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_VIDEO_MODE),
|
|
58
|
+
quality: zod_1.z.nativeEnum(constants_1.AVATAR_STUDIO_VIDEO_QUALITY),
|
|
59
|
+
sound: zod_1.z.boolean(),
|
|
60
|
+
trimStart: zod_1.z.number().nonnegative().nullable(),
|
|
61
|
+
trimEnd: zod_1.z.number().nonnegative().nullable(),
|
|
62
|
+
}),
|
|
63
|
+
})
|
|
64
|
+
.strict();
|
|
43
65
|
CreateAvatarStudioScriptwriterMessageCommand.ModelOutputSchema = zod_1.z
|
|
44
66
|
.object({
|
|
45
67
|
message: zod_1.z.string().trim().min(1),
|
|
46
|
-
scenes: zod_1.z.array(CreateAvatarStudioScriptwriterMessageCommand.
|
|
68
|
+
scenes: zod_1.z.array(CreateAvatarStudioScriptwriterMessageCommand.ModelOutputScenePlanSchema).min(1).max(20),
|
|
47
69
|
})
|
|
48
70
|
.strict();
|
|
49
71
|
})(CreateAvatarStudioScriptwriterMessageCommand || (exports.CreateAvatarStudioScriptwriterMessageCommand = CreateAvatarStudioScriptwriterMessageCommand = {}));
|
|
@@ -10,7 +10,8 @@ exports.AvatarStudioClipIdParamsSchema = zod_1.z.object({
|
|
|
10
10
|
exports.AvatarStudioSceneIdParamsSchema = exports.AvatarStudioClipIdParamsSchema.extend({
|
|
11
11
|
sceneId: zod_1.z.string().uuid(),
|
|
12
12
|
});
|
|
13
|
-
|
|
13
|
+
// Медиа принадлежит пользователю, а не клипу, поэтому clipId в его параметрах нет.
|
|
14
|
+
exports.AvatarStudioMediaIdParamsSchema = zod_1.z.object({
|
|
14
15
|
mediaId: zod_1.z.string().uuid(),
|
|
15
16
|
});
|
|
16
17
|
exports.AvatarStudioGenerationJobIdParamsSchema = zod_1.z.object({
|