@purpleschool/gptbot 0.8.99 → 0.8.101

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 (35) hide show
  1. package/api/controllers/http/index.ts +1 -0
  2. package/api/controllers/http/marketplace-card.ts +12 -0
  3. package/api/routes.ts +26 -0
  4. package/build/api/controllers/http/index.js +1 -0
  5. package/build/api/controllers/http/marketplace-card.js +14 -0
  6. package/build/api/routes.js +18 -0
  7. package/build/commands/tools/index.js +1 -0
  8. package/build/commands/tools/marketplace-card/delete-marketplace-card-by-uuid.command.js +13 -0
  9. package/build/commands/tools/marketplace-card/execute-marketplace-card.command.js +48 -0
  10. package/build/commands/tools/marketplace-card/find-marketplace-card-job-by-uuid.command.js +14 -0
  11. package/build/commands/tools/marketplace-card/find-marketplace-card-jobs.command.js +18 -0
  12. package/build/commands/tools/marketplace-card/get-marketplace-card-config.command.js +11 -0
  13. package/build/commands/tools/marketplace-card/index.js +23 -0
  14. package/build/commands/tools/marketplace-card/retry-marketplace-card-job.command.js +51 -0
  15. package/build/commands/tools/marketplace-card/set-reaction-to-marketplace-card.command.js +28 -0
  16. package/build/constants/errors/errors.js +123 -3
  17. package/build/models/tools/index.js +1 -0
  18. package/build/models/tools/marketplace-card/index.js +18 -0
  19. package/build/models/tools/marketplace-card/marketplace-card-config.schema.js +13 -0
  20. package/build/models/tools/marketplace-card/marketplace-card-job.schema.js +24 -0
  21. package/commands/tools/index.ts +1 -0
  22. package/commands/tools/marketplace-card/delete-marketplace-card-by-uuid.command.ts +13 -0
  23. package/commands/tools/marketplace-card/execute-marketplace-card.command.ts +53 -0
  24. package/commands/tools/marketplace-card/find-marketplace-card-job-by-uuid.command.ts +16 -0
  25. package/commands/tools/marketplace-card/find-marketplace-card-jobs.command.ts +18 -0
  26. package/commands/tools/marketplace-card/get-marketplace-card-config.command.ts +9 -0
  27. package/commands/tools/marketplace-card/index.ts +7 -0
  28. package/commands/tools/marketplace-card/retry-marketplace-card-job.command.ts +57 -0
  29. package/commands/tools/marketplace-card/set-reaction-to-marketplace-card.command.ts +33 -0
  30. package/constants/errors/errors.ts +125 -3
  31. package/models/tools/index.ts +1 -0
  32. package/models/tools/marketplace-card/index.ts +2 -0
  33. package/models/tools/marketplace-card/marketplace-card-config.schema.ts +14 -0
  34. package/models/tools/marketplace-card/marketplace-card-job.schema.ts +25 -0
  35. package/package.json +1 -1
@@ -56,4 +56,5 @@ export * from './b2b';
56
56
  export * from './community';
57
57
  export * from './user-profile';
58
58
  export * from './image-generation';
59
+ export * from './marketplace-card';
59
60
  export * from './interior-design';
@@ -0,0 +1,12 @@
1
+ export const MARKETPLACE_CARD_CONTROLLER_PRIVATE = 'private/tools/marketplace-card' as const;
2
+ export const MARKETPLACE_CARD_CONTROLLER_PUBLIC = 'public/tools/marketplace-card' as const;
3
+
4
+ export const MARKETPLACE_CARD_ROUTES = {
5
+ CONFIG: 'config',
6
+ EXECUTE: 'execute',
7
+ GET_JOBS: 'jobs',
8
+ GET_JOB: (uuid: string) => `jobs/${uuid}`,
9
+ SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
10
+ DELETE: (uuid: string) => `jobs/${uuid}`,
11
+ RETRY: (uuid: string) => `jobs/${uuid}/retry`,
12
+ } as const;
package/api/routes.ts CHANGED
@@ -978,4 +978,30 @@ export const REST_API = {
978
978
  RETRY: (uuid: string) =>
979
979
  `${ROOT}/${CONTROLLERS.IMAGE_GENERATION_CONTROLLER_PRIVATE}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.RETRY(uuid)}`,
980
980
  },
981
+ MARKETPLACE_CARD_CONTROLLER_PRIVATE: {
982
+ CONFIG: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
983
+ EXECUTE: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
984
+ GET_JOBS: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
985
+ GET_JOB: (uuid: string) =>
986
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
987
+ SET_REACTION: (uuid: string) =>
988
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
989
+ DELETE: (uuid: string) =>
990
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
991
+ RETRY: (uuid: string) =>
992
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
993
+ },
994
+ MARKETPLACE_CARD_CONTROLLER_PUBLIC: {
995
+ CONFIG: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
996
+ EXECUTE: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
997
+ GET_JOBS: `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
998
+ GET_JOB: (uuid: string) =>
999
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
1000
+ SET_REACTION: (uuid: string) =>
1001
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
1002
+ DELETE: (uuid: string) =>
1003
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
1004
+ RETRY: (uuid: string) =>
1005
+ `${ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
1006
+ },
981
1007
  } as const;
@@ -72,4 +72,5 @@ __exportStar(require("./b2b"), exports);
72
72
  __exportStar(require("./community"), exports);
73
73
  __exportStar(require("./user-profile"), exports);
74
74
  __exportStar(require("./image-generation"), exports);
