@purpleschool/gptbot 0.8.86 → 0.8.87-stage-2

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 (67) hide show
  1. package/api/controllers/http/community.ts +1 -0
  2. package/api/controllers/http/user.ts +0 -1
  3. package/api/routes.ts +2 -2
  4. package/build/api/controllers/http/community.js +1 -0
  5. package/build/api/controllers/http/user.js +0 -1
  6. package/build/api/routes.js +1 -1
  7. package/build/commands/cabinet/get-user-statistics-by-month.command.js +0 -4
  8. package/build/commands/cabinet/get-user-statistics-overview.command.js +0 -1
  9. package/build/commands/chat/get-chats-config.command.js +1 -0
  10. package/build/commands/community/create-community-post.command.js +1 -1
  11. package/build/commands/message/create-text-message.command.js +1 -1
  12. package/build/commands/tools/writer/update-writer-document-outline.command.js +0 -1
  13. package/build/commands/user/index.js +0 -1
  14. package/build/constants/errors/errors.js +99 -19
  15. package/build/constants/file/enums/file-usage-mode.enum.js +8 -0
  16. package/build/constants/file/enums/index.js +1 -0
  17. package/build/constants/index.js +1 -0
  18. package/build/constants/token-reservation/enums/index.js +17 -0
  19. package/build/constants/token-reservation/enums/token-reservation-status.enum.js +10 -0
  20. package/build/constants/token-reservation/index.js +17 -0
  21. package/build/constants/tool/enums/tool-type.enum.js +3 -0
  22. package/build/models/community/community-post-media-data.schema.js +7 -8
  23. package/build/models/file-attachment.schema.js +18 -0
  24. package/build/models/index.js +1 -0
  25. package/build/models/tools/image-editor/image-editor-model.schema.js +1 -0
  26. package/build/models/tools/image-generation/image-generation-model.schema.js +1 -1
  27. package/build/models/tools/music/music-model.schema.js +2 -1
  28. package/build/models/tools/stt/stt-model.schema.js +1 -0
  29. package/build/models/tools/tts/tts-model.schema.js +1 -0
  30. package/build/models/tools/video/video-job.schema.js +0 -6
  31. package/build/models/tools/video/video-model.schema.js +3 -15
  32. package/build/models/tools/video-editor/video-editor-model.schema.js +2 -1
  33. package/build/models/tools/writer/index.js +0 -1
  34. package/build/models/tools/writer/writer-document.schema.js +0 -2
  35. package/commands/cabinet/get-user-statistics-by-month.command.ts +0 -7
  36. package/commands/cabinet/get-user-statistics-overview.command.ts +1 -2
  37. package/commands/chat/get-chats-config.command.ts +1 -0
  38. package/commands/community/create-community-post.command.ts +1 -1
  39. package/commands/message/create-text-message.command.ts +2 -2
  40. package/commands/tools/writer/update-writer-document-outline.command.ts +1 -6
  41. package/commands/user/index.ts +0 -1
  42. package/constants/errors/errors.ts +99 -19
  43. package/constants/file/enums/file-usage-mode.enum.ts +4 -0
  44. package/constants/file/enums/index.ts +1 -0
  45. package/constants/index.ts +1 -0
  46. package/constants/token-reservation/enums/index.ts +1 -0
  47. package/constants/token-reservation/enums/token-reservation-status.enum.ts +6 -0
  48. package/constants/token-reservation/index.ts +1 -0
  49. package/constants/tool/enums/tool-type.enum.ts +3 -0
  50. package/models/community/community-post-media-data.schema.ts +7 -8
  51. package/models/file-attachment.schema.ts +24 -0
  52. package/models/index.ts +1 -0
  53. package/models/tools/image-editor/image-editor-model.schema.ts +1 -0
  54. package/models/tools/image-generation/image-generation-model.schema.ts +1 -1
  55. package/models/tools/music/music-model.schema.ts +2 -1
  56. package/models/tools/stt/stt-model.schema.ts +1 -0
  57. package/models/tools/tts/tts-model.schema.ts +1 -0
  58. package/models/tools/video/video-job.schema.ts +0 -6
  59. package/models/tools/video/video-model.schema.ts +3 -15
  60. package/models/tools/video-editor/video-editor-model.schema.ts +2 -1
  61. package/models/tools/writer/index.ts +0 -1
  62. package/models/tools/writer/writer-document.schema.ts +0 -2
  63. package/package.json +1 -1
  64. package/build/commands/user/cancel-user-product.command.js +0 -21
  65. package/build/models/tools/writer/writer-document-title-page.schema.js +0 -15
  66. package/commands/user/cancel-user-product.command.ts +0 -21
  67. package/models/tools/writer/writer-document-title-page.schema.ts +0 -15
