@purpleschool/gptbot-tools 0.0.54 → 0.0.56-presentation
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/build/common/errors/errors.js +399 -2
- package/build/index.js +6 -0
- package/build/music/commands/convert-to-wav.command.js +15 -0
- package/build/music/commands/delete-all-music-jobs.command.js +13 -0
- package/build/music/commands/delete-music-job-by-uuid.command.js +14 -0
- package/build/music/commands/generate-lyrics.command.js +18 -0
- package/build/music/commands/generate-music.command.js +18 -0
- package/build/music/commands/index.js +24 -0
- package/build/music/commands/retry-music-job.command.js +16 -0
- package/build/music/commands/set-reaction-to-music-job.command.js +17 -0
- package/build/music/commands/update-music-job-title.command.js +16 -0
- package/build/music/enums/index.js +22 -0
- package/build/music/enums/music-action-type.enum.js +7 -0
- package/build/music/enums/music-pricing-rule-type.enum.js +7 -0
- package/build/music/enums/music-strategy.enum.js +7 -0
- package/build/music/enums/music-vocal-gender.enum.js +8 -0
- package/build/music/enums/suno-mode-type.enum.js +10 -0
- package/build/music/enums/suno-model-type.enum.js +10 -0
- package/build/music/index.js +22 -0
- package/build/music/models/index.js +20 -0
- package/build/music/models/music-config.schema.js +8 -0
- package/build/music/models/music-job.schema.js +54 -0
- package/build/music/models/music-model.schema.js +35 -0
- package/build/music/models/music-track.schema.js +17 -0
- package/build/music/queries/find-music-job-by-id.query.js +10 -0
- package/build/music/queries/find-music-jobs.query.js +28 -0
- package/build/music/queries/get-music-config.query.js +9 -0
- package/build/music/queries/index.js +19 -0
- package/build/music/routes/index.js +17 -0
- package/build/music/routes/music.amqp.routes.js +16 -0
- package/build/music/utils/calculate-music-generation-price.util.js +7 -0
- package/build/music/utils/index.js +17 -0
- package/build/presentation/commands/build-blank-slide.command.js +15 -0
- package/build/presentation/commands/generate-and-insert-slide.command.js +22 -0
- package/build/presentation/commands/index.js +7 -0
- package/build/presentation/commands/presentation-generate-report.command.js +18 -0
- package/build/presentation/commands/presentation-paraphrase.command.js +19 -0
- package/build/presentation/commands/update-presentation-slides.command.js +16 -0
- package/build/presentation/commands/update-slide-image-slot.command.js +34 -0
- package/build/presentation/commands/update-slide.command.js +17 -0
- package/build/presentation/enums/index.js +4 -0
- package/build/presentation/enums/presentation-ai-action-call-status.enum.js +9 -0
- package/build/presentation/enums/presentation-ai-action-pricing-type.enum.js +8 -0
- package/build/presentation/enums/presentation-ai-action-type.enum.js +8 -0
- package/build/presentation/enums/slide-image-slot-action.enum.js +8 -0
- package/build/presentation/index.js +1 -0
- package/build/presentation/models/index.js +1 -0
- package/build/presentation/models/presentation-ai-action.schema.js +27 -0
- package/build/presentation/models/presentation-config.schema.js +3 -0
- package/build/presentation/models/presentation.schema.js +4 -1
- package/build/presentation/models/slide-content-edit.schema.js +135 -0
- package/build/presentation/models/slide-content.schema.js +5 -1
- package/build/presentation/models/slide.schema.js +39 -1
- package/build/presentation/routes/presentation.routes.js +7 -0
- package/build/presentation/utils/calculate-presentation-ai-action-price.util.js +16 -0
- package/build/presentation/utils/index.js +17 -0
- package/build/tools/enums/tool-type.enum.js +4 -0
- package/build/video/enums/video-strategy.enum.js +2 -0
- package/build/video/routes/video.http.routes.js +1 -0
- package/build/video-editor/commands/delete-all-video-editor-jobs.command.js +13 -0
- package/build/video-editor/commands/delete-video-editor-job-by-uuid.command.js +14 -0
- package/build/video-editor/commands/edit-video.command.js +19 -0
- package/build/video-editor/commands/index.js +22 -0
- package/build/video-editor/commands/retry-video-editor-job.command.js +16 -0
- package/build/video-editor/commands/set-reaction-to-video-editor-job.command.js +17 -0
- package/build/video-editor/commands/update-video-editor-job-title.command.js +16 -0
- package/build/video-editor/enums/index.js +17 -0
- package/build/video-editor/enums/video-editor-model-strategy.enum.js +10 -0
- package/build/video-editor/index.js +22 -0
- package/build/video-editor/models/index.js +19 -0
- package/build/video-editor/models/video-editor-config.schema.js +11 -0
- package/build/video-editor/models/video-editor-job.schema.js +27 -0
- package/build/video-editor/models/video-editor-model.schema.js +24 -0
- package/build/video-editor/queries/find-video-editor-job-by-id.query.js +19 -0
- package/build/video-editor/queries/find-video-editor-jobs.query.js +28 -0
- package/build/video-editor/queries/get-video-editor-config.query.js +11 -0
- package/build/video-editor/queries/index.js +19 -0
- package/build/video-editor/routes/index.js +18 -0
- package/build/video-editor/routes/video-editor.amqp.routes.js +14 -0
- package/build/video-editor/routes/video-editor.http.routes.js +8 -0
- package/build/video-editor/utils/calculate-video-editing-price.js +10 -0
- package/build/video-editor/utils/index.js +17 -0
- package/build/writer/commands/generate-document-contents.command.js +1 -0
- package/build/writer/commands/index.js +1 -0
- package/build/writer/enums/index.js +1 -0
- package/build/writer/enums/writer-content-generation-strategy.enum.js +8 -0
- package/build/writer/index.js +1 -0
- package/build/writer/models/index.js +1 -0
- package/build/writer/models/writer-config.schema.js +2 -0
- package/build/writer/models/writer-document-type.schema.js +1 -0
- package/build/writer/models/writer-document.schema.js +1 -0
- package/build/writer/models/writer-model.schema.js +21 -0
- package/build/writer/utils/calculate-writer-content-generation-price.util.js +2 -2
- package/common/errors/errors.ts +408 -3
- package/index.ts +6 -0
- package/music/commands/convert-to-wav.command.ts +15 -0
- package/music/commands/delete-all-music-jobs.command.ts +13 -0
- package/music/commands/delete-music-job-by-uuid.command.ts +14 -0
- package/music/commands/generate-lyrics.command.ts +20 -0
- package/music/commands/generate-music.command.ts +18 -0
- package/music/commands/index.ts +8 -0
- package/music/commands/retry-music-job.command.ts +16 -0
- package/music/commands/set-reaction-to-music-job.command.ts +17 -0
- package/music/commands/update-music-job-title.command.ts +16 -0
- package/music/enums/index.ts +6 -0
- package/music/enums/music-action-type.enum.ts +3 -0
- package/music/enums/music-pricing-rule-type.enum.ts +3 -0
- package/music/enums/music-strategy.enum.ts +3 -0
- package/music/enums/music-vocal-gender.enum.ts +4 -0
- package/music/enums/suno-mode-type.enum.ts +6 -0
- package/music/enums/suno-model-type.enum.ts +6 -0
- package/music/index.ts +6 -0
- package/music/models/index.ts +4 -0
- package/music/models/music-config.schema.ts +8 -0
- package/music/models/music-job.schema.ts +57 -0
- package/music/models/music-model.schema.ts +40 -0
- package/music/models/music-track.schema.ts +19 -0
- package/music/queries/find-music-job-by-id.query.ts +11 -0
- package/music/queries/find-music-jobs.query.ts +33 -0
- package/music/queries/get-music-config.query.ts +8 -0
- package/music/queries/index.ts +3 -0
- package/music/routes/index.ts +1 -0
- package/music/routes/music.amqp.routes.ts +13 -0
- package/music/utils/calculate-music-generation-price.util.ts +5 -0
- package/music/utils/index.ts +1 -0
- package/package.json +1 -1
- package/presentation/commands/build-blank-slide.command.ts +15 -0
- package/presentation/commands/generate-and-insert-slide.command.ts +22 -0
- package/presentation/commands/index.ts +7 -0
- package/presentation/commands/presentation-generate-report.command.ts +20 -0
- package/presentation/commands/presentation-paraphrase.command.ts +21 -0
- package/presentation/commands/update-presentation-slides.command.ts +16 -0
- package/presentation/commands/update-slide-image-slot.command.ts +39 -0
- package/presentation/commands/update-slide.command.ts +17 -0
- package/presentation/enums/index.ts +4 -0
- package/presentation/enums/presentation-ai-action-call-status.enum.ts +5 -0
- package/presentation/enums/presentation-ai-action-pricing-type.enum.ts +4 -0
- package/presentation/enums/presentation-ai-action-type.enum.ts +4 -0
- package/presentation/enums/slide-image-slot-action.enum.ts +4 -0
- package/presentation/index.ts +1 -0
- package/presentation/models/index.ts +1 -0
- package/presentation/models/presentation-ai-action.schema.ts +30 -0
- package/presentation/models/presentation-config.schema.ts +3 -0
- package/presentation/models/presentation.schema.ts +4 -1
- package/presentation/models/slide-content-edit.schema.ts +160 -0
- package/presentation/models/slide-content.schema.ts +104 -11
- package/presentation/models/slide-image-slot.schema.ts +1 -0
- package/presentation/models/slide.schema.ts +47 -0
- package/presentation/routes/presentation.routes.ts +7 -0
- package/presentation/utils/calculate-presentation-ai-action-price.util.ts +20 -0
- package/presentation/utils/index.ts +1 -0
- package/tools/enums/tool-type.enum.ts +4 -0
- package/video/enums/video-strategy.enum.ts +2 -0
- package/video/routes/video.http.routes.ts +1 -0
- package/video-editor/commands/delete-all-video-editor-jobs.command.ts +13 -0
- package/video-editor/commands/delete-video-editor-job-by-uuid.command.ts +14 -0
- package/video-editor/commands/edit-video.command.ts +19 -0
- package/video-editor/commands/index.ts +6 -0
- package/video-editor/commands/retry-video-editor-job.command.ts +16 -0
- package/video-editor/commands/set-reaction-to-video-editor-job.command.ts +17 -0
- package/video-editor/commands/update-video-editor-job-title.command.ts +16 -0
- package/video-editor/enums/index.ts +1 -0
- package/video-editor/enums/video-editor-model-strategy.enum.ts +6 -0
- package/video-editor/index.ts +6 -0
- package/video-editor/models/index.ts +3 -0
- package/video-editor/models/video-editor-config.schema.ts +7 -0
- package/video-editor/models/video-editor-job.schema.ts +27 -0
- package/video-editor/models/video-editor-model.schema.ts +23 -0
- package/video-editor/queries/find-video-editor-job-by-id.query.ts +19 -0
- package/video-editor/queries/find-video-editor-jobs.query.ts +33 -0
- package/video-editor/queries/get-video-editor-config.query.ts +11 -0
- package/video-editor/queries/index.ts +3 -0
- package/video-editor/routes/index.ts +2 -0
- package/video-editor/routes/video-editor.amqp.routes.ts +11 -0
- package/video-editor/routes/video-editor.http.routes.ts +6 -0
- package/video-editor/utils/calculate-video-editing-price.ts +12 -0
- package/video-editor/utils/index.ts +1 -0
- package/writer/commands/generate-document-contents.command.ts +1 -0
- package/writer/commands/index.ts +1 -0
- package/writer/enums/index.ts +1 -0
- package/writer/enums/writer-content-generation-strategy.enum.ts +4 -0
- package/writer/index.ts +1 -0
- package/writer/models/index.ts +1 -0
- package/writer/models/writer-config.schema.ts +2 -0
- package/writer/models/writer-document-type.schema.ts +1 -0
- package/writer/models/writer-document.schema.ts +1 -0
- package/writer/models/writer-model.schema.ts +21 -0
- package/writer/utils/calculate-writer-content-generation-price.util.ts +4 -2
package/common/errors/errors.ts
CHANGED
|
@@ -342,6 +342,95 @@ export const ERRORS = {
|
|
|
342
342
|
message: 'У пользователя недостаточно средств для генерации слайдов',
|
|
343
343
|
httpCode: 400,
|
|
344
344
|
},
|
|
345
|
+
CREATE_BLANK_SLIDE_ERROR: {
|
|
346
|
+
code: 'PRESENTATION.CREATE_BLANK_SLIDE_ERROR',
|
|
347
|
+
message: 'Произошла ошибка при создании пустого слайда',
|
|
348
|
+
httpCode: 500,
|
|
349
|
+
},
|
|
350
|
+
INVALID_CONTENT_TYPE_CHANGE: {
|
|
351
|
+
code: 'PRESENTATION.INVALID_CONTENT_TYPE_CHANGE',
|
|
352
|
+
message: 'Невозможно изменить тип существующего слайда',
|
|
353
|
+
httpCode: 400,
|
|
354
|
+
},
|
|
355
|
+
INVALID_SLIDE_POSITION: {
|
|
356
|
+
code: 'PRESENTATION.INVALID_SLIDE_POSITION',
|
|
357
|
+
message: 'Неверная позиция для вставки слайда',
|
|
358
|
+
httpCode: 400,
|
|
359
|
+
},
|
|
360
|
+
SLIDES_UPDATE_ERROR: {
|
|
361
|
+
code: 'PRESENTATION.SLIDES_UPDATE_ERROR',
|
|
362
|
+
message: 'Произошла ошибка при обновлении слайдов презентации',
|
|
363
|
+
httpCode: 500,
|
|
364
|
+
},
|
|
365
|
+
SLIDE_NOT_FOUND: {
|
|
366
|
+
code: 'PRESENTATION.SLIDE_NOT_FOUND',
|
|
367
|
+
message: 'Слайд не найден',
|
|
368
|
+
httpCode: 404,
|
|
369
|
+
},
|
|
370
|
+
SLIDE_IMAGE_SLOT_NOT_FOUND: {
|
|
371
|
+
code: 'PRESENTATION.SLIDE_IMAGE_SLOT_NOT_FOUND',
|
|
372
|
+
message: 'Слот изображения слайда не найден',
|
|
373
|
+
httpCode: 404,
|
|
374
|
+
},
|
|
375
|
+
SLIDE_IMAGE_UPDATE_ERROR: {
|
|
376
|
+
code: 'PRESENTATION.SLIDE_IMAGE_UPDATE_ERROR',
|
|
377
|
+
message: 'Произошла ошибка при обновлении слота изображения слайда',
|
|
378
|
+
httpCode: 500,
|
|
379
|
+
},
|
|
380
|
+
INSUFFICIENT_BALANCE_FOR_IMAGE_GENERATION: {
|
|
381
|
+
code: 'PRESENTATION.INSUFFICIENT_BALANCE_FOR_IMAGE_GENERATION',
|
|
382
|
+
message: 'У пользователя недостаточно средств для генерации изображения',
|
|
383
|
+
httpCode: 400,
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
PRESENTATION_AI_ACTION: {
|
|
387
|
+
NOT_FOUND: {
|
|
388
|
+
code: 'PRESENTATION_AI_ACTION.NOT_FOUND',
|
|
389
|
+
message: 'ИИ операция для презентации не найдено',
|
|
390
|
+
httpCode: 404,
|
|
391
|
+
},
|
|
392
|
+
PROMPT_TOO_LONG: {
|
|
393
|
+
code: 'PRESENTATION_AI_ACTION.PROMPT_TOO_LONG',
|
|
394
|
+
message: 'Превышена максимальная длина запроса',
|
|
395
|
+
httpCode: 400,
|
|
396
|
+
},
|
|
397
|
+
INSUFFICIENT_BALANCE: {
|
|
398
|
+
code: 'PRESENTATION_AI_ACTION.INSUFFICIENT_BALANCE',
|
|
399
|
+
message: 'У пользователя недостаточно средств для выполнения операции',
|
|
400
|
+
httpCode: 400,
|
|
401
|
+
},
|
|
402
|
+
AI_ERROR: {
|
|
403
|
+
code: 'PRESENTATION_AI_ACTION.AI_ERROR',
|
|
404
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
405
|
+
httpCode: 500,
|
|
406
|
+
},
|
|
407
|
+
SAVE_ERROR: {
|
|
408
|
+
code: 'PRESENTATION_AI_ACTION.SAVE_ERROR',
|
|
409
|
+
message: 'Произошла ошибка при сохранении ИИ операции для презентации',
|
|
410
|
+
httpCode: 500,
|
|
411
|
+
},
|
|
412
|
+
FIND_ERROR: {
|
|
413
|
+
code: 'PRESENTATION_AI_ACTION.FIND_ERROR',
|
|
414
|
+
message: 'Произошла ошибка при поиске ИИ операций для презентации',
|
|
415
|
+
httpCode: 500,
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
PRESENTATION_AI_ACTION_CALL: {
|
|
419
|
+
NOT_FOUND: {
|
|
420
|
+
code: 'PRESENTATION_AI_ACTION_CALL.NOT_FOUND',
|
|
421
|
+
message: 'Вызов ИИ операции для презентации не найден',
|
|
422
|
+
httpCode: 404,
|
|
423
|
+
},
|
|
424
|
+
SAVE_ERROR: {
|
|
425
|
+
code: 'PRESENTATION_AI_ACTION_CALL.SAVE_ERROR',
|
|
426
|
+
message: 'Произошла ошибка при сохранении вызова ИИ операции для презентации',
|
|
427
|
+
httpCode: 500,
|
|
428
|
+
},
|
|
429
|
+
FIND_ERROR: {
|
|
430
|
+
code: 'PRESENTATION_AI_ACTION_CALL.FIND_ERROR',
|
|
431
|
+
message: 'Произошла ошибка при поиске вызова ИИ операции для презентации',
|
|
432
|
+
httpCode: 500,
|
|
433
|
+
},
|
|
345
434
|
},
|
|
346
435
|
SLIDE_OUTLINE: {
|
|
347
436
|
DELETE_ERROR: {
|
|
@@ -478,13 +567,30 @@ export const ERRORS = {
|
|
|
478
567
|
message: 'Некорректное соотношение сторон',
|
|
479
568
|
httpCode: 400,
|
|
480
569
|
},
|
|
481
|
-
|
|
482
570
|
RUNWAY_CONTENT_POLICY: {
|
|
483
|
-
code: 'VIDEO.
|
|
571
|
+
code: 'VIDEO.RUNWAY_CONTENT_POLICY',
|
|
484
572
|
message:
|
|
485
573
|
'Запрос на создание видео был отклонен, т.к. он не соответствует требованиям политики безопасности Runway.',
|
|
486
574
|
httpCode: 400,
|
|
487
575
|
},
|
|
576
|
+
|
|
577
|
+
SORA_CONTENT_POLICY: {
|
|
578
|
+
code: 'VIDEO.SORA_CONTENT_POLICY',
|
|
579
|
+
message:
|
|
580
|
+
'Запрос на создание видео был отклонен, т.к. он не соответствует требованиям политики безопасности SORA.',
|
|
581
|
+
httpCode: 400,
|
|
582
|
+
},
|
|
583
|
+
POLL_TIMEOUT: {
|
|
584
|
+
code: 'VIDEO.POLL_TIMEOUT',
|
|
585
|
+
message: 'Превышено время ожидания генерации видео',
|
|
586
|
+
httpCode: 500,
|
|
587
|
+
},
|
|
588
|
+
LUMA_CONTENT_POLICY: {
|
|
589
|
+
code: 'VIDEO.LUMA_CONTENT_POLICY',
|
|
590
|
+
message:
|
|
591
|
+
'Запрос на создание видео был отклонен, т.к. он не соответствует требованиям политики безопасности Luma.',
|
|
592
|
+
httpCode: 400,
|
|
593
|
+
},
|
|
488
594
|
},
|
|
489
595
|
VIDEO_MODEL: {
|
|
490
596
|
SAVE_ERROR: {
|
|
@@ -536,6 +642,11 @@ export const ERRORS = {
|
|
|
536
642
|
},
|
|
537
643
|
},
|
|
538
644
|
WRITER_DOCUMENT: {
|
|
645
|
+
SET_REACTION_TO_WRITER_DOCUMENT_ERROR: {
|
|
646
|
+
code: 'WRITER_DOCUMENT.SET_REACTION_TO_WRITER_DOCUMENT_ERROR',
|
|
647
|
+
message: 'Произошла ошибка при установке реакции на документ',
|
|
648
|
+
httpCode: 500,
|
|
649
|
+
},
|
|
539
650
|
SAVE_ERROR: {
|
|
540
651
|
code: 'WRITER_DOCUMENT.SAVE_ERROR',
|
|
541
652
|
message: 'Произошла ошибка при сохранении документа',
|
|
@@ -666,6 +777,23 @@ export const ERRORS = {
|
|
|
666
777
|
httpCode: 404,
|
|
667
778
|
},
|
|
668
779
|
},
|
|
780
|
+
WRITER_MODEL: {
|
|
781
|
+
MODEL_NOT_ACTIVE: {
|
|
782
|
+
code: 'WRITER_MODEL.MODEL_NOT_ACTIVE',
|
|
783
|
+
message: 'Модель для генерации текста не активна',
|
|
784
|
+
httpCode: 400,
|
|
785
|
+
},
|
|
786
|
+
FIND_ERROR: {
|
|
787
|
+
code: 'WRITER_MODEL.FIND_ERROR',
|
|
788
|
+
message: 'Произошла ошибка при поиске модели для генерации текста',
|
|
789
|
+
httpCode: 500,
|
|
790
|
+
},
|
|
791
|
+
SAVE_ERROR: {
|
|
792
|
+
code: 'WRITER_MODEL.SAVE_ERROR',
|
|
793
|
+
message: 'Произошла ошибка при сохранении модели для генерации текста',
|
|
794
|
+
httpCode: 500,
|
|
795
|
+
},
|
|
796
|
+
},
|
|
669
797
|
PROMPT_MODERATION: {
|
|
670
798
|
AI_ERROR: {
|
|
671
799
|
code: 'PROMPT_MODERATION.AI_ERROR',
|
|
@@ -674,15 +802,26 @@ export const ERRORS = {
|
|
|
674
802
|
},
|
|
675
803
|
PROMPT_IS_NOT_COMPLIANT: {
|
|
676
804
|
code: 'PROMPT_MODERATION.PROMPT_IS_NOT_COMPLIANT',
|
|
677
|
-
message: 'Запрос был отклонен, т.к. может не соответствовать правилам сервиса',
|
|
805
|
+
message: 'Запрос был отклонен, т.к. может не соответствовать правилам сервиса ruGPT',
|
|
678
806
|
httpCode: 400,
|
|
679
807
|
},
|
|
808
|
+
PROCESSING_ERROR: {
|
|
809
|
+
code: 'PROMPT_MODERATION.PROCESSING_ERROR',
|
|
810
|
+
message: 'Произошла ошибка при обработке запроса',
|
|
811
|
+
httpCode: 500,
|
|
812
|
+
},
|
|
680
813
|
GOOGLE_CONTENT_POLICY: {
|
|
681
814
|
code: 'PROMPT_MODERATION.GOOGLE_CONTENT_POLICY',
|
|
682
815
|
message:
|
|
683
816
|
'Запрос был отклонен, т.к. он не соответствует требованиям политики безопасности Google.',
|
|
684
817
|
httpCode: 400,
|
|
685
818
|
},
|
|
819
|
+
EXTERNAL_PROVIDER_CONTENT_POLICY: {
|
|
820
|
+
code: 'PROMPT_MODERATION.EXTERNAL_PROVIDER_CONTENT_POLICY',
|
|
821
|
+
message:
|
|
822
|
+
'Запрос был отклонен, т.к. он не соответствует требованиям политики безопасности поставщика модели',
|
|
823
|
+
httpCode: 400,
|
|
824
|
+
},
|
|
686
825
|
},
|
|
687
826
|
PROMPT_MODERATION_LOG: {
|
|
688
827
|
SAVE_ERROR: {
|
|
@@ -722,6 +861,11 @@ export const ERRORS = {
|
|
|
722
861
|
message: 'Произошла ошибка при поиске системного запроса',
|
|
723
862
|
httpCode: 404,
|
|
724
863
|
},
|
|
864
|
+
POLL_TIMEOUT: {
|
|
865
|
+
code: 'IMAGE_EDITOR.POLL_TIMEOUT',
|
|
866
|
+
message: 'Превышено время ожидания задачи на редактирование картинки',
|
|
867
|
+
httpCode: 500,
|
|
868
|
+
},
|
|
725
869
|
},
|
|
726
870
|
IMAGE_EDITOR_MODEL: {
|
|
727
871
|
SAVE_ERROR: {
|
|
@@ -773,4 +917,265 @@ export const ERRORS = {
|
|
|
773
917
|
httpCode: 500,
|
|
774
918
|
},
|
|
775
919
|
},
|
|
920
|
+
VIDEO_EDITOR: {
|
|
921
|
+
AI_ERROR: {
|
|
922
|
+
code: 'VIDEO_EDITOR.AI_ERROR',
|
|
923
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
924
|
+
httpCode: 500,
|
|
925
|
+
},
|
|
926
|
+
INSUFFICIENT_BALANCE: {
|
|
927
|
+
code: 'VIDEO_EDITOR.INSUFFICIENT_BALANCE',
|
|
928
|
+
message: 'У пользователя недостаточно средств',
|
|
929
|
+
httpCode: 400,
|
|
930
|
+
},
|
|
931
|
+
DELETE_ERROR: {
|
|
932
|
+
code: 'VIDEO_EDITOR.DELETE_ERROR',
|
|
933
|
+
message: 'Произошла ошибка при удалении',
|
|
934
|
+
httpCode: 500,
|
|
935
|
+
},
|
|
936
|
+
MAX_PROMPT_LENGTH_EXCEEDED: {
|
|
937
|
+
code: 'VIDEO_EDITOR.MAX_PROMPT_LENGTH_EXCEEDED',
|
|
938
|
+
message: 'Превышена максимальная длина запроса',
|
|
939
|
+
httpCode: 400,
|
|
940
|
+
},
|
|
941
|
+
MAX_DURATION_EXCEEDED: {
|
|
942
|
+
code: 'VIDEO_EDITOR.MAX_DURATION_EXCEEDED',
|
|
943
|
+
message: 'Превышена максимальная длительность видео',
|
|
944
|
+
httpCode: 400,
|
|
945
|
+
},
|
|
946
|
+
RUNWAY_CONTENT_POLICY: {
|
|
947
|
+
code: 'VIDEO_EDITOR.RUNWAY_CONTENT_POLICY',
|
|
948
|
+
message:
|
|
949
|
+
'Запрос на редактирование видео был отклонен, т.к. он не соответствует требованиям политики безопасности Runway.',
|
|
950
|
+
httpCode: 400,
|
|
951
|
+
},
|
|
952
|
+
POLL_TIMEOUT: {
|
|
953
|
+
code: 'VIDEO_EDITOR.POLL_TIMEOUT',
|
|
954
|
+
message: 'Превышено время ожидания редактирования видео',
|
|
955
|
+
httpCode: 500,
|
|
956
|
+
},
|
|
957
|
+
LUMA_CONTENT_POLICY: {
|
|
958
|
+
code: 'VIDEO.LUMA_CONTENT_POLICY',
|
|
959
|
+
message:
|
|
960
|
+
'Запрос на редактирование видео был отклонен, т.к. он не соответствует требованиям политики безопасности Luma.',
|
|
961
|
+
httpCode: 400,
|
|
962
|
+
},
|
|
963
|
+
},
|
|
964
|
+
VIDEO_EDITOR_MODEL: {
|
|
965
|
+
SAVE_ERROR: {
|
|
966
|
+
code: 'VIDEO_EDITOR_MODEL.SAVE_ERROR',
|
|
967
|
+
message: 'Произошла ошибка при сохранении модели для редактирования видео',
|
|
968
|
+
httpCode: 500,
|
|
969
|
+
},
|
|
970
|
+
FIND_ERROR: {
|
|
971
|
+
code: 'VIDEO_EDITOR_MODEL.FIND_ERROR',
|
|
972
|
+
message: 'Произошла ошибка при поиске модели для редактирования видео',
|
|
973
|
+
httpCode: 500,
|
|
974
|
+
},
|
|
975
|
+
NOT_FOUND: {
|
|
976
|
+
code: 'VIDEO_EDITOR_MODEL.NOT_FOUND',
|
|
977
|
+
message: 'Модель для редактирования видео не найдена',
|
|
978
|
+
httpCode: 404,
|
|
979
|
+
},
|
|
980
|
+
},
|
|
981
|
+
VIDEO_EDITOR_JOB: {
|
|
982
|
+
SAVE_ERROR: {
|
|
983
|
+
code: 'VIDEO_EDITOR_JOB.SAVE_ERROR',
|
|
984
|
+
message: 'Произошла ошибка при сохранении задания на редактирование видео',
|
|
985
|
+
httpCode: 500,
|
|
986
|
+
},
|
|
987
|
+
FIND_ERROR: {
|
|
988
|
+
code: 'VIDEO_EDITOR_JOB.FIND_ERROR',
|
|
989
|
+
message: 'Произошла ошибка при поиске задания на редактирование видео',
|
|
990
|
+
httpCode: 500,
|
|
991
|
+
},
|
|
992
|
+
NOT_FOUND: {
|
|
993
|
+
code: 'VIDEO_EDITOR_JOB.NOT_FOUND',
|
|
994
|
+
message: 'Задание на редактирование видео не найдено',
|
|
995
|
+
httpCode: 404,
|
|
996
|
+
},
|
|
997
|
+
NOT_AN_OWNER: {
|
|
998
|
+
code: 'VIDEO_EDITOR_JOB.NOT_AN_OWNER',
|
|
999
|
+
message: 'Пользователь не является владельцем задания на редактирование видео',
|
|
1000
|
+
httpCode: 403,
|
|
1001
|
+
},
|
|
1002
|
+
NOT_IN_FAILED_STATE_TO_RETRY: {
|
|
1003
|
+
code: 'VIDEO_EDITOR_JOB.NOT_IN_FAILED_STATE_TO_RETRY',
|
|
1004
|
+
message:
|
|
1005
|
+
'Задание на редактирование видео не в состоянии "failed". Невозможно повторить',
|
|
1006
|
+
httpCode: 400,
|
|
1007
|
+
},
|
|
1008
|
+
DELETE_ERROR: {
|
|
1009
|
+
code: 'VIDEO_EDITOR_JOB.DELETE_ERROR',
|
|
1010
|
+
message: 'Произошла ошибка при удалении задания на редактирование видео',
|
|
1011
|
+
httpCode: 500,
|
|
1012
|
+
},
|
|
1013
|
+
},
|
|
1014
|
+
MUSIC_EDITOR: {
|
|
1015
|
+
AI_ERROR: {
|
|
1016
|
+
code: 'MUSIC_EDITOR.AI_ERROR',
|
|
1017
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
1018
|
+
httpCode: 500,
|
|
1019
|
+
},
|
|
1020
|
+
INSUFFICIENT_BALANCE: {
|
|
1021
|
+
code: 'MUSIC_EDITOR.INSUFFICIENT_BALANCE',
|
|
1022
|
+
message: 'У пользователя недостаточно средств',
|
|
1023
|
+
httpCode: 400,
|
|
1024
|
+
},
|
|
1025
|
+
DELETE_ERROR: {
|
|
1026
|
+
code: 'MUSIC_EDITOR.DELETE_ERROR',
|
|
1027
|
+
message: 'Произошла ошибка при удалении',
|
|
1028
|
+
httpCode: 500,
|
|
1029
|
+
},
|
|
1030
|
+
MAX_PROMPT_LENGTH_EXCEEDED: {
|
|
1031
|
+
code: 'MUSIC_EDITOR.MAX_PROMPT_LENGTH_EXCEEDED',
|
|
1032
|
+
message: 'Превышена максимальная длина запроса',
|
|
1033
|
+
httpCode: 400,
|
|
1034
|
+
},
|
|
1035
|
+
MAX_DURATION_EXCEEDED: {
|
|
1036
|
+
code: 'MUSIC_EDITOR.MAX_DURATION_EXCEEDED',
|
|
1037
|
+
message: 'Превышена максимальная длительность музыки',
|
|
1038
|
+
httpCode: 400,
|
|
1039
|
+
},
|
|
1040
|
+
},
|
|
1041
|
+
MUSIC_EDITOR_JOB: {
|
|
1042
|
+
SAVE_ERROR: {
|
|
1043
|
+
code: 'MUSIC_EDITOR_JOB.SAVE_ERROR',
|
|
1044
|
+
message: 'Произошла ошибка при сохранении задания на редактирование музыки',
|
|
1045
|
+
httpCode: 500,
|
|
1046
|
+
},
|
|
1047
|
+
FIND_ERROR: {
|
|
1048
|
+
code: 'MUSIC_EDITOR_JOB.FIND_ERROR',
|
|
1049
|
+
message: 'Произошла ошибка при поиске задания на редактирование музыки',
|
|
1050
|
+
httpCode: 500,
|
|
1051
|
+
},
|
|
1052
|
+
NOT_FOUND: {
|
|
1053
|
+
code: 'MUSIC_EDITOR_JOB.NOT_FOUND',
|
|
1054
|
+
message: 'Задание на редактирование музыки не найдено',
|
|
1055
|
+
httpCode: 404,
|
|
1056
|
+
},
|
|
1057
|
+
NOT_AN_OWNER: {
|
|
1058
|
+
code: 'MUSIC_EDITOR_JOB.NOT_AN_OWNER',
|
|
1059
|
+
message: 'Пользователь не является владельцем задания на редактирование музыки',
|
|
1060
|
+
httpCode: 403,
|
|
1061
|
+
},
|
|
1062
|
+
NOT_IN_FAILED_STATE_TO_RETRY: {
|
|
1063
|
+
code: 'MUSIC_EDITOR_JOB.NOT_IN_FAILED_STATE_TO_RETRY',
|
|
1064
|
+
message:
|
|
1065
|
+
'Задание на редактирование музыки не в состоянии "failed". Невозможно повторить',
|
|
1066
|
+
httpCode: 400,
|
|
1067
|
+
},
|
|
1068
|
+
DELETE_ERROR: {
|
|
1069
|
+
code: 'MUSIC_EDITOR_JOB.DELETE_ERROR',
|
|
1070
|
+
message: 'Произошла ошибка при удалении задания на редактирование музыки',
|
|
1071
|
+
httpCode: 500,
|
|
1072
|
+
},
|
|
1073
|
+
},
|
|
1074
|
+
MUSIC: {
|
|
1075
|
+
AI_ERROR: {
|
|
1076
|
+
code: 'MUSIC.AI_ERROR',
|
|
1077
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
1078
|
+
httpCode: 500,
|
|
1079
|
+
},
|
|
1080
|
+
INSUFFICIENT_BALANCE: {
|
|
1081
|
+
code: 'MUSIC.INSUFFICIENT_BALANCE',
|
|
1082
|
+
message: 'У пользователя недостаточно средств',
|
|
1083
|
+
httpCode: 400,
|
|
1084
|
+
},
|
|
1085
|
+
INVALID_PARAMS: {
|
|
1086
|
+
code: 'MUSIC.INVALID_PARAMS',
|
|
1087
|
+
message: 'Некорректные параметры музыки',
|
|
1088
|
+
httpCode: 400,
|
|
1089
|
+
},
|
|
1090
|
+
DELETE_ERROR: {
|
|
1091
|
+
code: 'MUSIC.DELETE_ERROR',
|
|
1092
|
+
message: 'Произошла ошибка при удалении генерации музыки',
|
|
1093
|
+
httpCode: 500,
|
|
1094
|
+
},
|
|
1095
|
+
INVALID_GENDER: {
|
|
1096
|
+
code: 'MUSIC.INVALID_GENDER',
|
|
1097
|
+
message: 'Некорректный выбор голоса вокала',
|
|
1098
|
+
httpCode: 400,
|
|
1099
|
+
},
|
|
1100
|
+
MAX_PROMPT_LENGTH_EXCEEDED: {
|
|
1101
|
+
code: 'MUSIC.MAX_PROMPT_LENGTH_EXCEEDED',
|
|
1102
|
+
message: 'Превышена максимальная длина запроса',
|
|
1103
|
+
httpCode: 400,
|
|
1104
|
+
},
|
|
1105
|
+
SUNO_CONTENT_POLICY: {
|
|
1106
|
+
code: 'MUSIC.SUNO_CONTENT_POLICY',
|
|
1107
|
+
message:
|
|
1108
|
+
'Запрос на создание музыки был отклонен, т.к. он не соответствует требованиям политики безопасности Suno.',
|
|
1109
|
+
httpCode: 400,
|
|
1110
|
+
},
|
|
1111
|
+
GENERATE_LYRICS_ERROR: {
|
|
1112
|
+
code: 'MUSIC.GENERATE_LYRICS_ERROR',
|
|
1113
|
+
message: 'Произошла ошибка при генерации текста музыки',
|
|
1114
|
+
httpCode: 500,
|
|
1115
|
+
},
|
|
1116
|
+
CONVERT_TO_WAV_ERROR: {
|
|
1117
|
+
code: 'MUSIC.CONVERT_TO_WAV_ERROR',
|
|
1118
|
+
message: 'Произошла ошибка при конвертации mp3 в wav',
|
|
1119
|
+
httpCode: 500,
|
|
1120
|
+
},
|
|
1121
|
+
POLL_TIMEOUT: {
|
|
1122
|
+
code: 'MUSIC.POLL_TIMEOUT',
|
|
1123
|
+
message: 'Превышено время ожидания генерации музыки',
|
|
1124
|
+
httpCode: 500,
|
|
1125
|
+
},
|
|
1126
|
+
},
|
|
1127
|
+
MUSIC_MODEL: {
|
|
1128
|
+
SAVE_ERROR: {
|
|
1129
|
+
code: 'MUSIC_MODEL.SAVE_ERROR',
|
|
1130
|
+
message: 'Произошла ошибка при сохранении модели для генерации музыки',
|
|
1131
|
+
httpCode: 500,
|
|
1132
|
+
},
|
|
1133
|
+
FIND_ERROR: {
|
|
1134
|
+
code: 'MUSIC_MODEL.FIND_ERROR',
|
|
1135
|
+
message: 'Произошла ошибка при поиске модели для генерации музыки',
|
|
1136
|
+
httpCode: 500,
|
|
1137
|
+
},
|
|
1138
|
+
NOT_FOUND: {
|
|
1139
|
+
code: 'MUSIC_MODEL.NOT_FOUND',
|
|
1140
|
+
message: 'Модель для генерации музыки не найдена',
|
|
1141
|
+
httpCode: 404,
|
|
1142
|
+
},
|
|
1143
|
+
MODEL_ARCHIVED: {
|
|
1144
|
+
code: 'MUSIC_MODEL.MODEL_ARCHIVED',
|
|
1145
|
+
message: 'Модель для генерации музыки архивирована',
|
|
1146
|
+
httpCode: 400,
|
|
1147
|
+
},
|
|
1148
|
+
},
|
|
1149
|
+
MUSIC_JOB: {
|
|
1150
|
+
SAVE_ERROR: {
|
|
1151
|
+
code: 'MUSIC_JOB.SAVE_ERROR',
|
|
1152
|
+
message: 'Произошла ошибка при сохранении задания на генерацию музыки',
|
|
1153
|
+
httpCode: 500,
|
|
1154
|
+
},
|
|
1155
|
+
FIND_ERROR: {
|
|
1156
|
+
code: 'MUSIC_JOB.FIND_ERROR',
|
|
1157
|
+
message: 'Произошла ошибка при поиске задания на генерацию музыки',
|
|
1158
|
+
httpCode: 500,
|
|
1159
|
+
},
|
|
1160
|
+
NOT_FOUND: {
|
|
1161
|
+
code: 'MUSIC_JOB.NOT_FOUND',
|
|
1162
|
+
message: 'Задание на генерацию музыки не найдено',
|
|
1163
|
+
httpCode: 404,
|
|
1164
|
+
},
|
|
1165
|
+
NOT_AN_OWNER: {
|
|
1166
|
+
code: 'MUSIC_JOB.NOT_AN_OWNER',
|
|
1167
|
+
message: 'Пользователь не является владельцем задания на генерацию музыки',
|
|
1168
|
+
httpCode: 403,
|
|
1169
|
+
},
|
|
1170
|
+
NOT_IN_FAILED_STATE_TO_RETRY: {
|
|
1171
|
+
code: 'MUSIC_JOB.NOT_IN_FAILED_STATE_TO_RETRY',
|
|
1172
|
+
message: 'Задание на генерацию музыки не в состоянии "failed". Невозможно повторить',
|
|
1173
|
+
httpCode: 400,
|
|
1174
|
+
},
|
|
1175
|
+
DELETE_ERROR: {
|
|
1176
|
+
code: 'MUSIC_JOB.DELETE_ERROR',
|
|
1177
|
+
message: 'Произошла ошибка при удалении задания на генерацию музыки',
|
|
1178
|
+
httpCode: 500,
|
|
1179
|
+
},
|
|
1180
|
+
},
|
|
776
1181
|
} as const;
|
package/index.ts
CHANGED
|
@@ -7,6 +7,8 @@ export * from './language';
|
|
|
7
7
|
export * from './video';
|
|
8
8
|
export * from './writer';
|
|
9
9
|
export * from './image-editor';
|
|
10
|
+
export * from './video-editor';
|
|
11
|
+
export * from './music';
|
|
10
12
|
|
|
11
13
|
import * as common from './common';
|
|
12
14
|
import * as paraphrase from './paraphrase';
|
|
@@ -18,6 +20,8 @@ import * as language from './language';
|
|
|
18
20
|
import * as video from './video';
|
|
19
21
|
import * as writer from './writer';
|
|
20
22
|
import * as imageEditor from './image-editor';
|
|
23
|
+
import * as videoEditor from './video-editor';
|
|
24
|
+
import * as music from './music';
|
|
21
25
|
|
|
22
26
|
export namespace ToolService {
|
|
23
27
|
export import Common = common;
|
|
@@ -30,4 +34,6 @@ export namespace ToolService {
|
|
|
30
34
|
export import Video = video;
|
|
31
35
|
export import Writer = writer;
|
|
32
36
|
export import ImageEditor = imageEditor;
|
|
37
|
+
export import VideoEditor = videoEditor;
|
|
38
|
+
export import Music = music;
|
|
33
39
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace ConvertToWavCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
taskId: z.string(),
|
|
9
|
+
audioId: z.string(),
|
|
10
|
+
});
|
|
11
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
12
|
+
|
|
13
|
+
export const ResponseSchema = ICommandResponseSchema(z.object({ url: z.string().url() }));
|
|
14
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace DeleteAllMusicJobsCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
});
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = ICommandResponseSchema(z.boolean());
|
|
12
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace DeleteMusicJobByUuidCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
uuid: z.string(),
|
|
9
|
+
});
|
|
10
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = ICommandResponseSchema(z.boolean());
|
|
13
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace GenerateLyricsCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
userBalance: z.number(),
|
|
9
|
+
prompt: z.string(),
|
|
10
|
+
});
|
|
11
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
12
|
+
|
|
13
|
+
export const ResponseSchema = ICommandResponseSchema(
|
|
14
|
+
z.object({
|
|
15
|
+
title: z.string(),
|
|
16
|
+
lyrics: z.string(),
|
|
17
|
+
}),
|
|
18
|
+
);
|
|
19
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
import { MusicJobParamsSchema } from '../models';
|
|
5
|
+
|
|
6
|
+
export namespace GenerateMusicCommand {
|
|
7
|
+
export const RequestSchema = z.object({
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
userBalance: z.number(),
|
|
11
|
+
modelId: z.string(),
|
|
12
|
+
params: MusicJobParamsSchema,
|
|
13
|
+
});
|
|
14
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
15
|
+
|
|
16
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
17
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './delete-music-job-by-uuid.command';
|
|
2
|
+
export * from './delete-all-music-jobs.command';
|
|
3
|
+
export * from './retry-music-job.command';
|
|
4
|
+
export * from './set-reaction-to-music-job.command';
|
|
5
|
+
export * from './generate-music.command';
|
|
6
|
+
export * from './update-music-job-title.command';
|
|
7
|
+
export * from './convert-to-wav.command';
|
|
8
|
+
export * from './generate-lyrics.command';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
|
|
5
|
+
export namespace RetryMusicJobCommand {
|
|
6
|
+
export const RequestSchema = z.object({
|
|
7
|
+
uuid: z.string().uuid(),
|
|
8
|
+
userBalance: z.number(),
|
|
9
|
+
userId: z.string().uuid().nullable().optional(),
|
|
10
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
11
|
+
});
|
|
12
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
13
|
+
|
|
14
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
import { USER_REACTION } from '../../common';
|
|
5
|
+
|
|
6
|
+
export namespace SetReactionToMusicJobCommand {
|
|
7
|
+
export const RequestSchema = z.object({
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
uuid: z.string(),
|
|
11
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
12
|
+
});
|
|
13
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
|
|
5
|
+
export namespace UpdateMusicJobTitleCommand {
|
|
6
|
+
export const RequestSchema = z.object({
|
|
7
|
+
uuid: z.string().uuid(),
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
title: z.string().min(1).max(40),
|
|
11
|
+
});
|
|
12
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
13
|
+
|
|
14
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|