75
+ __exportStar(require("./marketplace-card"), exports);
75
76
  __exportStar(require("./interior-design"), exports);
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MARKETPLACE_CARD_ROUTES = exports.MARKETPLACE_CARD_CONTROLLER_PUBLIC = exports.MARKETPLACE_CARD_CONTROLLER_PRIVATE = void 0;
4
+ exports.MARKETPLACE_CARD_CONTROLLER_PRIVATE = 'private/tools/marketplace-card';
5
+ exports.MARKETPLACE_CARD_CONTROLLER_PUBLIC = 'public/tools/marketplace-card';
6
+ exports.MARKETPLACE_CARD_ROUTES = {
7
+ CONFIG: 'config',
8
+ EXECUTE: 'execute',
9
+ GET_JOBS: 'jobs',
10
+ GET_JOB: (uuid) => `jobs/${uuid}`,
11
+ SET_REACTION: (uuid) => `jobs/${uuid}/reaction`,
12
+ DELETE: (uuid) => `jobs/${uuid}`,
13
+ RETRY: (uuid) => `jobs/${uuid}/retry`,
14
+ };
@@ -745,4 +745,22 @@ exports.REST_API = {
745
745
  DELETE_ALL: `${exports.ROOT}/${CONTROLLERS.IMAGE_GENERATION_CONTROLLER_PRIVATE}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.DELETE_ALL}`,
746
746
  RETRY: (uuid) => `${exports.ROOT}/${CONTROLLERS.IMAGE_GENERATION_CONTROLLER_PRIVATE}/${CONTROLLERS.IMAGE_GENERATION_ROUTES.RETRY(uuid)}`,
747
747
  },