@@ -8,7 +8,7 @@ export namespace CreateCommunityPostCommand {
8
8
  caption: z.string().max(500).nullable().optional(),
9
9
  toolJobId: z.string().uuid(),
10
10
  toolType: z.nativeEnum(COMMUNITY_TOOL_TYPE),
11
- trackId: z.string().uuid().optional(),
11
+ trackIndex: z.number().optional(),
12
12
  });
13
13
  export type RequestBody = z.infer<typeof RequestBodySchema>;
14
14
 
@@ -1,11 +1,11 @@
1
1
  import { AI_MODEL_FEATURE } from '../../constants';
2
- import { ChatSchema, MessageSchema } from '../../models';
2
+ import { ChatSchema, FileAttachmentSchema, MessageSchema } from '../../models';
3
3
  import { z } from 'zod';
4
4
 
5
5
  export namespace CreateTextMessageCommand {
6
6
  export const RequestSchema = z.object({
7
7
  text: z.string(),
8
- files: z.array(z.string().uuid()).optional().default([]),
8
+ files: z.array(FileAttachmentSchema).optional().default([]),
9
9
  features: z.array(z.nativeEnum(AI_MODEL_FEATURE)).optional().default([]),
10
10
  });
11
11
 
@@ -1,14 +1,9 @@
1
1
  import { z } from 'zod';
2
- import {
3
- WriterDocumentOutlineSchema,
4
- WriterDocumentOutlineSectionSchema,
5
- WriterDocumentTitlePageSchema,
6
- } from '../../../models';
2
+ import { WriterDocumentOutlineSchema, WriterDocumentOutlineSectionSchema } from '../../../models';
7
3
 
8
4
  export namespace UpdateWriterDocumentOutlineCommand {
9
5
  export const RequestBodySchema = z.object({
10
6
  data: WriterDocumentOutlineSchema,
11
- titlePage: WriterDocumentTitlePageSchema.optional().nullable(),
12
7
  });
13
8
  export type RequestBody = z.infer<typeof RequestBodySchema>;
14
9
 
@@ -11,4 +11,3 @@ export * from './delete-account.command';
11
11
  export * from './get-aggregated-user-data.command';
12
12
  export * from './get-user-payments.command';
13
13
  export * from './cancel-user-subscription.command';
14
- export * from './cancel-user-product.command';
@@ -2645,49 +2645,129 @@ export const ERRORS = {
2645
2645
  message: 'Произошла ошибка при получении пользователя',
2646
2646
  httpCode: 500,
2647
2647
  },
2648
- IMAGE_GENERATION_MODEL_FIND_ERROR: {
2648
+ FILE_CONTENT_EXCEEDS_CONTEXT_LIMIT: {
2649
2649
  code: 'A538',
2650
+ message: 'Размер файла превышает лимит контекста модели',
2651
+ httpCode: 400,
2652
+ },
2653
+ IMAGE_GENERATION_MODEL_FIND_ERROR: {
2654
+ code: 'A539',
2650
2655
  message: 'Произошла ошибка при получении модели для генерации изображений',
2651
2656
  httpCode: 500,
2652
2657
  },
2653
- COMMUNITY_POST_TRACK_ID_REQUIRED: {
2654
- code: 'A539',
2655
- message: 'ID трека обязателен для музыкального поста',
2658
+ COMMUNITY_POST_TRACK_INDEX_REQUIRED: {
2659
+ code: 'A540',
2660
+ message: 'Индекс трека обязателен для музыкального поста',
2656
2661
  httpCode: 400,
2657
2662
  },
2658
- COMMUNITY_POST_TRACK_NOT_FOUND: {
2659
- code: 'A540',
2660
- message: 'Трек не найден',
2663
+ COMMUNITY_POST_TRACK_INDEX_OUT_OF_RANGE: {
2664
+ code: 'A541',
2665
+ message: 'Индекс трека выходит за пределы допустимого диапазона',
2666
+ httpCode: 400,
2667
+ },
2668
+ TOKEN_RESERVATION_CREATE_ERROR: {
2669
+ code: 'A542',
2670
+ message: 'Произошла ошибка при создании записи об удержании токенов',
2671
+ httpCode: 500,
2672
+ },
2673
+ TOKEN_RESERVATION_NOT_FOUND: {
2674
+ code: 'A543',
2675
+ message: 'Запись об удержании токенов не найдена',
2661
2676
  httpCode: 404,
2662
2677
  },
2678
+ TOKEN_RESERVATION_COMMIT_ERROR: {
2679
+ code: 'A544',
2680
+ message: 'Произошла ошибка при подтверждении записи об удержании токенов',
2681
+ httpCode: 500,
2682
+ },
2683
+ TOKEN_RESERVATION_RELEASE_ERROR: {
2684
+ code: 'A545',
2685
+ message: 'Произошла ошибка при освобождении записи об удержании токенов',
2686
+ httpCode: 500,
2687
+ },
2688
+ TOKEN_RESERVATION_INSUFFICIENT_BALANCE: {
2689
+ code: 'A546',
2690
+ message: 'Недостаточно токенов для выполнения операции',
2691
+ httpCode: 400,
2692
+ },
2693
+ TOKEN_RESERVATION_INVALID_STATUS: {
2694
+ code: 'A547',
2695
+ message: 'Запись об удержании токенов находится в недопустимом статусе',
2696
+ httpCode: 400,
2697
+ },
2698
+ MUSIC_PRICE_ERROR: {
2699
+ code: 'A548',
2700
+ message: 'Произошла ошибка при получении цены для генерации музыки',
2701
+ httpCode: 500,
2702
+ },
2703
+ IMAGE_GENERATION_PRICE_ERROR: {
2704
+ code: 'A549',
2705
+ message: 'Произошла ошибка при получении цены для генерации изображения',
2706
+ httpCode: 500,
2707
+ },
2708
+ IMAGE_EDITOR_PRICE_ERROR: {
2709
+ code: 'A550',
2710
+ message: 'Произошла ошибка при получении цены для редактирования изображения',
2711
+ httpCode: 500,
2712
+ },
2713
+ STT_PRICE_ERROR: {
2714
+ code: 'A551',
2715
+ message: 'Произошла ошибка при получении цены для транскрибации аудио',
2716
+ httpCode: 500,
2717
+ },
2718
+ TTS_PRICE_ERROR: {
2719
+ code: 'A552',
2720
+ message: 'Произошла ошибка при получении цены для синтеза речи',
2721
+ httpCode: 500,
2722
+ },
2723
+ VIDEO_PRICE_ERROR: {
2724
+ code: 'A553',
2725
+ message: 'Произошла ошибка при получении цены для генерации видео',
2726
+ httpCode: 500,
2727
+ },
2728
+ VIDEO_EDITOR_PRICE_ERROR: {
2729
+ code: 'A554',
2730
+ message: 'Произошла ошибка при получении цены для редактирования видео',
2731
+ httpCode: 500,
2732
+ },
2733
+ PARAPHRASE_PRICE_ERROR: {
2734
+ code: 'A555',
2735
+ message: 'Произошла ошибка при получении цены для парафразирования',
2736
+ httpCode: 500,
2737
+ },
2738
+ PRESENTATION_SLIDES_GENERATION_PRICE_ERROR: {
2739
+ code: 'A556',
2740
+ message: 'Произошла ошибка при получении цены для генерации слайдов презентации',
2741
+ httpCode: 500,
2742
+ },
2743
+ WRITER_CONTENT_GENERATION_PRICE_ERROR: {
2744
+ code: 'A557',
2745
+ message: 'Произошла ошибка при получении цены для генерации текста',
2746
+ httpCode: 500,
2747
+ },
2663
2748
  COMMUNITY_POST_EXISTANCE_CHECK_ERROR: {
2664
- code: 'A561',
2749
+ code: 'A558',
2665
2750
  message: 'Произошла ошибка при проверке существования поста.',
2666
2751
  httpCode: 500,
2667
2752
  },
2668
2753
  COMMUNITY_POST_ALREADY_EXISTS_ERROR: {
2669
- code: 'A562',
2754
+ code: 'A559',
2670
2755
  message: 'Данная работа уже опубликована в сообществе.',
2671
2756
  httpCode: 400,
2672
2757
  },
2673
2758
  MARK_JOB_PUBLISHED_STATUS_ERROR: {
2674
- code: 'A563',
2759
+ code: 'A560',
2675
2760
  message: 'Произошла ошибка при отметке работы как опубликованной.',
2676
2761
  httpCode: 500,
2677
2762
  },
2678
2763
  TASK_COMMUNITY_POST_NOT_PUBLISHED: {
2679
- code: 'A564',
2764
+ code: 'A561',
2680
2765
  message: 'Для получения награды опубликуйте работу в сообществе',
2681
2766
  httpCode: 400,
2682
2767
  },
2683
- PRODUCT_OWNERSHIP_ERROR: {
2684
- code: 'A565',
2685
- message: 'Пользователь не является владельцем продукта',
2686
- httpCode: 400,
2687
- },
2688
- PRODUCT_CANCEL_ERROR: {
2689
- code: 'A566',
2690
- message: 'Нельзя отменить пакет, которым юзер начал пользоваться',
2768
+ TOKEN_RESERVATION_EXPIRED: {
2769
+ code: 'A562',
2770
+ message: 'Запись об удержании токенов устарела',
2691
2771
  httpCode: 400,
2692
2772
  },
2693
2773
  };
@@ -0,0 +1,4 @@
1
+ export enum FILE_USAGE_MODE {
2
+ SEARCH = 'search',
3
+ CONTEXT = 'context',
4
+ }
@@ -1 +1,2 @@
1
1
  export * from './file-type.enum';
2
+ export * from './file-usage-mode.enum';
@@ -44,3 +44,4 @@ export * from './tool-music';
44
44
  export * from './community';
45
45
  export * from './user-profile';
46
46
  export * from './model';
47
+ export * from './token-reservation';
@@ -0,0 +1 @@
1
+ export * from './token-reservation-status.enum';
@@ -0,0 +1,6 @@
1
+ export enum TOKEN_RESERVATION_STATUS {
2
+ PENDING = 'pending',
3
+ COMMITTED = 'committed',
4
+ RELEASED = 'released',
5
+ EXPIRED = 'expired',
6
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -2,4 +2,7 @@ export enum TOOL_TYPE {
2
2
  PARAPHRASE = 'paraphrase',
3
3
  TTS = 'tts',
4
4
  STT = 'stt',
5
+ IMAGE_GENERATION = 'image_generation',
6
+ IMAGE_EDITOR = 'image_editor',
7
+ MUSIC = 'music',
5
8
  }
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { COMMUNITY_POST_TYPE } from '../../constants';
3
+ import { MusicTrackSchema } from '../tools/music/music-track.schema';
3
4
  import { VideoJobParamsSchema } from '../tools/video/video-job.schema';
4
5
  import { FileSchema } from '../file.schema';
5
6
  import { MusicJobParamsSchema } from '../tools';
@@ -22,7 +23,6 @@ export const VideoCommunityMediaSchema = z.object({
22
23
  title: z.string(),
23
24
  prompt: z.string(),
24
25
  videoUrl: z.string().nullable(),
25
- previewUrl: z.string().nullable(),
26
26
  params: VideoJobParamsSchema,
27
27
  });
28
28
 
@@ -38,13 +38,12 @@ export const MusicCommunityMediaSchema = z.object({
38
38
  type: z.literal(COMMUNITY_POST_TYPE.MUSIC),
39
39
  params: MusicJobParamsSchema,
40
40
  prompt: z.string(),
41
- track: z.object({
42
- uuid: z.string().optional(), // Опционально для backward compatibility
43
- audioUrl: z.string(),
44
- coverUrl: z.string(),
45
- duration: z.number(),
46
- title: z.string(),
47
- tags: z.string(),
41
+ track: MusicTrackSchema.pick({
42
+ audioUrl: true,
43
+ coverUrl: true,
44
+ duration: true,
45
+ title: true,
46
+ tags: true,
48
47
  }),
49
48
  });
50
49
 
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import { FILE_TYPE, FILE_USAGE_MODE } from '../constants';
3
+
4
+ export const TextFileAttachmentSchema = z.object({
5
+ fileId: z.string().uuid(),
6
+ type: z.enum([FILE_TYPE.TEXT, FILE_TYPE.DOCUMENT]),
7
+ usageMode: z.nativeEnum(FILE_USAGE_MODE),
8
+ });
9
+
10
+ export type TextFileAttachment = z.infer<typeof TextFileAttachmentSchema>;
11
+
12
+ export const ImageFileAttachmentSchema = z.object({
13
+ fileId: z.string().uuid(),
14
+ type: z.literal(FILE_TYPE.IMAGE),
15
+ });
16
+
17
+ export type ImageFileAttachment = z.infer<typeof ImageFileAttachmentSchema>;
18
+
19
+ export const FileAttachmentSchema = z.discriminatedUnion('type', [
20
+ TextFileAttachmentSchema,
21
+ ImageFileAttachmentSchema,
22
+ ]);
23
+
24
+ export type FileAttachment = z.infer<typeof FileAttachmentSchema>;
package/models/index.ts CHANGED
@@ -12,6 +12,7 @@ export * from './course.schema';
12
12
  export * from './date.schema';
13
13
  export * from './feedback.schema';
14
14
  export * from './file.schema';
15
+ export * from './file-attachment.schema';
15
16
  export * from './key-value.schema';
16
17
  export * from './form-submission.schema';
17
18
  export * from './icon-variants.schema';
@@ -39,6 +39,7 @@ export const ImageEditorModelSchema = z.object({
39
39
  pricingRules: ImageEditorModelPricingRulesSchema,
40
40
  unlockedBy: UnlockedBySchema.nullable(),
41
41
  canUse: z.boolean(),
42
+ status: z.string(),
42
43
  });
43
44
 
44
45
  export type ImageEditorModel = z.infer<typeof ImageEditorModelSchema>;
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
3
2
  import { IMAGE_GENERATION_RESOLUTION } from '../../../constants';
3
+ import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
4
 
5
5
  export const ImageGenerationModelParamsSchema = z.object({
6
6
  aspectRatio: z.record(
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
+ import { MUSIC_VOCAL_GENDER } from '../../../constants';
2
3
  import { IconVariantsSchema } from '../../icon-variants.schema';
3
4
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
- import { MUSIC_VOCAL_GENDER } from '../../../constants';
5
5
 
6
6
  export const MusicModelParamsSchema = z.object({
7
7
  vocalGender: z.object({
@@ -30,4 +30,5 @@ export const MusicModelSchema = z.object({
30
30
  params: MusicModelParamsSchema,
31
31
  unlockedBy: UnlockedBySchema.nullable(),
32
32
  canUse: z.boolean(),
33
+ status: z.string(),
33
34
  });
@@ -13,6 +13,7 @@ export const STTModelSchema = z.object({
13
13
  maxSizeMB: z.number(),
14
14
  unlockedBy: UnlockedBySchema.nullable(),
15
15
  canUse: z.boolean(),
16
+ status: z.string(),
16
17
  });
17
18
 
18
19
  export type STTModel = z.infer<typeof STTModelSchema>;
@@ -52,4 +52,5 @@ export const TTSModelSchema = z.object({
52
52
  voices: z.array(TTSVoiceSchema),
53
53
  unlockedBy: UnlockedBySchema.nullable(),
54
54
  canUse: z.boolean(),
55
+ status: z.string(),
55
56
  });
@@ -23,12 +23,6 @@ export const VideoJobSchema = ToolJobSchema.extend({
23
23
  url: z.string(),
24
24
  })
25
25
  .nullable(),
26
- preview: z
27
- .object({
28
- uuid: z.string(),
29
- url: z.string(),
30
- })
31
- .nullable(),
32
26
  params: VideoJobParamsSchema,
33
27
  modelId: z.string(),
34
28
  isPublished: z.boolean(),
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { IconVariantsSchema } from '../../icon-variants.schema';
3
- import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
2
  import { VIDEO_PRICING_RULE_TYPE } from '../../../constants';
5
3
  import { VIDEO_GENERATION_MODEL_LIMITATION } from '../../../constants/tool-video/enums/video-generation-model-limitation.enum';
4
+ import { IconVariantsSchema } from '../../icon-variants.schema';
5
+ import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
6
6
 
7
7
  export const VideoModelParamsSchema = z.object({
8
8
  imageAttachment: z.object({
@@ -23,16 +23,6 @@ export const VideoModelParamsSchema = z.object({
23
23
  options: z.array(z.string()),
24
24
  })
25
25
  .optional(),
26
- sound: z
27
- .object({
28
- options: z.array(z.boolean()),
29
- })
30
- .optional(),
31
- multiShots: z
32
- .object({
33
- options: z.array(z.boolean()),
34
- })
35
- .optional(),
36
26
  });
37
27
 
38
28
  export const VideoGenerationRequestParamsSchema = z.object({
@@ -41,15 +31,12 @@ export const VideoGenerationRequestParamsSchema = z.object({
41
31
  aspectRatio: z.string().optional(),
42
32
  quality: z.string().optional(),
43
33
  resolution: z.string().optional(),
44
- sound: z.boolean().optional(),
45
- multiShots: z.boolean().optional(),
46
34
  });
47
35
  export type VideoGenerationRequestParams = z.infer<typeof VideoGenerationRequestParamsSchema>;
48
36
 
49
37
  export const VideoModelPricingRuleConditionSchema = z.object({
50
38
  aspectRatio: z.string().optional(),
51
39
  resolution: z.string().optional(),
52
- sound: z.boolean().optional(),
53
40
  });
54
41
  export type VideoModelPricingRuleCondition = z.infer<typeof VideoModelPricingRuleConditionSchema>;
55
42
 
@@ -76,4 +63,5 @@ export const VideoModelSchema = z.object({
76
63
  unlockedBy: UnlockedBySchema.nullable(),
77
64
  limitations: z.array(z.nativeEnum(VIDEO_GENERATION_MODEL_LIMITATION)),
78
65
  canUse: z.boolean(),
66
+ status: z.string(),
79
67
  });
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
+ import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
2
3
  import { IconVariantsSchema } from '../../icon-variants.schema';
3
4
  import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
4
- import { VIDEO_EDITOR_MODEL_LIMITATION } from '../../../constants/tool-video-editor/enums/video-editor-model-limitation.enum';
5
5
 
6
6
  export const VideoEditorModelParamsSchema = z.object({
7
7
  supportedFormats: z.array(z.string()),
@@ -24,4 +24,5 @@ export const VideoEditorModelSchema = z.object({
24
24
  unlockedBy: UnlockedBySchema.nullable(),
25
25
  limitations: z.array(z.nativeEnum(VIDEO_EDITOR_MODEL_LIMITATION)),
26
26
  canUse: z.boolean(),
27
+ status: z.string(),
27
28
  });
@@ -3,4 +3,3 @@ export * from './writer-ai-action.schema';
3
3
  export * from './writer-document-outline.schema';
4
4
  export * from './writer-document.schema';
5
5
  export * from './writer-document-type.schema';
6
- export * from './writer-document-title-page.schema';
@@ -1,7 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { WriterDocumentOutlineSchema } from './writer-document-outline.schema';
3
3
  import { USER_REACTION, WRITER_DOCUMENT_STAGE } from '../../../constants';
4
- import { WriterDocumentTitlePageSchema } from './writer-document-title-page.schema';
5
4
 
6
5
  export const WriterDocumentSchema = z.object({
7
6
  uuid: z.string().uuid(),
@@ -10,7 +9,6 @@ export const WriterDocumentSchema = z.object({
10
9
  typeId: z.string(),
11
10
  stage: z.nativeEnum(WRITER_DOCUMENT_STAGE),
12
11
  outline: WriterDocumentOutlineSchema,
13
- titlePage: WriterDocumentTitlePageSchema,
14
12
  sourceMd: z.string().nullable(),
15
13
  finalMd: z.string().nullable(),
16
14
  userId: z.string().nullable(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.8.86",
3
+ "version": "0.8.87-stage-2",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CancelUserProductCommand = void 0;
7
- const zod_1 = __importDefault(require("zod"));
8
- var CancelUserProductCommand;
9
- (function (CancelUserProductCommand) {
10
- CancelUserProductCommand.RequestParamSchema = zod_1.default.object({
11
- uuid: zod_1.default.string().uuid(),
12
- });
13
- CancelUserProductCommand.RequestSchema = zod_1.default.object({
14
- userToProductId: zod_1.default.string().uuid(),
15
- });
16
- CancelUserProductCommand.ResponseSchema = zod_1.default.object({
17
- data: zod_1.default.object({
18
- isCancelled: zod_1.default.boolean(),
19
- }),
20
- });
21
- })(CancelUserProductCommand || (exports.CancelUserProductCommand = CancelUserProductCommand = {}));
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WriterDocumentTitlePageSchema = void 0;
4
- const zod_1 = require("zod");
5
- exports.WriterDocumentTitlePageSchema = zod_1.z
6
- .object({
7
- fullName: zod_1.z.string().min(1).max(200).optional().nullable(),
8
- city: zod_1.z.string().min(1).max(200).optional().nullable(),
9
- institution: zod_1.z.string().min(1).max(300).optional().nullable(),
10
- faculty: zod_1.z.string().min(1).max(200).optional().nullable(),
11
- specialty: zod_1.z.string().min(1).max(200).optional().nullable(),
12
- group: zod_1.z.string().min(1).max(100).optional().nullable(),
13
- subject: zod_1.z.string().min(1).max(200).optional().nullable(),
14
- })
15
- .nullable();
@@ -1,21 +0,0 @@
1
- import z from 'zod';
2
-
3
- export namespace CancelUserProductCommand {
4
- export const RequestParamSchema = z.object({
5
- uuid: z.string().uuid(),
6
- });
7
-
8
- export type RequestParam = z.infer<typeof RequestParamSchema>;
9
-
10
- export const RequestSchema = z.object({
11
- userToProductId: z.string().uuid(),
12
- });
13
-
14
- export const ResponseSchema = z.object({
15
- data: z.object({
16
- isCancelled: z.boolean(),
17
- }),
18
- });
19
-
20
- export type Response = z.infer<typeof ResponseSchema>;
21
- }
@@ -1,15 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- export const WriterDocumentTitlePageSchema = z
4
- .object({
5
- fullName: z.string().min(1).max(200).optional().nullable(),
6
- city: z.string().min(1).max(200).optional().nullable(),
7
- institution: z.string().min(1).max(300).optional().nullable(),
8
- faculty: z.string().min(1).max(200).optional().nullable(),
9
- specialty: z.string().min(1).max(200).optional().nullable(),
10
- group: z.string().min(1).max(100).optional().nullable(),
11
- subject: z.string().min(1).max(200).optional().nullable(),
12
- })
13
- .nullable();
14
-
15
- export type WriterDocumentTitlePage = z.infer<typeof WriterDocumentTitlePageSchema>;