@purpleschool/gptbot 0.8.25 → 0.8.26

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 (33) hide show
  1. package/api/controllers/http/community.ts +2 -0
  2. package/api/routes.ts +2 -0
  3. package/build/api/controllers/http/community.js +1 -0
  4. package/build/api/routes.js +1 -0
  5. package/build/commands/community/create-community-post.command.js +0 -1
  6. package/build/commands/community/index.js +1 -0
  7. package/build/commands/community/send-report-to-community-post.command.js +15 -0
  8. package/build/constants/community/community-post-report/enums/community-post-report-reason.enum.js +18 -0
  9. package/build/constants/community/community-post-report/enums/index.js +17 -0
  10. package/build/constants/community/community-post-report/index.js +17 -0
  11. package/build/constants/community/enums/community-status.enum.js +2 -0
  12. package/build/constants/community/index.js +1 -0
  13. package/build/constants/errors/errors.js +44 -14
  14. package/build/models/community/community-post-report/community-post-report.schema.js +13 -0
  15. package/build/models/community/community-post-report/index.js +17 -0
  16. package/build/models/community/community-post.schema.js +1 -0
  17. package/build/models/community/index.js +1 -0
  18. package/build/models/tools/music/music-track.schema.js +1 -0
  19. package/commands/community/create-community-post.command.ts +1 -6
  20. package/commands/community/index.ts +1 -0
  21. package/commands/community/send-report-to-community-post.command.ts +17 -0
  22. package/constants/community/community-post-report/enums/community-post-report-reason.enum.ts +14 -0
  23. package/constants/community/community-post-report/enums/index.ts +1 -0
  24. package/constants/community/community-post-report/index.ts +1 -0
  25. package/constants/community/enums/community-status.enum.ts +2 -0
  26. package/constants/community/index.ts +1 -0
  27. package/constants/errors/errors.ts +44 -14
  28. package/models/community/community-post-report/community-post-report.schema.ts +11 -0
  29. package/models/community/community-post-report/index.ts +1 -0
  30. package/models/community/community-post.schema.ts +1 -0
  31. package/models/community/index.ts +1 -0
  32. package/models/tools/music/music-track.schema.ts +1 -0
  33. package/package.json +1 -1
@@ -14,6 +14,8 @@ export const COMMUNITY_ROUTES_PRIVATE = {
14
14
  ARCHIVE: (uuid: string) => `${uuid}/archive`,
15
15
  LIKE: (uuid: string) => `${uuid}/like`,
16
16
  FAVORITE: (uuid: string) => `${uuid}/favorite`,
17
+
18
+ REPORT: (uuid: string) => `report/${uuid}`,
17
19
  } as const;
18
20
 