748
+ MARKETPLACE_CARD_CONTROLLER_PRIVATE: {
749
+ CONFIG: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
750
+ EXECUTE: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
751
+ GET_JOBS: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
752
+ GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
753
+ SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
754
+ DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
755
+ RETRY: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PRIVATE}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
756
+ },
757
+ MARKETPLACE_CARD_CONTROLLER_PUBLIC: {
758
+ CONFIG: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.CONFIG}`,
759
+ EXECUTE: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.EXECUTE}`,
760
+ GET_JOBS: `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOBS}`,
761
+ GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.GET_JOB(uuid)}`,
762
+ SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.SET_REACTION(uuid)}`,
763
+ DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.DELETE(uuid)}`,
764
+ RETRY: (uuid) => `${exports.ROOT}/${CONTROLLERS.MARKETPLACE_CARD_CONTROLLER_PUBLIC}/${CONTROLLERS.MARKETPLACE_CARD_ROUTES.RETRY(uuid)}`,
765
+ },
748
766
  };
@@ -25,4 +25,5 @@ __exportStar(require("./image-editor"), exports);
25
25
  __exportStar(require("./video-editor"), exports);
26
26
  __exportStar(require("./music"), exports);
27
27
  __exportStar(require("./image-generation"), exports);
28
+ __exportStar(require("./marketplace-card"), exports);
28
29
  __exportStar(require("./interior-design"), exports);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteMarketplaceCardJobByUUIDCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ var DeleteMarketplaceCardJobByUUIDCommand;
6
+ (function (DeleteMarketplaceCardJobByUUIDCommand) {
7
+ DeleteMarketplaceCardJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
8
+ uuid: zod_1.z.string().uuid(),
9
+ });
10
+ DeleteMarketplaceCardJobByUUIDCommand.ResponseSchema = zod_1.z.object({
11
+ data: zod_1.z.boolean(),
12
+ });
13
+ })(DeleteMarketplaceCardJobByUUIDCommand || (exports.DeleteMarketplaceCardJobByUUIDCommand = DeleteMarketplaceCardJobByUUIDCommand = {}));
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecuteMarketplaceCardCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var ExecuteMarketplaceCardCommand;
7
+ (function (ExecuteMarketplaceCardCommand) {
8
+ ExecuteMarketplaceCardCommand.RequestSchema = zod_1.z
9
+ .object({
10
+ title: zod_1.z.string(),
11
+ subtitle: zod_1.z.string().nullable().optional(),
12
+ advantages: zod_1.z.array(zod_1.z.string()),
13
+ tags: zod_1.z.array(zod_1.z.string()),
14
+ stylePresetId: zod_1.z.string().uuid().nullable().optional(),
15
+ isCustom: zod_1.z.boolean(),
16
+ customStylePrompt: zod_1.z.string().nullable().optional(),
17
+ inputImages: zod_1.z.array(zod_1.z.string()),
18
+ backgroundDescription: zod_1.z.string().nullable().optional(),
19
+ })
20
+ .superRefine((data, ctx) => {
21
+ const hasPreset = Boolean(data.stylePresetId);
22
+ const hasCustomPrompt = Boolean(data.customStylePrompt);
23
+ if (!hasPreset && !hasCustomPrompt) {
24
+ ctx.addIssue({
25
+ code: zod_1.z.ZodIssueCode.custom,
26
+ message: 'customStylePrompt is required when stylePresetId is not provided',
27
+ path: ['customStylePrompt'],
28
+ });
29
+ }
30
+ if (data.isCustom && !hasCustomPrompt) {
31
+ ctx.addIssue({
32
+ code: zod_1.z.ZodIssueCode.custom,
33
+ message: 'customStylePrompt is required when isCustom is true',
34
+ path: ['customStylePrompt'],
35
+ });
36
+ }
37
+ if (!data.isCustom && hasCustomPrompt) {
38
+ ctx.addIssue({
39
+ code: zod_1.z.ZodIssueCode.custom,
40
+ message: 'customStylePrompt must be empty when isCustom is false',
41
+ path: ['customStylePrompt'],
42
+ });
43
+ }
44
+ });
45
+ ExecuteMarketplaceCardCommand.ResponseSchema = zod_1.z.object({
46
+ data: models_1.MarketplaceCardJobSchema,
47
+ });
48
+ })(ExecuteMarketplaceCardCommand || (exports.ExecuteMarketplaceCardCommand = ExecuteMarketplaceCardCommand = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindMarketplaceCardJobByUUIDCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var FindMarketplaceCardJobByUUIDCommand;
7
+ (function (FindMarketplaceCardJobByUUIDCommand) {
8
+ FindMarketplaceCardJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
9
+ uuid: zod_1.z.string().uuid(),
10
+ });
11
+ FindMarketplaceCardJobByUUIDCommand.ResponseSchema = zod_1.z.object({
12
+ data: models_1.MarketplaceCardJobSchema,
13
+ });
14
+ })(FindMarketplaceCardJobByUUIDCommand || (exports.FindMarketplaceCardJobByUUIDCommand = FindMarketplaceCardJobByUUIDCommand = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindMarketplaceCardJobsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var FindMarketplaceCardJobsCommand;
7
+ (function (FindMarketplaceCardJobsCommand) {
8
+ FindMarketplaceCardJobsCommand.RequestQuerySchema = zod_1.z.object({
9
+ limit: zod_1.z.coerce.number().min(1).optional(),
10
+ offset: zod_1.z.coerce.number().min(0).default(0).optional(),
11
+ title: zod_1.z.string().optional(),
12
+ });
13
+ FindMarketplaceCardJobsCommand.ResponseSchema = zod_1.z.object({
14
+ data: zod_1.z.array(models_1.MarketplaceCardJobSchema),
15
+ totalPages: zod_1.z.number(),
16
+ page: zod_1.z.number(),
17
+ });
18
+ })(FindMarketplaceCardJobsCommand || (exports.FindMarketplaceCardJobsCommand = FindMarketplaceCardJobsCommand = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMarketplaceCardConfigCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var GetMarketplaceCardConfigCommand;
7
+ (function (GetMarketplaceCardConfigCommand) {
8
+ GetMarketplaceCardConfigCommand.ResponseSchema = zod_1.z.object({
9
+ data: models_1.MarketplaceCardConfigSchema,
10
+ });
11
+ })(GetMarketplaceCardConfigCommand || (exports.GetMarketplaceCardConfigCommand = GetMarketplaceCardConfigCommand = {}));
@@ -0,0 +1,23 @@
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("./execute-marketplace-card.command"), exports);
18
+ __exportStar(require("./find-marketplace-card-job-by-uuid.command"), exports);
19
+ __exportStar(require("./find-marketplace-card-jobs.command"), exports);
20
+ __exportStar(require("./get-marketplace-card-config.command"), exports);
21
+ __exportStar(require("./retry-marketplace-card-job.command"), exports);
22
+ __exportStar(require("./set-reaction-to-marketplace-card.command"), exports);
23
+ __exportStar(require("./delete-marketplace-card-by-uuid.command"), exports);
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetryMarketplaceCardJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ var RetryMarketplaceCardJobCommand;
7
+ (function (RetryMarketplaceCardJobCommand) {
8
+ RetryMarketplaceCardJobCommand.RequestParamsSchema = zod_1.z.object({
9
+ uuid: zod_1.z.string().uuid(),
10
+ });
11
+ RetryMarketplaceCardJobCommand.RequestBodySchema = zod_1.z
12
+ .object({
13
+ title: zod_1.z.string(),
14
+ subtitle: zod_1.z.string().nullable().optional(),
15
+ advantages: zod_1.z.array(zod_1.z.string()),
16
+ tags: zod_1.z.array(zod_1.z.string()),
17
+ stylePresetId: zod_1.z.string().uuid().nullable().optional(),
18
+ isCustom: zod_1.z.boolean(),
19
+ customStylePrompt: zod_1.z.string().nullable().optional(),
20
+ inputImages: zod_1.z.array(zod_1.z.string()),
21
+ backgroundDescription: zod_1.z.string().nullable().optional(),
22
+ })
23
+ .superRefine((data, ctx) => {
24
+ const hasPreset = Boolean(data.stylePresetId);
25
+ const hasCustomPrompt = Boolean(data.customStylePrompt);
26
+ if (!hasPreset && !hasCustomPrompt) {
27
+ ctx.addIssue({
28
+ code: zod_1.z.ZodIssueCode.custom,
29
+ message: 'customStylePrompt is required when stylePresetId is not provided',
30
+ path: ['customStylePrompt'],
31
+ });
32
+ }
33
+ if (data.isCustom && !hasCustomPrompt) {
34
+ ctx.addIssue({
35
+ code: zod_1.z.ZodIssueCode.custom,
36
+ message: 'customStylePrompt is required when isCustom is true',
37
+ path: ['customStylePrompt'],
38
+ });
39
+ }
40
+ if (!data.isCustom && hasCustomPrompt) {
41
+ ctx.addIssue({
42
+ code: zod_1.z.ZodIssueCode.custom,
43
+ message: 'customStylePrompt must be empty when isCustom is false',
44
+ path: ['customStylePrompt'],
45
+ });
46
+ }
47
+ });
48
+ RetryMarketplaceCardJobCommand.ResponseSchema = zod_1.z.object({
49
+ data: models_1.MarketplaceCardJobSchema,
50
+ });
51
+ })(RetryMarketplaceCardJobCommand || (exports.RetryMarketplaceCardJobCommand = RetryMarketplaceCardJobCommand = {}));
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetReactionToMarketplaceCardJobCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../../models");
6
+ const constants_1 = require("../../../constants");
7
+ var SetReactionToMarketplaceCardJobCommand;
8
+ (function (SetReactionToMarketplaceCardJobCommand) {
9
+ SetReactionToMarketplaceCardJobCommand.RequestSchema = zod_1.z
10
+ .object({
11
+ reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
12
+ dislikeReason: zod_1.z.string().nullable().default(null),
13
+ })
14
+ .refine((data) => {
15
+ if (data.reaction !== constants_1.USER_REACTION.DISLIKED && data.dislikeReason) {
16
+ return false;
17
+ }
18
+ return true;
19
+ }, {
20
+ message: 'Dislike reason is not allowed when reaction is not DISLIKED',
21
+ });
22
+ SetReactionToMarketplaceCardJobCommand.RequestParamsSchema = zod_1.z.object({
23
+ uuid: zod_1.z.string().uuid(),
24
+ });
25
+ SetReactionToMarketplaceCardJobCommand.ResponseSchema = zod_1.z.object({
26
+ data: models_1.MarketplaceCardJobSchema,
27
+ });
28
+ })(SetReactionToMarketplaceCardJobCommand || (exports.SetReactionToMarketplaceCardJobCommand = SetReactionToMarketplaceCardJobCommand = {}));
@@ -4266,9 +4266,9 @@ exports.ERRORS = {
4266
4266
  },
4267
4267
  },
4268
4268
  INTERIOR_DESIGN: {
4269
- AI_ERROR: {
4270
- code: 'INTERIOR_DESIGN.AI_ERROR',
4271
- message: 'Произошла ошибка во время запроса к ИИ',
4269
+ CONFIG_ERROR: {
4270
+ code: 'INTERIOR_DESIGN.CONFIG_ERROR',
4271
+ message: 'Произошла ошибка при получении конфигурации инструмента для редактирования дизайна интерьера',
4272
4272
  httpCode: 500,
4273
4273
  },
4274
4274
  INSUFFICIENT_BALANCE: {
@@ -4301,6 +4301,21 @@ exports.ERRORS = {
4301
4301
  message: 'Превышено время ожидания задачи на редактирование дизайна интерьера',
4302
4302
  httpCode: 500,
4303
4303
  },
4304
+ PRICE_ERROR: {
4305
+ code: 'INTERIOR_DESIGN.PRICE_ERROR',
4306
+ message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4307
+ httpCode: 500,
4308
+ },
4309
+ SEND_REQUEST_ERROR: {
4310
+ code: 'INTERIOR_DESIGN.SEND_REQUEST_ERROR',
4311
+ message: 'Произошла ошибка при отправке запроса на редактирование дизайна интерьера',
4312
+ httpCode: 500,
4313
+ },
4314
+ RETRY_REQUEST_ERROR: {
4315
+ code: 'INTERIOR_DESIGN.RETRY_REQUEST_ERROR',
4316
+ message: 'Произошла ошибка при повторном запросе на редактирование дизайна интерьера',
4317
+ httpCode: 500,
4318
+ },
4304
4319
  },
4305
4320
  INTERIOR_DESIGN_MODEL: {
4306
4321
  SAVE_ERROR: {
@@ -4318,6 +4333,16 @@ exports.ERRORS = {
4318
4333
  message: 'Модель для редактирования дизайна интерьера не найдена',
4319
4334
  httpCode: 404,
4320
4335
  },
4336
+ NOT_AVAILABLE: {
4337
+ code: 'INTERIOR_DESIGN_MODEL.NOT_AVAILABLE',
4338
+ message: 'Данная модель для редактирования дизайна интерьера недоступна',
4339
+ httpCode: 401,
4340
+ },
4341
+ INACTIVE: {
4342
+ code: 'INTERIOR_DESIGN_MODEL.INACTIVE',
4343
+ message: 'Модель редактирования дизайна интерьера архивирована и недоступна для пользования',
4344
+ httpCode: 403,
4345
+ },
4321
4346
  },
4322
4347
  INTERIOR_DESIGN_JOB: {
4323
4348
  SAVE_ERROR: {
@@ -4355,6 +4380,16 @@ exports.ERRORS = {
4355
4380
  message: 'Произошла ошибка при обновлении задания на редактирование дизайна интерьера',
4356
4381
  httpCode: 500,
4357
4382
  },
4383
+ SET_REACTION_ERROR: {
4384
+ code: 'INTERIOR_DESIGN_JOB.SET_REACTION_ERROR',
4385
+ message: 'Произошла ошибка при установке оценке сообщения',
4386
+ httpCode: 500,
4387
+ },
4388
+ UPDATE_TITLE_ERROR: {
4389
+ code: 'INTERIOR_DESIGN_JOB.UPDATE_TITLE_ERROR',
4390
+ message: 'Произошла ошибка при обновлении названия чата',
4391
+ httpCode: 500,
4392
+ },
4358
4393
  },
4359
4394
  CLIENT: {
4360
4395
  CALL_LOG_CREATE_ERROR: {
@@ -4373,6 +4408,84 @@ exports.ERRORS = {
4373
4408
  httpCode: 404,
4374
4409
  },
4375
4410
  },
4411
+ MARKETPLACE_CARD: {
4412
+ AI_ERROR: {
4413
+ code: 'MARKETPLACE_CARD.AI_ERROR',
4414
+ message: 'Произошла ошибка во время запроса к ИИ',
4415
+ httpCode: 500,
4416
+ },
4417
+ SAVE_ERROR: {
4418
+ code: 'MARKETPLACE_CARD.SAVE_ERROR',
4419
+ message: 'Ошибка во время сохранения карточки товара',
4420
+ httpCode: 500,
4421
+ },
4422
+ FIND_ERROR: {
4423
+ code: 'MARKETPLACE_CARD.FIND_ERROR',
4424
+ message: 'Ошибка во время получения карточки товара',
4425
+ httpCode: 500,
4426
+ },
4427
+ NOT_ENOUGH_BALANCE: {
4428
+ code: 'MARKETPLACE_CARD.NOT_ENOUGH_BALANCE',
4429
+ message: 'Недостаточно средств для генерации карточки товара',
4430
+ httpCode: 400,
4431
+ },
4432
+ MAX_PROMPT_LENGTH_EXCEEDED: {
4433
+ code: 'MARKETPLACE_CARD.MAX_PROMPT_LENGTH_EXCEEDED',
4434
+ message: 'Превышена максимальная длина запроса',
4435
+ httpCode: 400,
4436
+ },
4437
+ IMAGE_ATTACHMENT_NOT_SUPPORTED: {
4438
+ code: 'MARKETPLACE_CARD.IMAGE_ATTACHMENT_NOT_SUPPORTED',
4439
+ message: 'Выбранная модель не поддерживает вложение изображений',
4440
+ httpCode: 400,
4441
+ },
4442
+ TOO_MANY_ATTACHED_IMAGES: {
4443
+ code: 'MARKETPLACE_CARD.TOO_MANY_ATTACHED_IMAGES',
4444
+ message: 'Слишком много вложенных изображений',
4445
+ httpCode: 400,
4446
+ },
4447
+ SOFT_DELETE_ERROR: {
4448
+ code: 'MARKETPLACE_CARD.SOFT_DELETE_ERROR',
4449
+ message: 'Ошибка при удалении джобы',
4450
+ httpCode: 500,
4451
+ },
4452
+ },
4453
+ MARKETPLACE_CARD_MODEL: {
4454
+ FIND_ERROR: {
4455
+ code: 'MARKETPLACE_CARD_MODEL.FIND_ERROR',
4456
+ message: 'Ошибка во время получения модели для генерации карточки товара',
4457
+ httpCode: 500,
4458
+ },
4459
+ NOT_FOUND: {
4460
+ code: 'MARKETPLACE_CARD_MODEL.NOT_FOUND',
4461
+ message: 'Модель для генерации карточки товара не найдена',
4462
+ httpCode: 404,
4463
+ },
4464
+ MODEL_INACTIVE: {
4465
+ code: 'MARKETPLACE_CARD_MODEL.MODEL_INACTIVE',
4466
+ message: 'Модель для генерации карточки товара неактивна',
4467
+ httpCode: 400,
4468
+ },
4469
+ },
4470
+ MARKETPLACE_CARD_STYLE: {
4471
+ FIND_ERROR: {
4472
+ code: 'MARKETPLACE_CARD_STYLE.FIND_ERROR',
4473
+ message: 'Ошибка во время получения пресетов стилей для карточки товара',
4474
+ httpCode: 500,
4475
+ },
4476
+ },
4477
+ MARKETPLACE_CARD_CONFIG: {
4478
+ NOT_FOUND: {
4479
+ code: 'MARKETPLACE_CARD_CONFIG.NOT_FOUND',
4480
+ message: 'Конфигурация карточки товара не найдена',
4481
+ httpCode: 404,
4482
+ },
4483
+ FIND_ERROR: {
4484
+ code: 'MARKETPLACE_CARD_CONFIG.FIND_ERROR',
4485
+ message: 'Ошибка во время получения конфигурации карточки товара',
4486
+ httpCode: 500,
4487
+ },
4488
+ },
4376
4489
  INTERIOR_DESIGN_CONFIG_ERROR: {
4377
4490
  code: 'A569',
4378
4491
  message: 'Произошла ошибка при получении конфигурации инструмента для редактирования дизайна интерьера',
@@ -4433,4 +4546,11 @@ exports.ERRORS = {
4433
4546
  message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4434
4547
  httpCode: 500,
4435
4548
  },
4549
+ WATERMARK: {
4550
+ APPLY_ERROR: {
4551
+ code: 'WATERMARK.APPLY_ERROR',
4552
+ message: 'Произошла ошибка при добавлении водяного знака',
4553
+ httpCode: 500,
4554
+ },
4555
+ },
4436
4556
  };
@@ -26,4 +26,5 @@ __exportStar(require("./image-editor"), exports);
26
26
  __exportStar(require("./video-editor"), exports);
27
27
  __exportStar(require("./music"), exports);
28
28
  __exportStar(require("./image-generation"), exports);
29
+ __exportStar(require("./marketplace-card"), exports);
29
30
  __exportStar(require("./interior-design"), exports);
@@ -0,0 +1,18 @@
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("./marketplace-card-config.schema"), exports);
18
+ __exportStar(require("./marketplace-card-job.schema"), exports);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketplaceCardConfigSchema = exports.MarketplaceCardStylePresetSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.MarketplaceCardStylePresetSchema = zod_1.z.object({
6
+ uuid: zod_1.z.string().uuid(),
7
+ previewImageUrl: zod_1.z.string(),
8
+ order: zod_1.z.number(),
9
+ isActive: zod_1.z.boolean(),
10
+ });
11
+ exports.MarketplaceCardConfigSchema = zod_1.z.object({
12
+ styles: zod_1.z.array(exports.MarketplaceCardStylePresetSchema),
13
+ });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketplaceCardJobSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const tool_job_schema_1 = require("../../tool-job.schema");
7
+ exports.MarketplaceCardJobSchema = tool_job_schema_1.ToolJobSchema.extend({
8
+ uuid: zod_1.z.string().uuid(),
9
+ title: zod_1.z.string(),
10
+ subtitle: zod_1.z.string().nullable(),
11
+ reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
12
+ stylePresetId: zod_1.z.string().uuid().nullable(),
13
+ advantages: zod_1.z.array(zod_1.z.string()),
14
+ tags: zod_1.z.array(zod_1.z.string()),
15
+ isCustom: zod_1.z.boolean(),
16
+ customStylePrompt: zod_1.z.string().nullable(),
17
+ inputImages: zod_1.z.array(zod_1.z.object({
18
+ uuid: zod_1.z.string().uuid(),
19
+ url: zod_1.z.string(),
20
+ })),
21
+ resultImages: zod_1.z.array(zod_1.z.string()).nullable(),
22
+ backgroundDescription: zod_1.z.string().nullable(),
23
+ price: zod_1.z.number(),
24
+ });
@@ -9,4 +9,5 @@ export * from './image-editor';
9
9
  export * from './video-editor';
10
10
  export * from './music';
11
11
  export * from './image-generation';
12
+ export * from './marketplace-card';
12
13
  export * from './interior-design';
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace DeleteMarketplaceCardJobByUUIDCommand {
4
+ export const RequestParamsSchema = z.object({
5
+ uuid: z.string().uuid(),
6
+ });
7
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
8
+
9
+ export const ResponseSchema = z.object({
10
+ data: z.boolean(),
11
+ });
12
+ export type Response = z.infer<typeof ResponseSchema>;
13
+ }
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardJobSchema } from '../../../models';
3
+
4
+ export namespace ExecuteMarketplaceCardCommand {
5
+ export const RequestSchema = z
6
+ .object({
7
+ title: z.string(),
8
+ subtitle: z.string().nullable().optional(),
9
+ advantages: z.array(z.string()),
10
+ tags: z.array(z.string()),
11
+ stylePresetId: z.string().uuid().nullable().optional(),
12
+ isCustom: z.boolean(),
13
+ customStylePrompt: z.string().nullable().optional(),
14
+ inputImages: z.array(z.string()),
15
+ backgroundDescription: z.string().nullable().optional(),
16
+ })
17
+ .superRefine((data, ctx) => {
18
+ const hasPreset = Boolean(data.stylePresetId);
19
+ const hasCustomPrompt = Boolean(data.customStylePrompt);
20
+
21
+ if (!hasPreset && !hasCustomPrompt) {
22
+ ctx.addIssue({
23
+ code: z.ZodIssueCode.custom,
24
+ message: 'customStylePrompt is required when stylePresetId is not provided',
25
+ path: ['customStylePrompt'],
26
+ });
27
+ }
28
+
29
+ if (data.isCustom && !hasCustomPrompt) {
30
+ ctx.addIssue({
31
+ code: z.ZodIssueCode.custom,
32
+ message: 'customStylePrompt is required when isCustom is true',
33
+ path: ['customStylePrompt'],
34
+ });
35
+ }
36
+
37
+ if (!data.isCustom && hasCustomPrompt) {
38
+ ctx.addIssue({
39
+ code: z.ZodIssueCode.custom,
40
+ message: 'customStylePrompt must be empty when isCustom is false',
41
+ path: ['customStylePrompt'],
42
+ });
43
+ }
44
+ });
45
+
46
+ export type Request = z.infer<typeof RequestSchema>;
47
+
48
+ export const ResponseSchema = z.object({
49
+ data: MarketplaceCardJobSchema,
50
+ });
51
+
52
+ export type Response = z.infer<typeof ResponseSchema>;
53
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardJobSchema } from '../../../models';
3
+
4
+ export namespace FindMarketplaceCardJobByUUIDCommand {
5
+ export const RequestParamsSchema = z.object({
6
+ uuid: z.string().uuid(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestParamsSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: MarketplaceCardJobSchema,
13
+ });
14
+
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardJobSchema } from '../../../models';
3
+
4
+ export namespace FindMarketplaceCardJobsCommand {
5
+ export const RequestQuerySchema = z.object({
6
+ limit: z.coerce.number().min(1).optional(),
7
+ offset: z.coerce.number().min(0).default(0).optional(),
8
+ title: z.string().optional(),
9
+ });
10
+ export type RequestQuery = z.infer<typeof RequestQuerySchema>;
11
+
12
+ export const ResponseSchema = z.object({
13
+ data: z.array(MarketplaceCardJobSchema),
14
+ totalPages: z.number(),
15
+ page: z.number(),
16
+ });
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardConfigSchema } from '../../../models';
3
+
4
+ export namespace GetMarketplaceCardConfigCommand {
5
+ export const ResponseSchema = z.object({
6
+ data: MarketplaceCardConfigSchema,
7
+ });
8
+ export type Response = z.infer<typeof ResponseSchema>;
9
+ }
@@ -0,0 +1,7 @@
1
+ export * from './execute-marketplace-card.command';
2
+ export * from './find-marketplace-card-job-by-uuid.command';
3
+ export * from './find-marketplace-card-jobs.command';
4
+ export * from './get-marketplace-card-config.command';
5
+ export * from './retry-marketplace-card-job.command';
6
+ export * from './set-reaction-to-marketplace-card.command';
7
+ export * from './delete-marketplace-card-by-uuid.command';
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardJobSchema } from '../../../models';
3
+
4
+ export namespace RetryMarketplaceCardJobCommand {
5
+ export const RequestParamsSchema = z.object({
6
+ uuid: z.string().uuid(),
7
+ });
8
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
9
+
10
+ export const RequestBodySchema = z
11
+ .object({
12
+ title: z.string(),
13
+ subtitle: z.string().nullable().optional(),
14
+ advantages: z.array(z.string()),
15
+ tags: z.array(z.string()),
16
+ stylePresetId: z.string().uuid().nullable().optional(),
17
+ isCustom: z.boolean(),
18
+ customStylePrompt: z.string().nullable().optional(),
19
+ inputImages: z.array(z.string()),
20
+ backgroundDescription: z.string().nullable().optional(),
21
+ })
22
+ .superRefine((data, ctx) => {
23
+ const hasPreset = Boolean(data.stylePresetId);
24
+ const hasCustomPrompt = Boolean(data.customStylePrompt);
25
+
26
+ if (!hasPreset && !hasCustomPrompt) {
27
+ ctx.addIssue({
28
+ code: z.ZodIssueCode.custom,
29
+ message: 'customStylePrompt is required when stylePresetId is not provided',
30
+ path: ['customStylePrompt'],
31
+ });
32
+ }
33
+
34
+ if (data.isCustom && !hasCustomPrompt) {
35
+ ctx.addIssue({
36
+ code: z.ZodIssueCode.custom,
37
+ message: 'customStylePrompt is required when isCustom is true',
38
+ path: ['customStylePrompt'],
39
+ });
40
+ }
41
+
42
+ if (!data.isCustom && hasCustomPrompt) {
43
+ ctx.addIssue({
44
+ code: z.ZodIssueCode.custom,
45
+ message: 'customStylePrompt must be empty when isCustom is false',
46
+ path: ['customStylePrompt'],
47
+ });
48
+ }
49
+ });
50
+
51
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
52
+
53
+ export const ResponseSchema = z.object({
54
+ data: MarketplaceCardJobSchema,
55
+ });
56
+ export type Response = z.infer<typeof ResponseSchema>;
57
+ }
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { MarketplaceCardJobSchema } from '../../../models';
3
+ import { USER_REACTION } from '../../../constants';
4
+
5
+ export namespace SetReactionToMarketplaceCardJobCommand {
6
+ export const RequestSchema = z
7
+ .object({
8
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
9
+ dislikeReason: z.string().nullable().default(null),
10
+ })
11
+ .refine(
12
+ (data) => {
13
+ if (data.reaction !== USER_REACTION.DISLIKED && data.dislikeReason) {
14
+ return false;
15
+ }
16
+ return true;
17
+ },
18
+ {
19
+ message: 'Dislike reason is not allowed when reaction is not DISLIKED',
20
+ },
21
+ );
22
+ export type Request = z.infer<typeof RequestSchema>;
23
+
24
+ export const RequestParamsSchema = z.object({
25
+ uuid: z.string().uuid(),
26
+ });
27
+ export type RequestParams = z.infer<typeof RequestParamsSchema>;
28
+
29
+ export const ResponseSchema = z.object({
30
+ data: MarketplaceCardJobSchema,
31
+ });
32
+ export type Response = z.infer<typeof ResponseSchema>;
33
+ }
@@ -4304,9 +4304,10 @@ export const ERRORS = {
4304
4304
  },
4305
4305
  },
4306
4306
  INTERIOR_DESIGN: {
4307
- AI_ERROR: {
4308
- code: 'INTERIOR_DESIGN.AI_ERROR',
4309
- message: 'Произошла ошибка во время запроса к ИИ',
4307
+ CONFIG_ERROR: {
4308
+ code: 'INTERIOR_DESIGN.CONFIG_ERROR',
4309
+ message:
4310
+ 'Произошла ошибка при получении конфигурации инструмента для редактирования дизайна интерьера',
4310
4311
  httpCode: 500,
4311
4312
  },
4312
4313
  INSUFFICIENT_BALANCE: {
@@ -4339,6 +4340,21 @@ export const ERRORS = {
4339
4340
  message: 'Превышено время ожидания задачи на редактирование дизайна интерьера',
4340
4341
  httpCode: 500,
4341
4342
  },
4343
+ PRICE_ERROR: {
4344
+ code: 'INTERIOR_DESIGN.PRICE_ERROR',
4345
+ message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4346
+ httpCode: 500,
4347
+ },
4348
+ SEND_REQUEST_ERROR: {
4349
+ code: 'INTERIOR_DESIGN.SEND_REQUEST_ERROR',
4350
+ message: 'Произошла ошибка при отправке запроса на редактирование дизайна интерьера',
4351
+ httpCode: 500,
4352
+ },
4353
+ RETRY_REQUEST_ERROR: {
4354
+ code: 'INTERIOR_DESIGN.RETRY_REQUEST_ERROR',
4355
+ message: 'Произошла ошибка при повторном запросе на редактирование дизайна интерьера',
4356
+ httpCode: 500,
4357
+ },
4342
4358
  },
4343
4359
  INTERIOR_DESIGN_MODEL: {
4344
4360
  SAVE_ERROR: {
@@ -4356,6 +4372,17 @@ export const ERRORS = {
4356
4372
  message: 'Модель для редактирования дизайна интерьера не найдена',
4357
4373
  httpCode: 404,
4358
4374
  },
4375
+ NOT_AVAILABLE: {
4376
+ code: 'INTERIOR_DESIGN_MODEL.NOT_AVAILABLE',
4377
+ message: 'Данная модель для редактирования дизайна интерьера недоступна',
4378
+ httpCode: 401,
4379
+ },
4380
+ INACTIVE: {
4381
+ code: 'INTERIOR_DESIGN_MODEL.INACTIVE',
4382
+ message:
4383
+ 'Модель редактирования дизайна интерьера архивирована и недоступна для пользования',
4384
+ httpCode: 403,
4385
+ },
4359
4386
  },
4360
4387
  INTERIOR_DESIGN_JOB: {
4361
4388
  SAVE_ERROR: {
@@ -4395,6 +4422,16 @@ export const ERRORS = {
4395
4422
  message: 'Произошла ошибка при обновлении задания на редактирование дизайна интерьера',
4396
4423
  httpCode: 500,
4397
4424
  },
4425
+ SET_REACTION_ERROR: {
4426
+ code: 'INTERIOR_DESIGN_JOB.SET_REACTION_ERROR',
4427
+ message: 'Произошла ошибка при установке оценке сообщения',
4428
+ httpCode: 500,
4429
+ },
4430
+ UPDATE_TITLE_ERROR: {
4431
+ code: 'INTERIOR_DESIGN_JOB.UPDATE_TITLE_ERROR',
4432
+ message: 'Произошла ошибка при обновлении названия чата',
4433
+ httpCode: 500,
4434
+ },
4398
4435
  },
4399
4436
  CLIENT: {
4400
4437
  CALL_LOG_CREATE_ERROR: {
@@ -4413,6 +4450,84 @@ export const ERRORS = {
4413
4450
  httpCode: 404,
4414
4451
  },
4415
4452
  },
4453
+ MARKETPLACE_CARD: {
4454
+ AI_ERROR: {
4455
+ code: 'MARKETPLACE_CARD.AI_ERROR',
4456
+ message: 'Произошла ошибка во время запроса к ИИ',
4457
+ httpCode: 500,
4458
+ },
4459
+ SAVE_ERROR: {
4460
+ code: 'MARKETPLACE_CARD.SAVE_ERROR',
4461
+ message: 'Ошибка во время сохранения карточки товара',
4462
+ httpCode: 500,
4463
+ },
4464
+ FIND_ERROR: {
4465
+ code: 'MARKETPLACE_CARD.FIND_ERROR',
4466
+ message: 'Ошибка во время получения карточки товара',
4467
+ httpCode: 500,
4468
+ },
4469
+ NOT_ENOUGH_BALANCE: {
4470
+ code: 'MARKETPLACE_CARD.NOT_ENOUGH_BALANCE',
4471
+ message: 'Недостаточно средств для генерации карточки товара',
4472
+ httpCode: 400,
4473
+ },
4474
+ MAX_PROMPT_LENGTH_EXCEEDED: {
4475
+ code: 'MARKETPLACE_CARD.MAX_PROMPT_LENGTH_EXCEEDED',
4476
+ message: 'Превышена максимальная длина запроса',
4477
+ httpCode: 400,
4478
+ },
4479
+ IMAGE_ATTACHMENT_NOT_SUPPORTED: {
4480
+ code: 'MARKETPLACE_CARD.IMAGE_ATTACHMENT_NOT_SUPPORTED',
4481
+ message: 'Выбранная модель не поддерживает вложение изображений',
4482
+ httpCode: 400,
4483
+ },
4484
+ TOO_MANY_ATTACHED_IMAGES: {
4485
+ code: 'MARKETPLACE_CARD.TOO_MANY_ATTACHED_IMAGES',
4486
+ message: 'Слишком много вложенных изображений',
4487
+ httpCode: 400,
4488
+ },
4489
+ SOFT_DELETE_ERROR: {
4490
+ code: 'MARKETPLACE_CARD.SOFT_DELETE_ERROR',
4491
+ message: 'Ошибка при удалении джобы',
4492
+ httpCode: 500,
4493
+ },
4494
+ },
4495
+ MARKETPLACE_CARD_MODEL: {
4496
+ FIND_ERROR: {
4497
+ code: 'MARKETPLACE_CARD_MODEL.FIND_ERROR',
4498
+ message: 'Ошибка во время получения модели для генерации карточки товара',
4499
+ httpCode: 500,
4500
+ },
4501
+ NOT_FOUND: {
4502
+ code: 'MARKETPLACE_CARD_MODEL.NOT_FOUND',
4503
+ message: 'Модель для генерации карточки товара не найдена',
4504
+ httpCode: 404,
4505
+ },
4506
+ MODEL_INACTIVE: {
4507
+ code: 'MARKETPLACE_CARD_MODEL.MODEL_INACTIVE',
4508
+ message: 'Модель для генерации карточки товара неактивна',
4509
+ httpCode: 400,
4510
+ },
4511
+ },
4512
+ MARKETPLACE_CARD_STYLE: {
4513
+ FIND_ERROR: {
4514
+ code: 'MARKETPLACE_CARD_STYLE.FIND_ERROR',
4515
+ message: 'Ошибка во время получения пресетов стилей для карточки товара',
4516
+ httpCode: 500,
4517
+ },
4518
+ },
4519
+ MARKETPLACE_CARD_CONFIG: {
4520
+ NOT_FOUND: {
4521
+ code: 'MARKETPLACE_CARD_CONFIG.NOT_FOUND',
4522
+ message: 'Конфигурация карточки товара не найдена',
4523
+ httpCode: 404,
4524
+ },
4525
+ FIND_ERROR: {
4526
+ code: 'MARKETPLACE_CARD_CONFIG.FIND_ERROR',
4527
+ message: 'Ошибка во время получения конфигурации карточки товара',
4528
+ httpCode: 500,
4529
+ },
4530
+ },
4416
4531
  INTERIOR_DESIGN_CONFIG_ERROR: {
4417
4532
  code: 'A569',
4418
4533
  message:
@@ -4475,4 +4590,11 @@ export const ERRORS = {
4475
4590
  message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4476
4591
  httpCode: 500,
4477
4592
  },
4593
+ WATERMARK: {
4594
+ APPLY_ERROR: {
4595
+ code: 'WATERMARK.APPLY_ERROR',
4596
+ message: 'Произошла ошибка при добавлении водяного знака',
4597
+ httpCode: 500,
4598
+ },
4599
+ },
4478
4600
  };
@@ -10,4 +10,5 @@ export * from './image-editor';
10
10
  export * from './video-editor';
11
11
  export * from './music';
12
12
  export * from './image-generation';
13
+ export * from './marketplace-card';
13
14
  export * from './interior-design';
@@ -0,0 +1,2 @@
1
+ export * from './marketplace-card-config.schema';
2
+ export * from './marketplace-card-job.schema';
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+
3
+ export const MarketplaceCardStylePresetSchema = z.object({
4
+ uuid: z.string().uuid(),
5
+ previewImageUrl: z.string(),
6
+ order: z.number(),
7
+ isActive: z.boolean(),
8
+ });
9
+ export type MarketplaceCardStylePreset = z.infer<typeof MarketplaceCardStylePresetSchema>;
10
+
11
+ export const MarketplaceCardConfigSchema = z.object({
12
+ styles: z.array(MarketplaceCardStylePresetSchema),
13
+ });
14
+ export type MarketplaceCardConfigModel = z.infer<typeof MarketplaceCardConfigSchema>;
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import { USER_REACTION } from '../../../constants';
3
+ import { ToolJobSchema } from '../../tool-job.schema';
4
+
5
+ export const MarketplaceCardJobSchema = ToolJobSchema.extend({
6
+ uuid: z.string().uuid(),
7
+ title: z.string(),
8
+ subtitle: z.string().nullable(),
9
+ reaction: z.nativeEnum(USER_REACTION).nullable(),
10
+ stylePresetId: z.string().uuid().nullable(),
11
+ advantages: z.array(z.string()),
12
+ tags: z.array(z.string()),
13
+ isCustom: z.boolean(),
14
+ customStylePrompt: z.string().nullable(),
15
+ inputImages: z.array(
16
+ z.object({
17
+ uuid: z.string().uuid(),
18
+ url: z.string(),
19
+ }),
20
+ ),
21
+ resultImages: z.array(z.string()).nullable(),
22
+ backgroundDescription: z.string().nullable(),
23
+ price: z.number(),
24
+ });
25
+ export type MarketplaceCardModel = z.infer<typeof MarketplaceCardJobSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.8.99",
3
+ "version": "0.8.101",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",