@purpleschool/gptbot 0.8.100 → 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 +138 -0
  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 +140 -0
  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 = {}));
@@ -4408,6 +4408,144 @@ exports.ERRORS = {
4408
4408
  httpCode: 404,
4409
4409
  },
4410
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
+ },
4489
+ INTERIOR_DESIGN_CONFIG_ERROR: {
4490
+ code: 'A569',
4491
+ message: 'Произошла ошибка при получении конфигурации инструмента для редактирования дизайна интерьера',
4492
+ httpCode: 500,
4493
+ },
4494
+ INTERIOR_DESIGN_SEND_REQUEST_ERROR: {
4495
+ code: 'A570',
4496
+ message: 'Произошла ошибка при отправке запроса на редактирование дизайна интерьера',
4497
+ httpCode: 500,
4498
+ },
4499
+ INTERIOR_DESIGN_MODEL_NOT_FOUND: {
4500
+ code: 'A571',
4501
+ message: 'Не удалось найти указанную модель для редактирования дизайна интерьера',
4502
+ httpCode: 400,
4503
+ },
4504
+ INTERIOR_DESIGN_MAX_SYMBOLS_EXCEEDED: {
4505
+ code: 'A572',
4506
+ message: 'Превышена максимальная количество символов',
4507
+ httpCode: 400,
4508
+ },
4509
+ INTERIOR_DESIGN_SET_REACTION_ERROR: {
4510
+ code: 'A573',
4511
+ message: 'Произошла ошибка при установке оценке сообщения',
4512
+ httpCode: 500,
4513
+ },
4514
+ INTERIOR_DESIGN_UPDATE_TITLE_ERROR: {
4515
+ code: 'A574',
4516
+ message: 'Произошла ошибка при обновлении названия чата',
4517
+ httpCode: 500,
4518
+ },
4519
+ INTERIOR_DESIGN_JOB_DELETE_ERROR: {
4520
+ code: 'A575',
4521
+ message: 'Произошла ошибка при удалении сообщения',
4522
+ httpCode: 500,
4523
+ },
4524
+ INTERIOR_DESIGN_RETRY_REQUEST_ERROR: {
4525
+ code: 'A576',
4526
+ message: 'Произошла ошибка при повторном запросе на редактирование дизайна интерьера',
4527
+ httpCode: 500,
4528
+ },
4529
+ INTERIOR_DESIGN_MODEL_NOT_AVAILABLE: {
4530
+ code: 'A577',
4531
+ message: 'Данная модель для редактирования дизайна интерьера недоступна',
4532
+ httpCode: 401,
4533
+ },
4534
+ INTERIOR_DESIGN_MODEL_INACTIVE: {
4535
+ code: 'A578',
4536
+ message: 'Модель редактирования дизайна интерьера архивирована и недоступна для пользования',
4537
+ httpCode: 403,
4538
+ },
4539
+ INTERIOR_DESIGN_MODEL_FIND_ERROR: {
4540
+ code: 'A579',
4541
+ message: 'Произошла ошибка при получении модели для редактирования дизайна интерьера',
4542
+ httpCode: 500,
4543
+ },
4544
+ INTERIOR_DESIGN_PRICE_ERROR: {
4545
+ code: 'A580',
4546
+ message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4547
+ httpCode: 500,
4548
+ },
4411
4549
  WATERMARK: {
4412
4550
  APPLY_ERROR: {
4413
4551
  code: 'WATERMARK.APPLY_ERROR',
@@ -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
+ }
@@ -4450,6 +4450,146 @@ export const ERRORS = {
4450
4450
  httpCode: 404,
4451
4451
  },
4452
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
+ },
4531
+ INTERIOR_DESIGN_CONFIG_ERROR: {
4532
+ code: 'A569',
4533
+ message:
4534
+ 'Произошла ошибка при получении конфигурации инструмента для редактирования дизайна интерьера',
4535
+ httpCode: 500,
4536
+ },
4537
+ INTERIOR_DESIGN_SEND_REQUEST_ERROR: {
4538
+ code: 'A570',
4539
+ message: 'Произошла ошибка при отправке запроса на редактирование дизайна интерьера',
4540
+ httpCode: 500,
4541
+ },
4542
+ INTERIOR_DESIGN_MODEL_NOT_FOUND: {
4543
+ code: 'A571',
4544
+ message: 'Не удалось найти указанную модель для редактирования дизайна интерьера',
4545
+ httpCode: 400,
4546
+ },
4547
+ INTERIOR_DESIGN_MAX_SYMBOLS_EXCEEDED: {
4548
+ code: 'A572',
4549
+ message: 'Превышена максимальная количество символов',
4550
+ httpCode: 400,
4551
+ },
4552
+ INTERIOR_DESIGN_SET_REACTION_ERROR: {
4553
+ code: 'A573',
4554
+ message: 'Произошла ошибка при установке оценке сообщения',
4555
+ httpCode: 500,
4556
+ },
4557
+ INTERIOR_DESIGN_UPDATE_TITLE_ERROR: {
4558
+ code: 'A574',
4559
+ message: 'Произошла ошибка при обновлении названия чата',
4560
+ httpCode: 500,
4561
+ },
4562
+ INTERIOR_DESIGN_JOB_DELETE_ERROR: {
4563
+ code: 'A575',
4564
+ message: 'Произошла ошибка при удалении сообщения',
4565
+ httpCode: 500,
4566
+ },
4567
+ INTERIOR_DESIGN_RETRY_REQUEST_ERROR: {
4568
+ code: 'A576',
4569
+ message: 'Произошла ошибка при повторном запросе на редактирование дизайна интерьера',
4570
+ httpCode: 500,
4571
+ },
4572
+ INTERIOR_DESIGN_MODEL_NOT_AVAILABLE: {
4573
+ code: 'A577',
4574
+ message: 'Данная модель для редактирования дизайна интерьера недоступна',
4575
+ httpCode: 401,
4576
+ },
4577
+ INTERIOR_DESIGN_MODEL_INACTIVE: {
4578
+ code: 'A578',
4579
+ message:
4580
+ 'Модель редактирования дизайна интерьера архивирована и недоступна для пользования',
4581
+ httpCode: 403,
4582
+ },
4583
+ INTERIOR_DESIGN_MODEL_FIND_ERROR: {
4584
+ code: 'A579',
4585
+ message: 'Произошла ошибка при получении модели для редактирования дизайна интерьера',
4586
+ httpCode: 500,
4587
+ },
4588
+ INTERIOR_DESIGN_PRICE_ERROR: {
4589
+ code: 'A580',
4590
+ message: 'Произошла ошибка при получении цены для редактирования дизайна интерьера',
4591
+ httpCode: 500,
4592
+ },
4453
4593
  WATERMARK: {
4454
4594
  APPLY_ERROR: {
4455
4595
  code: 'WATERMARK.APPLY_ERROR',
@@ -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.100",
3
+ "version": "0.8.101",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",