@purpleschool/gptbot 0.7.72 → 0.7.75
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/promocode.ts +0 -1
- package/api/controllers/http/webmaster.ts +1 -1
- package/build/api/controllers/http/promocode.js +0 -1
- package/build/api/controllers/http/webmaster.js +1 -1
- package/build/commands/auth/register-user.command.js +17 -3
- package/build/commands/auth/vk-login.command.js +20 -1
- package/build/commands/auth/yandex-login.command.js +20 -1
- package/build/commands/product/buy-product.command.js +28 -1
- package/build/commands/promocode/index.js +0 -1
- package/build/commands/subscription/buy-subscription.command.js +28 -1
- package/build/commands/telegram-auth/create-telegram-auth-link.command.js +16 -0
- package/build/commands/telegram-profile/auth-with-telegram-web-app.command.js +10 -0
- package/build/commands/user/get-me.command.js +1 -0
- package/build/constants/errors/errors.js +5 -0
- package/build/constants/promocode/enums/promocode-promotion.enum.js +0 -1
- package/build/models/index.js +1 -0
- package/build/models/promocode.schema.js +0 -1
- package/build/models/user-referrals.schema.js +21 -0
- package/build/models/webmaster-balance.schema.js +0 -1
- package/commands/auth/register-user.command.ts +24 -5
- package/commands/auth/vk-login.command.ts +30 -6
- package/commands/auth/yandex-login.command.ts +28 -4
- package/commands/product/buy-product.command.ts +37 -5
- package/commands/promocode/index.ts +0 -1
- package/commands/subscription/buy-subscription.command.ts +37 -5
- package/commands/telegram-auth/create-telegram-auth-link.command.ts +24 -0
- package/commands/telegram-profile/auth-with-telegram-web-app.command.ts +10 -0
- package/commands/user/get-me.command.ts +1 -0
- package/constants/errors/errors.ts +5 -0
- package/constants/promocode/enums/promocode-promotion.enum.ts +0 -1
- package/models/index.ts +1 -0
- package/models/promocode.schema.ts +0 -1
- package/models/user-referrals.schema.ts +16 -0
- package/models/webmaster-balance.schema.ts +0 -1
- package/package.json +1 -1
- package/build/commands/promocode/get-webmaster-promocode.command.js +0 -17
- package/commands/promocode/get-webmaster-promocode.command.ts +0 -19
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WEBMASTER_ROUTES = exports.WEBMASTER_CONTROLLER_PRIVATE = void 0;
|
|
4
|
-
exports.WEBMASTER_CONTROLLER_PRIVATE = 'private/
|
|
4
|
+
exports.WEBMASTER_CONTROLLER_PRIVATE = 'private/webmaster';
|
|
5
5
|
exports.WEBMASTER_ROUTES = {
|
|
6
6
|
GET_MY: 'my',
|
|
7
7
|
GET_BALANCE_OVERVIEW: 'overview',
|
|
@@ -6,11 +6,25 @@ const zod_1 = require("zod");
|
|
|
6
6
|
var RegisterUserCommand;
|
|
7
7
|
(function (RegisterUserCommand) {
|
|
8
8
|
RegisterUserCommand.RequestSchema = models_1.UserSchema.pick({ email: true, password: true })
|
|
9
|
-
.extend({
|
|
10
|
-
partnerId: zod_1.z.string().optional(),
|
|
11
|
-
})
|
|
12
9
|
.extend({
|
|
13
10
|
utm: models_1.UtmSchema.optional(),
|
|
11
|
+
})
|
|
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'],
|
|
14
28
|
});
|
|
15
29
|
RegisterUserCommand.ResponseSchema = zod_1.z.object({
|
|
16
30
|
data: zod_1.z.object({
|
|
@@ -2,13 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VKLoginCommand = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
5
6
|
var VKLoginCommand;
|
|
6
7
|
(function (VKLoginCommand) {
|
|
7
|
-
VKLoginCommand.RequestSchema = zod_1.z
|
|
8
|
+
VKLoginCommand.RequestSchema = zod_1.z
|
|
9
|
+
.object({
|
|
8
10
|
code: zod_1.z.string(),
|
|
9
11
|
code_verifier: zod_1.z.string(),
|
|
10
12
|
device_id: zod_1.z.string(),
|
|
11
13
|
state: zod_1.z.string(),
|
|
14
|
+
})
|
|
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'],
|
|
12
31
|
});
|
|
13
32
|
VKLoginCommand.ResponseSchema = zod_1.z.object({
|
|
14
33
|
data: zod_1.z.object({
|
|
@@ -2,11 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.YandexLoginCommand = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
5
6
|
var YandexLoginCommand;
|
|
6
7
|
(function (YandexLoginCommand) {
|
|
7
|
-
YandexLoginCommand.RequestSchema = zod_1.z
|
|
8
|
+
YandexLoginCommand.RequestSchema = zod_1.z
|
|
9
|
+
.object({
|
|
8
10
|
code: zod_1.z.string(),
|
|
9
11
|
code_verifier: zod_1.z.string(),
|
|
12
|
+
})
|
|
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'],
|
|
10
29
|
});
|
|
11
30
|
YandexLoginCommand.ResponseSchema = zod_1.z.object({
|
|
12
31
|
data: zod_1.z.object({
|
|
@@ -26,10 +26,37 @@ 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
|
+
webmasterAlias: zod_1.z.string().optional(),
|
|
35
|
+
webmasterReferralProvidedAt: zod_1.z
|
|
36
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
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'],
|
|
33
60
|
});
|
|
34
61
|
BuyProductCommand.ResponseSchema = zod_1.z.object({
|
|
35
62
|
publicId: zod_1.z.string(),
|
|
@@ -20,4 +20,3 @@ __exportStar(require("./find-promocode.command"), exports);
|
|
|
20
20
|
__exportStar(require("./get-upsell-offer.command"), exports);
|
|
21
21
|
__exportStar(require("./update-promocode.command"), exports);
|
|
22
22
|
__exportStar(require("./validate-promocode.command"), exports);
|
|
23
|
-
__exportStar(require("./get-webmaster-promocode.command"), exports);
|
|
@@ -12,10 +12,37 @@ 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
|
+
webmasterAlias: zod_1.z.string().optional(),
|
|
21
|
+
webmasterReferralProvidedAt: zod_1.z
|
|
22
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
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'],
|
|
19
46
|
});
|
|
20
47
|
const IReceiptOrderSchema = zod_1.z.object({
|
|
21
48
|
items: zod_1.z.array(zod_1.z.object({
|
|
@@ -2,8 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateTelegramAuthLinkCommand = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
5
6
|
var CreateTelegramAuthLinkCommand;
|
|
6
7
|
(function (CreateTelegramAuthLinkCommand) {
|
|
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
|
+
});
|
|
7
23
|
CreateTelegramAuthLinkCommand.ResponseSchema = zod_1.z.object({
|
|
8
24
|
data: zod_1.z.object({
|
|
9
25
|
uuid: zod_1.z.string().uuid(),
|
|
@@ -9,7 +9,17 @@ var AuthWithTelegramWebAppCommand;
|
|
|
9
9
|
initData: zod_1.z.string(),
|
|
10
10
|
platform: zod_1.z.string().nullable(),
|
|
11
11
|
partnerId: zod_1.z.string().optional(),
|
|
12
|
+
webmasterAlias: zod_1.z.string().optional(),
|
|
13
|
+
webmasterReferralProvidedAt: zod_1.z
|
|
14
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), zod_1.z.date())
|
|
15
|
+
.optional(),
|
|
12
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(),
|
|
13
23
|
});
|
|
14
24
|
AuthWithTelegramWebAppCommand.ResponseSchema = zod_1.z.object({
|
|
15
25
|
data: zod_1.z.object({
|
|
@@ -14,6 +14,7 @@ var GetMeCommand;
|
|
|
14
14
|
role: zod_1.z.nativeEnum(constants_1.ROLE),
|
|
15
15
|
signupMethod: zod_1.z.nativeEnum(constants_1.SIGNUP_METHOD),
|
|
16
16
|
telegramId: zod_1.z.number().nullable(),
|
|
17
|
+
webmasterId: zod_1.z.string().uuid().nullable(),
|
|
17
18
|
}),
|
|
18
19
|
});
|
|
19
20
|
})(GetMeCommand || (exports.GetMeCommand = GetMeCommand = {}));
|
|
@@ -2279,4 +2279,9 @@ exports.ERRORS = {
|
|
|
2279
2279
|
message: 'У вас нет доступа к этой модели Writer',
|
|
2280
2280
|
httpCode: 403,
|
|
2281
2281
|
},
|
|
2282
|
+
WEBMASTER_BONUS_APPLY_ERROR: {
|
|
2283
|
+
code: 'A449',
|
|
2284
|
+
message: 'Не удалось применить бонусы вебмастеру',
|
|
2285
|
+
httpCode: 500,
|
|
2286
|
+
},
|
|
2282
2287
|
};
|
|
@@ -6,5 +6,4 @@ var PROMOCODE_PROMOTION;
|
|
|
6
6
|
PROMOCODE_PROMOTION["BONUS"] = "bonus";
|
|
7
7
|
PROMOCODE_PROMOTION["CHAT_UPSELL"] = "chat_upsell";
|
|
8
8
|
PROMOCODE_PROMOTION["DAILY_STREAK"] = "daily_streak";
|
|
9
|
-
PROMOCODE_PROMOTION["WEBMASTER"] = "webmaster";
|
|
10
9
|
})(PROMOCODE_PROMOTION || (exports.PROMOCODE_PROMOTION = PROMOCODE_PROMOTION = {}));
|
package/build/models/index.js
CHANGED
|
@@ -68,3 +68,4 @@ __exportStar(require("./users-filter-notification.schema"), exports);
|
|
|
68
68
|
__exportStar(require("./daily-streak"), exports);
|
|
69
69
|
__exportStar(require("./webmaster.schema"), exports);
|
|
70
70
|
__exportStar(require("./webmaster-balance.schema"), exports);
|
|
71
|
+
__exportStar(require("./user-referrals.schema"), exports);
|
|
@@ -15,7 +15,6 @@ exports.PromocodeSchema = zod_1.z.object({
|
|
|
15
15
|
endDate: zod_1.z.date().nullable(),
|
|
16
16
|
userId: zod_1.z.string().uuid().nullable(),
|
|
17
17
|
unregisteredUserId: zod_1.z.string().uuid().nullable(),
|
|
18
|
-
webmasterId: zod_1.z.string().uuid().nullable(),
|
|
19
18
|
createdAt: zod_1.z.date(),
|
|
20
19
|
updatedAt: zod_1.z.date(),
|
|
21
20
|
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UserReferralsSchema = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
exports.UserReferralsSchema = zod_1.default.object({
|
|
9
|
+
partnerId: zod_1.default.string().uuid().optional(),
|
|
10
|
+
webmasterAlias: zod_1.default.string().optional(),
|
|
11
|
+
webmasterReferralProvidedAt: zod_1.default
|
|
12
|
+
.string()
|
|
13
|
+
.transform((date) => new Date(date))
|
|
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(),
|
|
21
|
+
});
|
|
@@ -10,7 +10,6 @@ exports.WebmasterBalanceSchema = zod_1.default.object({
|
|
|
10
10
|
uuid: zod_1.default.string().uuid(),
|
|
11
11
|
webmasterId: zod_1.default.string().uuid(),
|
|
12
12
|
orderId: zod_1.default.string().uuid().nullable(),
|
|
13
|
-
promocodeId: zod_1.default.string().uuid().nullable(),
|
|
14
13
|
sourceUserId: zod_1.default.string().uuid().nullable(),
|
|
15
14
|
amount: zod_1.default.number(),
|
|
16
15
|
type: zod_1.default.nativeEnum(constants_1.WEBMASTER_BALANCE_TYPE),
|
|
@@ -1,14 +1,33 @@
|
|
|
1
|
-
import { UserSchema, UtmSchema } from '../../models';
|
|
1
|
+
import { UserReferralsSchema, UserSchema, UtmSchema } from '../../models';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
export namespace RegisterUserCommand {
|
|
5
5
|
export const RequestSchema = UserSchema.pick({ email: true, password: true })
|
|
6
|
-
.extend({
|
|
7
|
-
partnerId: z.string().optional(),
|
|
8
|
-
})
|
|
9
6
|
.extend({
|
|
10
7
|
utm: UtmSchema.optional(),
|
|
11
|
-
})
|
|
8
|
+
})
|
|
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
|
+
);
|
|
12
31
|
|
|
13
32
|
export type Request = z.infer<typeof RequestSchema>;
|
|
14
33
|
|
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { UserReferralsSchema } from '../../models';
|
|
2
3
|
|
|
3
4
|
export namespace VKLoginCommand {
|
|
4
|
-
export const RequestSchema = z
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export const RequestSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
code: z.string(),
|
|
8
|
+
code_verifier: z.string(),
|
|
9
|
+
device_id: z.string(),
|
|
10
|
+
state: z.string(),
|
|
11
|
+
})
|
|
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
|
+
);
|
|
10
34
|
|
|
11
35
|
export type Request = z.infer<typeof RequestSchema>;
|
|
12
36
|
|
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { UserReferralsSchema } from '../../models';
|
|
2
3
|
|
|
3
4
|
export namespace YandexLoginCommand {
|
|
4
|
-
export const RequestSchema = z
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export const RequestSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
code: z.string(),
|
|
8
|
+
code_verifier: z.string(),
|
|
9
|
+
})
|
|
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
|
+
);
|
|
8
32
|
|
|
9
33
|
export type Request = z.infer<typeof RequestSchema>;
|
|
10
34
|
|
|
@@ -32,11 +32,43 @@ export namespace BuyProductCommand {
|
|
|
32
32
|
}),
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
export const RequestFastSchema = z
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
+
);
|
|
40
72
|
|
|
41
73
|
export type RequestFast = z.infer<typeof RequestFastSchema>;
|
|
42
74
|
export const ResponseSchema = z.object({
|
|
@@ -12,11 +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
|
-
|
|
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
|
+
);
|
|
20
52
|
|
|
21
53
|
export type RequestFast = z.infer<typeof RequestFastSchema>;
|
|
22
54
|
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { UserReferralsSchema } from '../../models';
|
|
2
3
|
|
|
3
4
|
export namespace CreateTelegramAuthLinkCommand {
|
|
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
|
+
);
|
|
25
|
+
|
|
26
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
27
|
+
|
|
4
28
|
export const ResponseSchema = z.object({
|
|
5
29
|
data: z.object({
|
|
6
30
|
uuid: z.string().uuid(),
|
|
@@ -6,7 +6,17 @@ export namespace AuthWithTelegramWebAppCommand {
|
|
|
6
6
|
initData: z.string(),
|
|
7
7
|
platform: z.string().nullable(),
|
|
8
8
|
partnerId: z.string().optional(),
|
|
9
|
+
webmasterAlias: z.string().optional(),
|
|
10
|
+
webmasterReferralProvidedAt: z
|
|
11
|
+
.preprocess((val) => (typeof val === 'string' ? new Date(val) : val), z.date())
|
|
12
|
+
.optional(),
|
|
9
13
|
utm: UtmSchema.optional(),
|
|
14
|
+
admitadUid: z.string().optional(),
|
|
15
|
+
admitadClickDate: z
|
|
16
|
+
.string()
|
|
17
|
+
.datetime()
|
|
18
|
+
.transform((date) => new Date(date))
|
|
19
|
+
.optional(),
|
|
10
20
|
});
|
|
11
21
|
|
|
12
22
|
export type Request = z.infer<typeof RequestBodySchema>;
|
|
@@ -2287,4 +2287,9 @@ export const ERRORS = {
|
|
|
2287
2287
|
message: 'У вас нет доступа к этой модели Writer',
|
|
2288
2288
|
httpCode: 403,
|
|
2289
2289
|
},
|
|
2290
|
+
WEBMASTER_BONUS_APPLY_ERROR: {
|
|
2291
|
+
code: 'A449',
|
|
2292
|
+
message: 'Не удалось применить бонусы вебмастеру',
|
|
2293
|
+
httpCode: 500,
|
|
2294
|
+
},
|
|
2290
2295
|
};
|
package/models/index.ts
CHANGED
|
@@ -13,7 +13,6 @@ export const PromocodeSchema = z.object({
|
|
|
13
13
|
endDate: z.date().nullable(),
|
|
14
14
|
userId: z.string().uuid().nullable(),
|
|
15
15
|
unregisteredUserId: z.string().uuid().nullable(),
|
|
16
|
-
webmasterId: z.string().uuid().nullable(),
|
|
17
16
|
|
|
18
17
|
createdAt: z.date(),
|
|
19
18
|
updatedAt: z.date(),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
|
|
3
|
+
export const UserReferralsSchema = z.object({
|
|
4
|
+
partnerId: z.string().uuid().optional(),
|
|
5
|
+
webmasterAlias: z.string().optional(),
|
|
6
|
+
webmasterReferralProvidedAt: z
|
|
7
|
+
.string()
|
|
8
|
+
.transform((date) => new Date(date))
|
|
9
|
+
.optional(),
|
|
10
|
+
admitadUid: z.string().optional(),
|
|
11
|
+
admitadClickDate: z
|
|
12
|
+
.string()
|
|
13
|
+
.datetime()
|
|
14
|
+
.transform((date) => new Date(date))
|
|
15
|
+
.optional(),
|
|
16
|
+
});
|
|
@@ -5,7 +5,6 @@ export const WebmasterBalanceSchema = z.object({
|
|
|
5
5
|
uuid: z.string().uuid(),
|
|
6
6
|
webmasterId: z.string().uuid(),
|
|
7
7
|
orderId: z.string().uuid().nullable(),
|
|
8
|
-
promocodeId: z.string().uuid().nullable(),
|
|
9
8
|
sourceUserId: z.string().uuid().nullable(),
|
|
10
9
|
amount: z.number(),
|
|
11
10
|
type: z.nativeEnum(WEBMASTER_BALANCE_TYPE),
|
package/package.json
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GetWebmasterPromocodeCommand = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const models_1 = require("../../models");
|
|
6
|
-
var GetWebmasterPromocodeCommand;
|
|
7
|
-
(function (GetWebmasterPromocodeCommand) {
|
|
8
|
-
GetWebmasterPromocodeCommand.RequestSchema = models_1.WebmasterSchema.pick({ alias: true });
|
|
9
|
-
GetWebmasterPromocodeCommand.ResponseSchema = zod_1.z.object({
|
|
10
|
-
data: zod_1.z.object({
|
|
11
|
-
isEligible: zod_1.z.boolean(),
|
|
12
|
-
promocode: zod_1.z.string().nullable(),
|
|
13
|
-
amount: zod_1.z.number().nullable(),
|
|
14
|
-
endDate: zod_1.z.date().nullable(),
|
|
15
|
-
}),
|
|
16
|
-
});
|
|
17
|
-
})(GetWebmasterPromocodeCommand || (exports.GetWebmasterPromocodeCommand = GetWebmasterPromocodeCommand = {}));
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { WebmasterSchema } from '../../models';
|
|
3
|
-
|
|
4
|
-
export namespace GetWebmasterPromocodeCommand {
|
|
5
|
-
export const RequestSchema = WebmasterSchema.pick({ alias: true });
|
|
6
|
-
|
|
7
|
-
export type Request = z.infer<typeof RequestSchema>;
|
|
8
|
-
|
|
9
|
-
export const ResponseSchema = z.object({
|
|
10
|
-
data: z.object({
|
|
11
|
-
isEligible: z.boolean(),
|
|
12
|
-
promocode: z.string().nullable(),
|
|
13
|
-
amount: z.number().nullable(),
|
|
14
|
-
endDate: z.date().nullable(),
|
|
15
|
-
}),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
-
}
|