@purpleschool/gptbot 0.8.4 → 0.8.7
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/build/commands/webmaster-click/get-webmaster-clicks-overview.command.js +3 -5
- package/build/constants/errors/errors.js +5 -4
- package/build/constants/tool-video/enums/video-pricing-rule-type.enum.js +1 -0
- package/build/helpers/video/calculate-video-price.helper.js +5 -1
- package/build/models/tools/video/video-model.schema.js +8 -1
- package/commands/webmaster-click/get-webmaster-clicks-overview.command.ts +3 -7
- package/constants/errors/errors.ts +5 -4
- package/constants/tool-video/enums/video-pricing-rule-type.enum.ts +1 -0
- package/helpers/video/calculate-video-price.helper.ts +7 -1
- package/models/tools/video/video-model.schema.ts +8 -1
- package/package.json +1 -1
|
@@ -15,11 +15,9 @@ var GetWebmasterClicksOverviewCommand;
|
|
|
15
15
|
groupBy: zod_1.z.nativeEnum(constants_1.GROUP_BY).default(constants_1.GROUP_BY.DAY),
|
|
16
16
|
});
|
|
17
17
|
GetWebmasterClicksOverviewCommand.WebmasterClickOverviewResponseSchema = zod_1.z.object({
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
clicks: zod_1.z.number(),
|
|
22
|
-
})),
|
|
18
|
+
startDate: zod_1.z.string(),
|
|
19
|
+
endDate: zod_1.z.string(),
|
|
20
|
+
clicks: zod_1.z.number(),
|
|
23
21
|
});
|
|
24
22
|
GetWebmasterClicksOverviewCommand.ResponseSchema = zod_1.z.object({
|
|
25
23
|
data: zod_1.z.array(GetWebmasterClicksOverviewCommand.WebmasterClickOverviewResponseSchema),
|
|
@@ -9,18 +9,16 @@ exports.ERRORS = {
|
|
|
9
9
|
message: 'Произошла ошибка при создании пользователя',
|
|
10
10
|
httpCode: 500,
|
|
11
11
|
},
|
|
12
|
-
LOGIN_ERROR: { code: 'U02', message: 'Неверный логин или пароль', httpCode: 401 },
|
|
13
12
|
RESTORE_PASSWORD: {
|
|
14
13
|
code: 'U03',
|
|
15
14
|
message: 'Возникла ошибка при восстановлении пароля',
|
|
16
15
|
httpCode: 401,
|
|
17
16
|
},
|
|
18
|
-
|
|
17
|
+
AUTH_ERROR: {
|
|
19
18
|
code: 'U02',
|
|
20
|
-
message: 'Неверный пароль',
|
|
19
|
+
message: 'Неверный логин или пароль',
|
|
21
20
|
httpCode: 401,
|
|
22
21
|
},
|
|
23
|
-
REGISTER_ERROR: { code: 'U01', message: 'Произошла ошибка при регистрации', httpCode: 500 },
|
|
24
22
|
REGISTER_CONFLICT: { code: 'U04', message: 'Пользователь уже зарегистрирован', httpCode: 409 },
|
|
25
23
|
USER_NOT_FOUND: { code: 'A002', message: 'Пользователь не найден', httpCode: 404 },
|
|
26
24
|
USER_CONFLICT: {
|
|
@@ -1222,6 +1220,7 @@ exports.ERRORS = {
|
|
|
1222
1220
|
TTS_MAX_SYMBOLS_EXCEEDED: {
|
|
1223
1221
|
code: 'A259',
|
|
1224
1222
|
message: 'Превышена максимальная количество символов',
|
|
1223
|
+
httpCode: 400,
|
|
1225
1224
|
},
|
|
1226
1225
|
TTS_SET_REACTION_ERROR: {
|
|
1227
1226
|
code: 'A260',
|
|
@@ -1531,6 +1530,7 @@ exports.ERRORS = {
|
|
|
1531
1530
|
VIDEO_MAX_SYMBOLS_EXCEEDED: {
|
|
1532
1531
|
code: 'A319',
|
|
1533
1532
|
message: 'Превышена максимальная количество символов',
|
|
1533
|
+
httpCode: 400,
|
|
1534
1534
|
},
|
|
1535
1535
|
VIDEO_SET_REACTION_ERROR: {
|
|
1536
1536
|
code: 'A320',
|
|
@@ -1675,6 +1675,7 @@ exports.ERRORS = {
|
|
|
1675
1675
|
IMAGE_EDITOR_MAX_SYMBOLS_EXCEEDED: {
|
|
1676
1676
|
code: 'A348',
|
|
1677
1677
|
message: 'Превышена максимальная количество символов',
|
|
1678
|
+
httpCode: 400,
|
|
1678
1679
|
},
|
|
1679
1680
|
IMAGE_EDITOR_SET_REACTION_ERROR: {
|
|
1680
1681
|
code: 'A349',
|
|
@@ -4,4 +4,5 @@ exports.VIDEO_PRICING_RULE_TYPE = void 0;
|
|
|
4
4
|
var VIDEO_PRICING_RULE_TYPE;
|
|
5
5
|
(function (VIDEO_PRICING_RULE_TYPE) {
|
|
6
6
|
VIDEO_PRICING_RULE_TYPE["FLAT"] = "flat";
|
|
7
|
+
VIDEO_PRICING_RULE_TYPE["PER_SECOND"] = "per_second";
|
|
7
8
|
})(VIDEO_PRICING_RULE_TYPE || (exports.VIDEO_PRICING_RULE_TYPE = VIDEO_PRICING_RULE_TYPE = {}));
|
|
@@ -17,7 +17,11 @@ function matchesCondition(condition, params) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
function calculateVideoGenerationPrice({ pricePerSecond, params, rules, }) {
|
|
20
|
-
const
|
|
20
|
+
const perSecondRule = rules
|
|
21
|
+
.filter((r) => r.type === constants_1.VIDEO_PRICING_RULE_TYPE.PER_SECOND)
|
|
22
|
+
.find((r) => matchesCondition(r.condition, params));
|
|
23
|
+
const effectivePricePerSecond = perSecondRule ? perSecondRule.value : pricePerSecond;
|
|
24
|
+
const base = effectivePricePerSecond * params.duration;
|
|
21
25
|
const flatMarkup = rules.reduce((sum, r) => {
|
|
22
26
|
if (r.type !== constants_1.VIDEO_PRICING_RULE_TYPE.FLAT) {
|
|
23
27
|
return sum;
|
|
@@ -20,15 +20,22 @@ exports.VideoModelParamsSchema = zod_1.z.object({
|
|
|
20
20
|
})
|
|
21
21
|
.optional(),
|
|
22
22
|
quality: zod_1.z.string().optional(),
|
|
23
|
+
resolution: zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
options: zod_1.z.array(zod_1.z.string()),
|
|
26
|
+
})
|
|
27
|
+
.optional(),
|
|
23
28
|
});
|
|
24
29
|
exports.VideoGenerationRequestParamsSchema = zod_1.z.object({
|
|
25
30
|
imageUrls: zod_1.z.string().array().optional(),
|
|
26
31
|
duration: zod_1.z.number(),
|
|
27
32
|
aspectRatio: zod_1.z.string().optional(),
|
|
28
33
|
quality: zod_1.z.string().optional(),
|
|
34
|
+
resolution: zod_1.z.string().optional(),
|
|
29
35
|
});
|
|
30
36
|
exports.VideoModelPricingRuleConditionSchema = zod_1.z.object({
|
|
31
|
-
aspectRatio: zod_1.z.string(),
|
|
37
|
+
aspectRatio: zod_1.z.string().optional(),
|
|
38
|
+
resolution: zod_1.z.string().optional(),
|
|
32
39
|
});
|
|
33
40
|
exports.VideoModelPricingRulesSchema = zod_1.z.array(zod_1.z.object({
|
|
34
41
|
type: zod_1.z.nativeEnum(constants_1.VIDEO_PRICING_RULE_TYPE),
|
|
@@ -15,13 +15,9 @@ export namespace GetWebmasterClicksOverviewCommand {
|
|
|
15
15
|
export type Request = z.infer<typeof RequestSchema>;
|
|
16
16
|
|
|
17
17
|
export const WebmasterClickOverviewResponseSchema = z.object({
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
endDate: z.string(),
|
|
22
|
-
clicks: z.number(),
|
|
23
|
-
}),
|
|
24
|
-
),
|
|
18
|
+
startDate: z.string(),
|
|
19
|
+
endDate: z.string(),
|
|
20
|
+
clicks: z.number(),
|
|
25
21
|
});
|
|
26
22
|
|
|
27
23
|
export const ResponseSchema = z.object({
|
|
@@ -6,18 +6,16 @@ export const ERRORS = {
|
|
|
6
6
|
message: 'Произошла ошибка при создании пользователя',
|
|
7
7
|
httpCode: 500,
|
|
8
8
|
},
|
|
9
|
-
LOGIN_ERROR: { code: 'U02', message: 'Неверный логин или пароль', httpCode: 401 },
|
|
10
9
|
RESTORE_PASSWORD: {
|
|
11
10
|
code: 'U03',
|
|
12
11
|
message: 'Возникла ошибка при восстановлении пароля',
|
|
13
12
|
httpCode: 401,
|
|
14
13
|
},
|
|
15
|
-
|
|
14
|
+
AUTH_ERROR: {
|
|
16
15
|
code: 'U02',
|
|
17
|
-
message: 'Неверный пароль',
|
|
16
|
+
message: 'Неверный логин или пароль',
|
|
18
17
|
httpCode: 401,
|
|
19
18
|
},
|
|
20
|
-
REGISTER_ERROR: { code: 'U01', message: 'Произошла ошибка при регистрации', httpCode: 500 },
|
|
21
19
|
REGISTER_CONFLICT: { code: 'U04', message: 'Пользователь уже зарегистрирован', httpCode: 409 },
|
|
22
20
|
USER_NOT_FOUND: { code: 'A002', message: 'Пользователь не найден', httpCode: 404 },
|
|
23
21
|
USER_CONFLICT: {
|
|
@@ -1226,6 +1224,7 @@ export const ERRORS = {
|
|
|
1226
1224
|
TTS_MAX_SYMBOLS_EXCEEDED: {
|
|
1227
1225
|
code: 'A259',
|
|
1228
1226
|
message: 'Превышена максимальная количество символов',
|
|
1227
|
+
httpCode: 400,
|
|
1229
1228
|
},
|
|
1230
1229
|
TTS_SET_REACTION_ERROR: {
|
|
1231
1230
|
code: 'A260',
|
|
@@ -1536,6 +1535,7 @@ export const ERRORS = {
|
|
|
1536
1535
|
VIDEO_MAX_SYMBOLS_EXCEEDED: {
|
|
1537
1536
|
code: 'A319',
|
|
1538
1537
|
message: 'Превышена максимальная количество символов',
|
|
1538
|
+
httpCode: 400,
|
|
1539
1539
|
},
|
|
1540
1540
|
VIDEO_SET_REACTION_ERROR: {
|
|
1541
1541
|
code: 'A320',
|
|
@@ -1681,6 +1681,7 @@ export const ERRORS = {
|
|
|
1681
1681
|
IMAGE_EDITOR_MAX_SYMBOLS_EXCEEDED: {
|
|
1682
1682
|
code: 'A348',
|
|
1683
1683
|
message: 'Превышена максимальная количество символов',
|
|
1684
|
+
httpCode: 400,
|
|
1684
1685
|
},
|
|
1685
1686
|
IMAGE_EDITOR_SET_REACTION_ERROR: {
|
|
1686
1687
|
code: 'A349',
|
|
@@ -36,7 +36,13 @@ export function calculateVideoGenerationPrice({
|
|
|
36
36
|
params: VideoGenerationRequestParams;
|
|
37
37
|
rules: VideoModelPricingRules;
|
|
38
38
|
}) {
|
|
39
|
-
const
|
|
39
|
+
const perSecondRule = rules
|
|
40
|
+
.filter((r) => r.type === VIDEO_PRICING_RULE_TYPE.PER_SECOND)
|
|
41
|
+
.find((r) => matchesCondition(r.condition, params));
|
|
42
|
+
|
|
43
|
+
const effectivePricePerSecond = perSecondRule ? perSecondRule.value : pricePerSecond;
|
|
44
|
+
|
|
45
|
+
const base = effectivePricePerSecond * params.duration;
|
|
40
46
|
|
|
41
47
|
const flatMarkup = rules.reduce((sum, r) => {
|
|
42
48
|
if (r.type !== VIDEO_PRICING_RULE_TYPE.FLAT) {
|
|
@@ -18,6 +18,11 @@ export const VideoModelParamsSchema = z.object({
|
|
|
18
18
|
})
|
|
19
19
|
.optional(),
|
|
20
20
|
quality: z.string().optional(),
|
|
21
|
+
resolution: z
|
|
22
|
+
.object({
|
|
23
|
+
options: z.array(z.string()),
|
|
24
|
+
})
|
|
25
|
+
.optional(),
|
|
21
26
|
});
|
|
22
27
|
|
|
23
28
|
export const VideoGenerationRequestParamsSchema = z.object({
|
|
@@ -25,11 +30,13 @@ export const VideoGenerationRequestParamsSchema = z.object({
|
|
|
25
30
|
duration: z.number(),
|
|
26
31
|
aspectRatio: z.string().optional(),
|
|
27
32
|
quality: z.string().optional(),
|
|
33
|
+
resolution: z.string().optional(),
|
|
28
34
|
});
|
|
29
35
|
export type VideoGenerationRequestParams = z.infer<typeof VideoGenerationRequestParamsSchema>;
|
|
30
36
|
|
|
31
37
|
export const VideoModelPricingRuleConditionSchema = z.object({
|
|
32
|
-
aspectRatio: z.string(),
|
|
38
|
+
aspectRatio: z.string().optional(),
|
|
39
|
+
resolution: z.string().optional(),
|
|
33
40
|
});
|
|
34
41
|
export type VideoModelPricingRuleCondition = z.infer<typeof VideoModelPricingRuleConditionSchema>;
|
|
35
42
|
|