19
21
  export const COMMUNITY_ROUTES_PUBLIC = {
package/api/routes.ts CHANGED
@@ -854,6 +854,8 @@ export const REST_API = {
854
854
  `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.LIKE(uuid)}`,
855
855
  FAVORITE: (uuid: string) =>
856
856
  `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.FAVORITE(uuid)}`,
857
+ REPORT: (uuid: string) =>
858
+ `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.REPORT(uuid)}`,
857
859
  },
858
860
  COMMUNITY_PUBLIC: {
859
861
  GET_ALL: `${ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PUBLIC}/${CONTROLLERS.COMMUNITY_ROUTES_PUBLIC.GET_ALL}`,
@@ -16,6 +16,7 @@ exports.COMMUNITY_ROUTES_PRIVATE = {
16
16
  ARCHIVE: (uuid) => `${uuid}/archive`,
17
17
  LIKE: (uuid) => `${uuid}/like`,
18
18
  FAVORITE: (uuid) => `${uuid}/favorite`,
19
+ REPORT: (uuid) => `report/${uuid}`,
19
20
  };
20
21
  exports.COMMUNITY_ROUTES_PUBLIC = {
21
22
  GET_ALL: '',
@@ -664,6 +664,7 @@ exports.REST_API = {
664
664
  GET_MY_FAVORITE: `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.GET_MY_FAVORITE}`,
665
665
  LIKE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.LIKE(uuid)}`,
666
666
  FAVORITE: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.FAVORITE(uuid)}`,
667
+ REPORT: (uuid) => `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PRIVATE}/${CONTROLLERS.COMMUNITY_ROUTES_PRIVATE.REPORT(uuid)}`,
667
668
  },
668
669
  COMMUNITY_PUBLIC: {
669
670
  GET_ALL: `${exports.ROOT}/${CONTROLLERS.COMMUNITY_CONTROLLER_PUBLIC}/${CONTROLLERS.COMMUNITY_ROUTES_PUBLIC.GET_ALL}`,
@@ -8,7 +8,6 @@ var CreateCommunityPostCommand;
8
8
  (function (CreateCommunityPostCommand) {
9
9
  CreateCommunityPostCommand.RequestBodySchema = zod_1.z
10
10
  .object({
11
- status: zod_1.z.nativeEnum(constants_1.COMMUNITY_POST_STATUS),
12
11
  visibility: zod_1.z.nativeEnum(constants_1.COMMUNITY_POST_VISIBILITY),
13
12
  caption: zod_1.z.string().max(500).nullable().optional(),
14
13
  messageId: zod_1.z.string().uuid().nullable().optional(),
@@ -25,3 +25,4 @@ __exportStar(require("./get-my-community-posts-by-criteria.command"), exports);
25
25
  __exportStar(require("./share-my-community-post.command"), exports);
26
26
  __exportStar(require("./get-my-likes-community-posts.command"), exports);
27
27
  __exportStar(require("./get-my-favorite-community-posts.command"), exports);
28
+ __exportStar(require("./send-report-to-community-post.command"), exports);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendReportToCommunityPostCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../constants");
6
+ var SendReportToCommunityPostCommand;
7
+ (function (SendReportToCommunityPostCommand) {
8
+ SendReportToCommunityPostCommand.RequestSchema = zod_1.z.object({
9
+ uuid: zod_1.z.string().uuid(),
10
+ });
11
+ SendReportToCommunityPostCommand.RequestBodySchema = zod_1.z.object({
12
+ reason: zod_1.z.nativeEnum(constants_1.COMMUNITY_POST_REPORT_REASON),
13
+ });
14
+ SendReportToCommunityPostCommand.ResponseSchema = zod_1.z.void();
15
+ })(SendReportToCommunityPostCommand || (exports.SendReportToCommunityPostCommand = SendReportToCommunityPostCommand = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMUNITY_POST_REPORT_REASON = void 0;
4
+ var COMMUNITY_POST_REPORT_REASON;
5
+ (function (COMMUNITY_POST_REPORT_REASON) {
6
+ COMMUNITY_POST_REPORT_REASON["SPAM"] = "spam";
7
+ COMMUNITY_POST_REPORT_REASON["COPYRIGHT"] = "copyright";
8
+ COMMUNITY_POST_REPORT_REASON["TRADEMARK"] = "trademark";
9
+ COMMUNITY_POST_REPORT_REASON["HATE_SPEECH"] = "hate_speech";
10
+ COMMUNITY_POST_REPORT_REASON["VIOLENCE"] = "violence";
11
+ COMMUNITY_POST_REPORT_REASON["SEXUAL_CONTENT"] = "sexual_content";
12
+ COMMUNITY_POST_REPORT_REASON["CHILD_SAFE_VIOLATION"] = "child_safe_violation";
13
+ COMMUNITY_POST_REPORT_REASON["ILLEGAL_CONTENT"] = "illegal_content";
14
+ COMMUNITY_POST_REPORT_REASON["PRIVACY_VIOLATION"] = "privacy_violation";
15
+ COMMUNITY_POST_REPORT_REASON["DEEPFAKE"] = "deepfake";
16
+ COMMUNITY_POST_REPORT_REASON["OFFENSIVE_CONTENT"] = "offensive_content";
17
+ COMMUNITY_POST_REPORT_REASON["MISINFORMATION"] = "misinformation";
18
+ })(COMMUNITY_POST_REPORT_REASON || (exports.COMMUNITY_POST_REPORT_REASON = COMMUNITY_POST_REPORT_REASON = {}));
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./community-post-report-reason.enum"), exports);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums"), exports);
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.COMMUNITY_POST_STATUS = void 0;
4
4
  var COMMUNITY_POST_STATUS;
5
5
  (function (COMMUNITY_POST_STATUS) {
6
+ COMMUNITY_POST_STATUS["PENDING"] = "pending";
7
+ COMMUNITY_POST_STATUS["REJECTED"] = "rejected";
6
8
  COMMUNITY_POST_STATUS["PUBLISHED"] = "published";
7
9
  COMMUNITY_POST_STATUS["ARCHIVED"] = "archived";
8
10
  COMMUNITY_POST_STATUS["DELETED"] = "deleted";
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./enums"), exports);
18
18
  __exportStar(require("./default-pagination.constant"), exports);
19
+ __exportStar(require("./community-post-report"), exports);
@@ -2482,74 +2482,104 @@ exports.ERRORS = {
2482
2482
  message: 'Произошла ошибка при повторном запросе перефразирования',
2483
2483
  httpCode: 500,
2484
2484
  },
2485
- FILES_SAVE_ERROR: {
2485
+ MODERATION_ERROR: {
2486
2486
  code: 'A507',
2487
+ message: 'Произошла ошибка при попытке модерации',
2488
+ httpCode: 500,
2489
+ },
2490
+ MODERATION_SAVE_ERROR: {
2491
+ code: 'A508',
2492
+ message: 'Ошибка при сохранении лога модерации',
2493
+ httpCode: 500,
2494
+ },
2495
+ COMMUNITY_POST_REPORT_SEND_ERROR: {
2496
+ code: 'A509',
2497
+ message: 'Произошла ошибка при отправке жалобы на пост в сообществе',
2498
+ httpCode: 500,
2499
+ },
2500
+ COMMUNITY_POST_REPORT_FIND_INTERNAL_ERROR: {
2501
+ code: 'A510',
2502
+ message: 'Произошла ошибка при поиске жалобы на пост в сообществе',
2503
+ httpCode: 500,
2504
+ },
2505
+ COMMUNITY_POST_REPORT_ALREADY_SENT: {
2506
+ code: 'A511',
2507
+ message: 'Жалоба на пост в сообществе уже отправлена',
2508
+ httpCode: 400,
2509
+ },
2510
+ FILES_SAVE_ERROR: {
2511
+ code: 'A512',
2487
2512
  message: 'Произошла ошибка при сохранении файлов',
2488
2513
  httpCode: 500,
2489
2514
  },
2490
2515
  IMAGE_GENERATION_CONFIG_ERROR: {
2491
- code: 'A508',
2516
+ code: 'A513',
2492
2517
  message: 'Произошла ошибка при получении конфигурации инструмента для генерации изображений',
2493
2518
  httpCode: 500,
2494
2519
  },
2495
2520
  IMAGE_GENERATION_SEND_REQUEST_ERROR: {
2496
- code: 'A509',
2521
+ code: 'A514',
2497
2522
  message: 'Произошла ошибка при отправке запроса на генерацию изображения',
2498
2523
  httpCode: 500,
2499
2524
  },
2500
2525
  IMAGE_GENERATION_FIND_JOBS_ERROR: {
2501
- code: 'A510',
2526
+ code: 'A515',
2502
2527
  message: 'Произошла ошибка при получении списка заданий на генерацию изображений',
2503
2528
  httpCode: 500,
2504
2529
  },
2505
2530
  IMAGE_GENERATION_FIND_JOB_ERROR: {
2506
- code: 'A511',
2531
+ code: 'A516',
2507
2532
  message: 'Произошла ошибка при получении задания на генерацию изображения',
2508
2533
  httpCode: 500,
2509
2534
  },
2510
2535
  IMAGE_GENERATION_RETRY_JOB_ERROR: {
2511
- code: 'A512',
2536
+ code: 'A517',
2512
2537
  message: 'Произошла ошибка при повторном запросе на генерацию изображения',
2513
2538
  httpCode: 500,
2514
2539
  },
2515
2540
  IMAGE_GENERATION_SET_REACTION_ERROR: {
2516
- code: 'A513',
2541
+ code: 'A518',
2517
2542
  message: 'Произошла ошибка при установке оценки задания на генерацию изображения',
2518
2543
  httpCode: 500,
2519
2544
  },
2520
2545
  IMAGE_GENERATION_UPDATE_TITLE_ERROR: {
2521
- code: 'A514',
2546
+ code: 'A519',
2522
2547
  message: 'Произошла ошибка при обновлении названия задания на генерацию изображения',
2523
2548
  httpCode: 500,
2524
2549
  },
2525
2550
  IMAGE_GENERATION_DELETE_JOB_ERROR: {
2526
- code: 'A515',
2551
+ code: 'A520',
2527
2552
  message: 'Произошла ошибка при удалении задания на генерацию изображения',
2528
2553
  httpCode: 500,
2529
2554
  },
2530
2555
  IMAGE_GENERATION_DELETE_ALL_JOBS_ERROR: {
2531
- code: 'A516',
2556
+ code: 'A521',
2532
2557
  message: 'Произошла ошибка при удалении всех заданий на генерацию изображений',
2533
2558
  httpCode: 500,
2534
2559
  },
2535
2560
  IMAGE_GENERATION_MODEL_NOT_FOUND: {
2536
- code: 'A517',
2561
+ code: 'A522',
2537
2562
  message: 'Не удалось найти указанную модель для генерации изображений',
2538
2563
  httpCode: 400,
2539
2564
  },
2540
2565
  IMAGE_GENERATION_MODEL_INACTIVE: {
2541
- code: 'A518',
2566
+ code: 'A523',
2542
2567
  message: 'Модель для генерации изображений неактивна',
2543
2568
  httpCode: 400,
2544
2569
  },
2545
2570
  IMAGE_GENERATION_MODEL_NOT_AVAILABLE: {
2546
- code: 'A519',
2571
+ code: 'A524',
2547
2572
  message: 'Модель для генерации изображений недоступна для данного пользователя',
2548
2573
  httpCode: 403,
2549
2574
  },
2550
2575
  IMAGE_GENERATION_MAX_SYMBOLS_EXCEEDED: {
2551
- code: 'A520',
2576
+ code: 'A525',
2552
2577
  message: 'Превышена максимальная количество символов',
2553
2578
  httpCode: 400,
2554
2579
  },
2580
+ MODERATION_NOT_COMPLIANT: {
2581
+ code: 'A526',
2582
+ message: 'Публикация не соответствует внутренним правилам сервиса.',
2583
+ httpCode: 400,
2584
+ },
2555
2585
  };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommunityPostReportSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ exports.CommunityPostReportSchema = zod_1.z.object({
7
+ uuid: zod_1.z.string().uuid(),
8
+ communityPostId: zod_1.z.string().uuid(),
9
+ userId: zod_1.z.string().uuid(),
10
+ reason: zod_1.z.nativeEnum(constants_1.COMMUNITY_POST_REPORT_REASON),
11
+ createdAt: zod_1.z.date(),
12
+ updatedAt: zod_1.z.date(),
13
+ });
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./community-post-report.schema"), exports);
@@ -21,6 +21,7 @@ exports.CommunityPostSchema = zod_1.z.object({
21
21
  toolType: zod_1.z.nativeEnum(constants_1.COMMUNITY_TOOL_TYPE).nullable(),
22
22
  views: zod_1.z.number(),
23
23
  likesCount: zod_1.z.number(),
24
+ reportsCount: zod_1.z.number(),
24
25
  publishedAt: zod_1.z.date().nullable(),
25
26
  archivedAt: zod_1.z.date().nullable(),
26
27
  createdAt: zod_1.z.date(),
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./community-post.schema"), exports);
18
18
  __exportStar(require("./community-post-media-data.schema"), exports);
19
+ __exportStar(require("./community-post-report"), exports);
@@ -8,6 +8,7 @@ exports.MusicTrackSchema = zod_1.z.object({
8
8
  audioId: zod_1.z.string(),
9
9
  audioUrl: zod_1.z.string(),
10
10
  coverUrl: zod_1.z.string(),
11
+ prompt: zod_1.z.string().nullable(),
11
12
  tags: zod_1.z.string(),
12
13
  duration: zod_1.z.number(),
13
14
  genJobId: zod_1.z.string().nullable().optional(),
@@ -1,15 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { ResponseCommunityPostSchema } from '../../models';
3
- import {
4
- COMMUNITY_POST_STATUS,
5
- COMMUNITY_POST_VISIBILITY,
6
- COMMUNITY_TOOL_TYPE,
7
- } from '../../constants';
3
+ import { COMMUNITY_POST_VISIBILITY, COMMUNITY_TOOL_TYPE } from '../../constants';
8
4
 
9
5
  export namespace CreateCommunityPostCommand {
10
6
  export const RequestBodySchema = z
11
7
  .object({
12
- status: z.nativeEnum(COMMUNITY_POST_STATUS),
13
8
  visibility: z.nativeEnum(COMMUNITY_POST_VISIBILITY),
14
9
  caption: z.string().max(500).nullable().optional(),
15
10
  messageId: z.string().uuid().nullable().optional(),
@@ -9,3 +9,4 @@ export * from './get-my-community-posts-by-criteria.command';
9
9
  export * from './share-my-community-post.command';
10
10
  export * from './get-my-likes-community-posts.command';
11
11
  export * from './get-my-favorite-community-posts.command';
12
+ export * from './send-report-to-community-post.command';
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { COMMUNITY_POST_REPORT_REASON } from '../../constants';
3
+
4
+ export namespace SendReportToCommunityPostCommand {
5
+ export const RequestSchema = z.object({
6
+ uuid: z.string().uuid(),
7
+ });
8
+ export type Request = z.infer<typeof RequestSchema>;
9
+
10
+ export const RequestBodySchema = z.object({
11
+ reason: z.nativeEnum(COMMUNITY_POST_REPORT_REASON),
12
+ });
13
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
14
+
15
+ export const ResponseSchema = z.void();
16
+ export type Response = z.infer<typeof ResponseSchema>;
17
+ }
@@ -0,0 +1,14 @@
1
+ export enum COMMUNITY_POST_REPORT_REASON {
2
+ SPAM = 'spam',
3
+ COPYRIGHT = 'copyright', // копирование стиля, чужих работ, треков
4
+ TRADEMARK = 'trademark', // логотипы, бренды без прав
5
+ HATE_SPEECH = 'hate_speech',
6
+ VIOLENCE = 'violence',
7
+ SEXUAL_CONTENT = 'sexual_content', // NSFW, запрещённые сцены
8
+ CHILD_SAFE_VIOLATION = 'child_safe_violation', // любые темы, нарушающие безопасность детей
9
+ ILLEGAL_CONTENT = 'illegal_content', // наркотики, оружие и др.
10
+ PRIVACY_VIOLATION = 'privacy_violation', // реалистичные лица обычных людей без согласия
11
+ DEEPFAKE = 'deepfake', // выдача человека за конкретного без разрешения
12
+ OFFENSIVE_CONTENT = 'offensive_content',
13
+ MISINFORMATION = 'misinformation', // фейковые реалистичные изображения событий/лиц
14
+ }
@@ -0,0 +1 @@
1
+ export * from './community-post-report-reason.enum';
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -1,4 +1,6 @@
1
1
  export enum COMMUNITY_POST_STATUS {
2
+ PENDING = 'pending',
3
+ REJECTED = 'rejected',
2
4
  PUBLISHED = 'published',
3
5
  ARCHIVED = 'archived',
4
6
  DELETED = 'deleted',
@@ -1,2 +1,3 @@
1
1
  export * from './enums';
2
2
  export * from './default-pagination.constant';
3
+ export * from './community-post-report';
@@ -2490,75 +2490,105 @@ export const ERRORS = {
2490
2490
  message: 'Произошла ошибка при повторном запросе перефразирования',
2491
2491
  httpCode: 500,
2492
2492
  },
2493
- FILES_SAVE_ERROR: {
2493
+ MODERATION_ERROR: {
2494
2494
  code: 'A507',
2495
+ message: 'Произошла ошибка при попытке модерации',
2496
+ httpCode: 500,
2497
+ },
2498
+ MODERATION_SAVE_ERROR: {
2499
+ code: 'A508',
2500
+ message: 'Ошибка при сохранении лога модерации',
2501
+ httpCode: 500,
2502
+ },
2503
+ COMMUNITY_POST_REPORT_SEND_ERROR: {
2504
+ code: 'A509',
2505
+ message: 'Произошла ошибка при отправке жалобы на пост в сообществе',
2506
+ httpCode: 500,
2507
+ },
2508
+ COMMUNITY_POST_REPORT_FIND_INTERNAL_ERROR: {
2509
+ code: 'A510',
2510
+ message: 'Произошла ошибка при поиске жалобы на пост в сообществе',
2511
+ httpCode: 500,
2512
+ },
2513
+ COMMUNITY_POST_REPORT_ALREADY_SENT: {
2514
+ code: 'A511',
2515
+ message: 'Жалоба на пост в сообществе уже отправлена',
2516
+ httpCode: 400,
2517
+ },
2518
+ FILES_SAVE_ERROR: {
2519
+ code: 'A512',
2495
2520
  message: 'Произошла ошибка при сохранении файлов',
2496
2521
  httpCode: 500,
2497
2522
  },
2498
2523
  IMAGE_GENERATION_CONFIG_ERROR: {
2499
- code: 'A508',
2524
+ code: 'A513',
2500
2525
  message:
2501
2526
  'Произошла ошибка при получении конфигурации инструмента для генерации изображений',
2502
2527
  httpCode: 500,
2503
2528
  },
2504
2529
  IMAGE_GENERATION_SEND_REQUEST_ERROR: {
2505
- code: 'A509',
2530
+ code: 'A514',
2506
2531
  message: 'Произошла ошибка при отправке запроса на генерацию изображения',
2507
2532
  httpCode: 500,
2508
2533
  },
2509
2534
  IMAGE_GENERATION_FIND_JOBS_ERROR: {
2510
- code: 'A510',
2535
+ code: 'A515',
2511
2536
  message: 'Произошла ошибка при получении списка заданий на генерацию изображений',
2512
2537
  httpCode: 500,
2513
2538
  },
2514
2539
  IMAGE_GENERATION_FIND_JOB_ERROR: {
2515
- code: 'A511',
2540
+ code: 'A516',
2516
2541
  message: 'Произошла ошибка при получении задания на генерацию изображения',
2517
2542
  httpCode: 500,
2518
2543
  },
2519
2544
  IMAGE_GENERATION_RETRY_JOB_ERROR: {
2520
- code: 'A512',
2545
+ code: 'A517',
2521
2546
  message: 'Произошла ошибка при повторном запросе на генерацию изображения',
2522
2547
  httpCode: 500,
2523
2548
  },
2524
2549
  IMAGE_GENERATION_SET_REACTION_ERROR: {
2525
- code: 'A513',
2550
+ code: 'A518',
2526
2551
  message: 'Произошла ошибка при установке оценки задания на генерацию изображения',
2527
2552
  httpCode: 500,
2528
2553
  },
2529
2554
  IMAGE_GENERATION_UPDATE_TITLE_ERROR: {
2530
- code: 'A514',
2555
+ code: 'A519',
2531
2556
  message: 'Произошла ошибка при обновлении названия задания на генерацию изображения',
2532
2557
  httpCode: 500,
2533
2558
  },
2534
2559
  IMAGE_GENERATION_DELETE_JOB_ERROR: {
2535
- code: 'A515',
2560
+ code: 'A520',
2536
2561
  message: 'Произошла ошибка при удалении задания на генерацию изображения',
2537
2562
  httpCode: 500,
2538
2563
  },
2539
2564
  IMAGE_GENERATION_DELETE_ALL_JOBS_ERROR: {
2540
- code: 'A516',
2565
+ code: 'A521',
2541
2566
  message: 'Произошла ошибка при удалении всех заданий на генерацию изображений',
2542
2567
  httpCode: 500,
2543
2568
  },
2544
2569
  IMAGE_GENERATION_MODEL_NOT_FOUND: {
2545
- code: 'A517',
2570
+ code: 'A522',
2546
2571
  message: 'Не удалось найти указанную модель для генерации изображений',
2547
2572
  httpCode: 400,
2548
2573
  },
2549
2574
  IMAGE_GENERATION_MODEL_INACTIVE: {
2550
- code: 'A518',
2575
+ code: 'A523',
2551
2576
  message: 'Модель для генерации изображений неактивна',
2552
2577
  httpCode: 400,
2553
2578
  },
2554
2579
  IMAGE_GENERATION_MODEL_NOT_AVAILABLE: {
2555
- code: 'A519',
2580
+ code: 'A524',
2556
2581
  message: 'Модель для генерации изображений недоступна для данного пользователя',
2557
2582
  httpCode: 403,
2558
2583
  },
2559
2584
  IMAGE_GENERATION_MAX_SYMBOLS_EXCEEDED: {
2560
- code: 'A520',
2585
+ code: 'A525',
2561
2586
  message: 'Превышена максимальная количество символов',
2562
2587
  httpCode: 400,
2563
2588
  },
2589
+ MODERATION_NOT_COMPLIANT: {
2590
+ code: 'A526',
2591
+ message: 'Публикация не соответствует внутренним правилам сервиса.',
2592
+ httpCode: 400,
2593
+ },
2564
2594
  };
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ import { COMMUNITY_POST_REPORT_REASON } from '../../../constants';
3
+
4
+ export const CommunityPostReportSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ communityPostId: z.string().uuid(),
7
+ userId: z.string().uuid(),
8
+ reason: z.nativeEnum(COMMUNITY_POST_REPORT_REASON),
9
+ createdAt: z.date(),
10
+ updatedAt: z.date(),
11
+ });
@@ -0,0 +1 @@
1
+ export * from './community-post-report.schema';
@@ -24,6 +24,7 @@ export const CommunityPostSchema = z.object({
24
24
  toolType: z.nativeEnum(COMMUNITY_TOOL_TYPE).nullable(),
25
25
  views: z.number(),
26
26
  likesCount: z.number(),
27
+ reportsCount: z.number(),
27
28
  publishedAt: z.date().nullable(),
28
29
  archivedAt: z.date().nullable(),
29
30
  createdAt: z.date(),
@@ -1,2 +1,3 @@
1
1
  export * from './community-post.schema';
2
2
  export * from './community-post-media-data.schema';
3
+ export * from './community-post-report';
@@ -6,6 +6,7 @@ export const MusicTrackSchema = z.object({
6
6
  audioId: z.string(),
7
7
  audioUrl: z.string(),
8
8
  coverUrl: z.string(),
9
+ prompt: z.string().nullable(),
9
10
  tags: z.string(),
10
11
  duration: z.number(),
11
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.8.25",
3
+ "version": "0.8.26",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",