@purpleschool/gptbot 0.7.74 → 0.7.76
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/auth/register-user.command.js +17 -1
- package/build/commands/auth/vk-login.command.js +17 -1
- package/build/commands/auth/yandex-login.command.js +17 -1
- package/build/commands/product/buy-product.command.js +24 -1
- package/build/commands/subscription/buy-subscription.command.js +24 -1
- package/build/commands/telegram-auth/create-telegram-auth-link.command.js +15 -1
- package/build/commands/telegram-profile/auth-with-telegram-web-app.command.js +6 -0
- package/build/constants/errors/errors.js +2 -0
- package/build/models/user-referrals.schema.js +6 -0
- package/commands/auth/register-user.command.ts +22 -1
- package/commands/auth/vk-login.command.ts +22 -1
- package/commands/auth/yandex-login.command.ts +22 -1
- package/commands/product/buy-product.command.ts +37 -9
- package/commands/subscription/buy-subscription.command.ts +37 -9
- package/commands/telegram-auth/create-telegram-auth-link.command.ts +20 -1
- package/commands/telegram-profile/auth-with-telegram-web-app.command.ts +6 -0
- package/constants/errors/errors.ts +2 -0
- package/models/user-referrals.schema.ts +6 -0
- package/package.json +1 -1
|
@@ -9,7 +9,23 @@ var RegisterUserCommand;
|
|
|
9
9
|
.extend({
|
|
10
10
|
utm: models_1.UtmSchema.optional(),
|
|
11
11
|
})
|
|
12
|
-
.merge(models_1.UserReferralsSchema)
|
|
12
|
+
.merge(models_1.UserReferralsSchema)
|
|
13
|
+
.refine((data) => {
|
|
14
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
15
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
16
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
17
|
+
}, {
|
|
18
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
19
|
+
path: ['admitadUid'],
|
|
20
|
+
})
|
|
21
|
+
.refine((data) => {
|
|
22
|
+
if (!data.admitadClickDate)
|
|
23
|
+
return true;
|
|
24
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
25
|
+
}, {
|
|
26
|
+
message: 'admitadClickDate cannot be in the future',
|
|
27
|
+
path: ['admitadClickDate'],
|
|
28
|
+
});
|
|
13
29
|
RegisterUserCommand.ResponseSchema = zod_1.z.object({
|
|
14
30
|
data: zod_1.z.object({
|
|
15
31
|
accessToken: zod_1.z.string(),
|
|
@@ -12,7 +12,23 @@ var VKLoginCommand;
|
|
|
12
12
|
device_id: zod_1.z.string(),
|
|
13
13
|
state: zod_1.z.string(),
|
|
14
14
|
})
|
|
15
|
-
.merge(models_1.UserReferralsSchema)
|
|
15
|
+
.merge(models_1.UserReferralsSchema)
|
|
16
|
+
.refine((data) => {
|
|
17
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
18
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
19
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
20
|
+
}, {
|
|
21
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
22
|
+
path: ['admitadUid'],
|
|
23
|
+
})
|
|
24
|
+
.refine((data) => {
|
|
25
|
+
if (!data.admitadClickDate)
|
|
26
|
+
return true;
|
|
27
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
28
|
+
}, {
|
|
29
|
+
message: 'admitadClickDate cannot be in the future',
|
|
30
|
+
path: ['admitadClickDate'],
|
|
31
|
+
});
|
|
16
32
|
VKLoginCommand.ResponseSchema = zod_1.z.object({
|
|
17
33
|
data: zod_1.z.object({
|
|
18
34
|
accessToken: zod_1.z.string(),
|
|
@@ -10,7 +10,23 @@ var YandexLoginCommand;
|
|
|
10
10
|
code: zod_1.z.string(),
|
|
11
11
|
code_verifier: zod_1.z.string(),
|
|
12
12
|
})
|
|
13
|
-
.merge(models_1.UserReferralsSchema)
|
|
13
|
+
.merge(models_1.UserReferralsSchema)
|
|
14
|
+
.refine((data) => {
|
|
15
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
16
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
17
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
18
|
+
}, {
|
|
19
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
20
|
+
path: ['admitadUid'],
|
|
21
|
+
})
|
|
22
|
+
.refine((data) => {
|
|
23
|
+
if (!data.admitadClickDate)
|
|
24
|
+
return true;
|
|
25
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
26
|
+
}, {
|
|
27
|
+
message: 'admitadClickDate cannot be in the future',
|
|
28
|
+
path: ['admitadClickDate'],
|
|
29
|
+
});
|
|
14
30
|
YandexLoginCommand.ResponseSchema = zod_1.z.object({
|
|
15
31
|
data: zod_1.z.object({
|
|
16
32
|
accessToken: zod_1.z.string(),
|
|
@@ -26,7 +26,8 @@ var BuyProductCommand;
|
|
|
26
26
|
electronic: zod_1.z.number(),
|
|
27
27
|
}),
|
|
28
28
|
});
|
|
29
|
-
BuyProductCommand.RequestFastSchema = zod_1.z
|
|
29
|
+
BuyProductCommand.RequestFastSchema = zod_1.z
|
|
30
|
+
.object({
|
|
30
31
|
email: zod_1.z.string().email(),
|
|
31
32
|
partnerId: zod_1.z.string().uuid().optional(),
|
|
32
33
|
promocode: zod_1.z.string().optional(),
|
|
@@ -34,6 +35,28 @@ var BuyProductCommand;
|
|
|
34
35
|
webmasterReferralProvidedAt: zod_1.z
|
|
35
36
|
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
36
37
|
.optional(),
|
|
38
|
+
admitadUid: zod_1.z.string().optional(),
|
|
39
|
+
admitadClickDate: zod_1.z
|
|
40
|
+
.string()
|
|
41
|
+
.datetime()
|
|
42
|
+
.transform((date) => new Date(date))
|
|
43
|
+
.optional(),
|
|
44
|
+
})
|
|
45
|
+
.refine((data) => {
|
|
46
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
47
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
48
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
49
|
+
}, {
|
|
50
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
51
|
+
path: ['admitadUid'],
|
|
52
|
+
})
|
|
53
|
+
.refine((data) => {
|
|
54
|
+
if (!data.admitadClickDate)
|
|
55
|
+
return true;
|
|
56
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
57
|
+
}, {
|
|
58
|
+
message: 'admitadClickDate cannot be in the future',
|
|
59
|
+
path: ['admitadClickDate'],
|
|
37
60
|
});
|
|
38
61
|
BuyProductCommand.ResponseSchema = zod_1.z.object({
|
|
39
62
|
publicId: zod_1.z.string(),
|
|
@@ -12,7 +12,8 @@ var BuySubscriptionCommand;
|
|
|
12
12
|
useDiscount: zod_1.z.boolean(),
|
|
13
13
|
promocode: zod_1.z.string().optional(),
|
|
14
14
|
});
|
|
15
|
-
BuySubscriptionCommand.RequestFastSchema = zod_1.z
|
|
15
|
+
BuySubscriptionCommand.RequestFastSchema = zod_1.z
|
|
16
|
+
.object({
|
|
16
17
|
email: zod_1.z.string().email(),
|
|
17
18
|
partnerId: zod_1.z.string().uuid().optional(),
|
|
18
19
|
promocode: zod_1.z.string().optional(),
|
|
@@ -20,6 +21,28 @@ var BuySubscriptionCommand;
|
|
|
20
21
|
webmasterReferralProvidedAt: zod_1.z
|
|
21
22
|
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
22
23
|
.optional(),
|
|
24
|
+
admitadUid: zod_1.z.string().optional(),
|
|
25
|
+
admitadClickDate: zod_1.z
|
|
26
|
+
.string()
|
|
27
|
+
.datetime()
|
|
28
|
+
.transform((date) => new Date(date))
|
|
29
|
+
.optional(),
|
|
30
|
+
})
|
|
31
|
+
.refine((data) => {
|
|
32
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
33
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
34
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
35
|
+
}, {
|
|
36
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
37
|
+
path: ['admitadUid'],
|
|
38
|
+
})
|
|
39
|
+
.refine((data) => {
|
|
40
|
+
if (!data.admitadClickDate)
|
|
41
|
+
return true;
|
|
42
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
43
|
+
}, {
|
|
44
|
+
message: 'admitadClickDate cannot be in the future',
|
|
45
|
+
path: ['admitadClickDate'],
|
|
23
46
|
});
|
|
24
47
|
const IReceiptOrderSchema = zod_1.z.object({
|
|
25
48
|
items: zod_1.z.array(zod_1.z.object({
|
|
@@ -5,7 +5,21 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const models_1 = require("../../models");
|
|
6
6
|
var CreateTelegramAuthLinkCommand;
|
|
7
7
|
(function (CreateTelegramAuthLinkCommand) {
|
|
8
|
-
CreateTelegramAuthLinkCommand.RequestSchema = models_1.UserReferralsSchema
|
|
8
|
+
CreateTelegramAuthLinkCommand.RequestSchema = models_1.UserReferralsSchema.refine((data) => {
|
|
9
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
10
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
11
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
12
|
+
}, {
|
|
13
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
14
|
+
path: ['admitadUid'],
|
|
15
|
+
}).refine((data) => {
|
|
16
|
+
if (!data.admitadClickDate)
|
|
17
|
+
return true;
|
|
18
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
19
|
+
}, {
|
|
20
|
+
message: 'admitadClickDate cannot be in the future',
|
|
21
|
+
path: ['admitadClickDate'],
|
|
22
|
+
});
|
|
9
23
|
CreateTelegramAuthLinkCommand.ResponseSchema = zod_1.z.object({
|
|
10
24
|
data: zod_1.z.object({
|
|
11
25
|
uuid: zod_1.z.string().uuid(),
|
|
@@ -14,6 +14,12 @@ var AuthWithTelegramWebAppCommand;
|
|
|
14
14
|
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
15
15
|
.optional(),
|
|
16
16
|
utm: models_1.UtmSchema.optional(),
|
|
17
|
+
admitadUid: zod_1.z.string().optional(),
|
|
18
|
+
admitadClickDate: zod_1.z
|
|
19
|
+
.string()
|
|
20
|
+
.datetime()
|
|
21
|
+
.transform((date) => new Date(date))
|
|
22
|
+
.optional(),
|
|
17
23
|
});
|
|
18
24
|
AuthWithTelegramWebAppCommand.ResponseSchema = zod_1.z.object({
|
|
19
25
|
data: zod_1.z.object({
|
|
@@ -2239,10 +2239,12 @@ exports.ERRORS = {
|
|
|
2239
2239
|
MUSIC_MAX_SYMBOLS_EXCEEDED: {
|
|
2240
2240
|
code: 'A458',
|
|
2241
2241
|
message: 'Превышена максимальная количество символов',
|
|
2242
|
+
httpCode: 400,
|
|
2242
2243
|
},
|
|
2243
2244
|
MUSIC_INVALID_VOCAL: {
|
|
2244
2245
|
code: 'A459',
|
|
2245
2246
|
message: 'Выбран неверный голос для вокала',
|
|
2247
|
+
httpCode: 400,
|
|
2246
2248
|
},
|
|
2247
2249
|
MUSIC_JOB_DELETE_ERROR: {
|
|
2248
2250
|
code: 'A460',
|
|
@@ -12,4 +12,10 @@ exports.UserReferralsSchema = zod_1.default.object({
|
|
|
12
12
|
.string()
|
|
13
13
|
.transform((date) => new Date(date))
|
|
14
14
|
.optional(),
|
|
15
|
+
admitadUid: zod_1.default.string().optional(),
|
|
16
|
+
admitadClickDate: zod_1.default
|
|
17
|
+
.string()
|
|
18
|
+
.datetime()
|
|
19
|
+
.transform((date) => new Date(date))
|
|
20
|
+
.optional(),
|
|
15
21
|
});
|
|
@@ -6,7 +6,28 @@ export namespace RegisterUserCommand {
|
|
|
6
6
|
.extend({
|
|
7
7
|
utm: UtmSchema.optional(),
|
|
8
8
|
})
|
|
9
|
-
.merge(UserReferralsSchema)
|
|
9
|
+
.merge(UserReferralsSchema)
|
|
10
|
+
.refine(
|
|
11
|
+
(data) => {
|
|
12
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
13
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
14
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
18
|
+
path: ['admitadUid'],
|
|
19
|
+
},
|
|
20
|
+
)
|
|
21
|
+
.refine(
|
|
22
|
+
(data) => {
|
|
23
|
+
if (!data.admitadClickDate) return true;
|
|
24
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
message: 'admitadClickDate cannot be in the future',
|
|
28
|
+
path: ['admitadClickDate'],
|
|
29
|
+
},
|
|
30
|
+
);
|
|
10
31
|
|
|
11
32
|
export type Request = z.infer<typeof RequestSchema>;
|
|
12
33
|
|
|
@@ -9,7 +9,28 @@ export namespace VKLoginCommand {
|
|
|
9
9
|
device_id: z.string(),
|
|
10
10
|
state: z.string(),
|
|
11
11
|
})
|
|
12
|
-
.merge(UserReferralsSchema)
|
|
12
|
+
.merge(UserReferralsSchema)
|
|
13
|
+
.refine(
|
|
14
|
+
(data) => {
|
|
15
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
16
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
17
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
21
|
+
path: ['admitadUid'],
|
|
22
|
+
},
|
|
23
|
+
)
|
|
24
|
+
.refine(
|
|
25
|
+
(data) => {
|
|
26
|
+
if (!data.admitadClickDate) return true;
|
|
27
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
message: 'admitadClickDate cannot be in the future',
|
|
31
|
+
path: ['admitadClickDate'],
|
|
32
|
+
},
|
|
33
|
+
);
|
|
13
34
|
|
|
14
35
|
export type Request = z.infer<typeof RequestSchema>;
|
|
15
36
|
|
|
@@ -7,7 +7,28 @@ export namespace YandexLoginCommand {
|
|
|
7
7
|
code: z.string(),
|
|
8
8
|
code_verifier: z.string(),
|
|
9
9
|
})
|
|
10
|
-
.merge(UserReferralsSchema)
|
|
10
|
+
.merge(UserReferralsSchema)
|
|
11
|
+
.refine(
|
|
12
|
+
(data) => {
|
|
13
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
14
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
15
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
19
|
+
path: ['admitadUid'],
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
.refine(
|
|
23
|
+
(data) => {
|
|
24
|
+
if (!data.admitadClickDate) return true;
|
|
25
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
message: 'admitadClickDate cannot be in the future',
|
|
29
|
+
path: ['admitadClickDate'],
|
|
30
|
+
},
|
|
31
|
+
);
|
|
11
32
|
|
|
12
33
|
export type Request = z.infer<typeof RequestSchema>;
|
|
13
34
|
|
|
@@ -32,15 +32,43 @@ export namespace BuyProductCommand {
|
|
|
32
32
|
}),
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
export const RequestFastSchema = z
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
export const RequestFastSchema = z
|
|
36
|
+
.object({
|
|
37
|
+
email: z.string().email(),
|
|
38
|
+
partnerId: z.string().uuid().optional(),
|
|
39
|
+
promocode: z.string().optional(),
|
|
40
|
+
webmasterAlias: z.string().optional(),
|
|
41
|
+
webmasterReferralProvidedAt: z
|
|
42
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), z.date())
|
|
43
|
+
.optional(),
|
|
44
|
+
admitadUid: z.string().optional(),
|
|
45
|
+
admitadClickDate: z
|
|
46
|
+
.string()
|
|
47
|
+
.datetime()
|
|
48
|
+
.transform((date) => new Date(date))
|
|
49
|
+
.optional(),
|
|
50
|
+
})
|
|
51
|
+
.refine(
|
|
52
|
+
(data) => {
|
|
53
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
54
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
55
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
59
|
+
path: ['admitadUid'],
|
|
60
|
+
},
|
|
61
|
+
)
|
|
62
|
+
.refine(
|
|
63
|
+
(data) => {
|
|
64
|
+
if (!data.admitadClickDate) return true;
|
|
65
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
message: 'admitadClickDate cannot be in the future',
|
|
69
|
+
path: ['admitadClickDate'],
|
|
70
|
+
},
|
|
71
|
+
);
|
|
44
72
|
|
|
45
73
|
export type RequestFast = z.infer<typeof RequestFastSchema>;
|
|
46
74
|
export const ResponseSchema = z.object({
|
|
@@ -12,15 +12,43 @@ export namespace BuySubscriptionCommand {
|
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
export type Request = z.infer<typeof RequestSchema>;
|
|
15
|
-
export const RequestFastSchema = z
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
export const RequestFastSchema = z
|
|
16
|
+
.object({
|
|
17
|
+
email: z.string().email(),
|
|
18
|
+
partnerId: z.string().uuid().optional(),
|
|
19
|
+
promocode: z.string().optional(),
|
|
20
|
+
webmasterAlias: z.string().optional(),
|
|
21
|
+
webmasterReferralProvidedAt: z
|
|
22
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), z.date())
|
|
23
|
+
.optional(),
|
|
24
|
+
admitadUid: z.string().optional(),
|
|
25
|
+
admitadClickDate: z
|
|
26
|
+
.string()
|
|
27
|
+
.datetime()
|
|
28
|
+
.transform((date) => new Date(date))
|
|
29
|
+
.optional(),
|
|
30
|
+
})
|
|
31
|
+
.refine(
|
|
32
|
+
(data) => {
|
|
33
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
34
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
35
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
39
|
+
path: ['admitadUid'],
|
|
40
|
+
},
|
|
41
|
+
)
|
|
42
|
+
.refine(
|
|
43
|
+
(data) => {
|
|
44
|
+
if (!data.admitadClickDate) return true;
|
|
45
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
message: 'admitadClickDate cannot be in the future',
|
|
49
|
+
path: ['admitadClickDate'],
|
|
50
|
+
},
|
|
51
|
+
);
|
|
24
52
|
|
|
25
53
|
export type RequestFast = z.infer<typeof RequestFastSchema>;
|
|
26
54
|
|
|
@@ -2,7 +2,26 @@ import { z } from 'zod';
|
|
|
2
2
|
import { UserReferralsSchema } from '../../models';
|
|
3
3
|
|
|
4
4
|
export namespace CreateTelegramAuthLinkCommand {
|
|
5
|
-
export const RequestSchema = UserReferralsSchema
|
|
5
|
+
export const RequestSchema = UserReferralsSchema.refine(
|
|
6
|
+
(data) => {
|
|
7
|
+
const hasAdmitadUid = !!data.admitadUid;
|
|
8
|
+
const hasAdmitadClickDate = !!data.admitadClickDate;
|
|
9
|
+
return hasAdmitadUid === hasAdmitadClickDate;
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
message: 'admitadUid and admitadClickDate must be provided together',
|
|
13
|
+
path: ['admitadUid'],
|
|
14
|
+
},
|
|
15
|
+
).refine(
|
|
16
|
+
(data) => {
|
|
17
|
+
if (!data.admitadClickDate) return true;
|
|
18
|
+
return new Date(data.admitadClickDate).getTime() <= Date.now();
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
message: 'admitadClickDate cannot be in the future',
|
|
22
|
+
path: ['admitadClickDate'],
|
|
23
|
+
},
|
|
24
|
+
);
|
|
6
25
|
|
|
7
26
|
export type Request = z.infer<typeof RequestSchema>;
|
|
8
27
|
|
|
@@ -11,6 +11,12 @@ export namespace AuthWithTelegramWebAppCommand {
|
|
|
11
11
|
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), z.date())
|
|
12
12
|
.optional(),
|
|
13
13
|
utm: UtmSchema.optional(),
|
|
14
|
+
admitadUid: z.string().optional(),
|
|
15
|
+
admitadClickDate: z
|
|
16
|
+
.string()
|
|
17
|
+
.datetime()
|
|
18
|
+
.transform((date) => new Date(date))
|
|
19
|
+
.optional(),
|
|
14
20
|
});
|
|
15
21
|
|
|
16
22
|
export type Request = z.infer<typeof RequestBodySchema>;
|
|
@@ -2247,10 +2247,12 @@ export const ERRORS = {
|
|
|
2247
2247
|
MUSIC_MAX_SYMBOLS_EXCEEDED: {
|
|
2248
2248
|
code: 'A458',
|
|
2249
2249
|
message: 'Превышена максимальная количество символов',
|
|
2250
|
+
httpCode: 400,
|
|
2250
2251
|
},
|
|
2251
2252
|
MUSIC_INVALID_VOCAL: {
|
|
2252
2253
|
code: 'A459',
|
|
2253
2254
|
message: 'Выбран неверный голос для вокала',
|
|
2255
|
+
httpCode: 400,
|
|
2254
2256
|
},
|
|
2255
2257
|
MUSIC_JOB_DELETE_ERROR: {
|
|
2256
2258
|
code: 'A460',
|
|
@@ -7,4 +7,10 @@ export const UserReferralsSchema = z.object({
|
|
|
7
7
|
.string()
|
|
8
8
|
.transform((date) => new Date(date))
|
|
9
9
|
.optional(),
|
|
10
|
+
admitadUid: z.string().optional(),
|
|
11
|
+
admitadClickDate: z
|
|
12
|
+
.string()
|
|
13
|
+
.datetime()
|
|
14
|
+
.transform((date) => new Date(date))
|
|
15
|
+
.optional(),
|
|
10
16
|
});
|