@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.
- package/api/controllers/http/index.ts +1 -0
- package/api/controllers/http/marketplace-card.ts +12 -0
- package/api/routes.ts +26 -0
- package/build/api/controllers/http/index.js +1 -0
- package/build/api/controllers/http/marketplace-card.js +14 -0
- package/build/api/routes.js +18 -0
- package/build/commands/tools/index.js +1 -0
- package/build/commands/tools/marketplace-card/delete-marketplace-card-by-uuid.command.js +13 -0
- package/build/commands/tools/marketplace-card/execute-marketplace-card.command.js +48 -0
- package/build/commands/tools/marketplace-card/find-marketplace-card-job-by-uuid.command.js +14 -0
- package/build/commands/tools/marketplace-card/find-marketplace-card-jobs.command.js +18 -0
- package/build/commands/tools/marketplace-card/get-marketplace-card-config.command.js +11 -0
- package/build/commands/tools/marketplace-card/index.js +23 -0
- package/build/commands/tools/marketplace-card/retry-marketplace-card-job.command.js +51 -0
- package/build/commands/tools/marketplace-card/set-reaction-to-marketplace-card.command.js +28 -0
- package/build/constants/errors/errors.js +123 -3
- package/build/models/tools/index.js +1 -0
- package/build/models/tools/marketplace-card/index.js +18 -0
- package/build/models/tools/marketplace-card/marketplace-card-config.schema.js +13 -0
- package/build/models/tools/marketplace-card/marketplace-card-job.schema.js +24 -0
- package/commands/tools/index.ts +1 -0
- package/commands/tools/marketplace-card/delete-marketplace-card-by-uuid.command.ts +13 -0
- package/commands/tools/marketplace-card/execute-marketplace-card.command.ts +53 -0
- package/commands/tools/marketplace-card/find-marketplace-card-job-by-uuid.command.ts +16 -0
- package/commands/tools/marketplace-card/find-marketplace-card-jobs.command.ts +18 -0
- package/commands/tools/marketplace-card/get-marketplace-card-config.command.ts +9 -0
- package/commands/tools/marketplace-card/index.ts +7 -0
- package/commands/tools/marketplace-card/retry-marketplace-card-job.command.ts +57 -0
- package/commands/tools/marketplace-card/set-reaction-to-marketplace-card.command.ts +33 -0
- package/constants/errors/errors.ts +125 -3
- package/models/tools/index.ts +1 -0
- package/models/tools/marketplace-card/index.ts +2 -0
- package/models/tools/marketplace-card/marketplace-card-config.schema.ts +14 -0
- package/models/tools/marketplace-card/marketplace-card-job.schema.ts +25 -0
- package/package.json +1 -1
|
@@ -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
|
+
};
|
package/build/api/routes.js
CHANGED
|
@@ -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
|
-
|
|
4270
|
-
code: 'INTERIOR_DESIGN.
|
|
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
|
+
});
|
package/commands/tools/index.ts
CHANGED
|
@@ -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
|
-
|
|
4308
|
-
code: 'INTERIOR_DESIGN.
|
|
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
|
};
|
package/models/tools/index.ts
CHANGED
|
@@ -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>;
|