@purpleschool/gptbot 0.7.39 → 0.7.40
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/subscription.ts +2 -0
- package/api/routes.ts +4 -0
- package/build/api/controllers/http/subscription.js +2 -0
- package/build/api/routes.js +2 -0
- package/build/commands/subscription/downgrade-subscription.command.js +44 -0
- package/build/commands/subscription/index.js +1 -0
- package/build/constants/errors/errors.js +15 -0
- package/build/constants/order/enums/order-type.enum.js +1 -0
- package/build/constants/subscription/enums/subscription-action.enum.js +1 -0
- package/build/constants/subscription/enums/subscription-status.enum.js +3 -0
- package/build/models/user-to-subscription.schema.js +1 -0
- package/commands/subscription/downgrade-subscription.command.ts +50 -0
- package/commands/subscription/index.ts +1 -0
- package/constants/errors/errors.ts +15 -0
- package/constants/order/enums/order-type.enum.ts +1 -0
- package/constants/subscription/enums/subscription-action.enum.ts +1 -0
- package/constants/subscription/enums/subscription-status.enum.ts +3 -0
- package/models/user-to-subscription.schema.ts +1 -0
- package/package.json +1 -1
|
@@ -11,7 +11,9 @@ export const SUBSCRIPTION_ROUTES = {
|
|
|
11
11
|
CANCEL: 'cancel',
|
|
12
12
|
RECOVER: 'recover',
|
|
13
13
|
GET_AVAILABLE_UPGRADES: 'available-upgrades',
|
|
14
|
+
GET_AVAILABLE_DOWNGRADES: 'available-downgrades',
|
|
14
15
|
UPGRADE: 'upgrade',
|
|
16
|
+
DOWNGRADE: 'downgrade',
|
|
15
17
|
CREATE_CUSTOM: 'custom',
|
|
16
18
|
FREE: 'free',
|
|
17
19
|
SUMMARY: 'summary',
|
package/api/routes.ts
CHANGED
|
@@ -143,8 +143,12 @@ export const REST_API = {
|
|
|
143
143
|
CREATE: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}`,
|
|
144
144
|
UPGRADE: (uuid: string) =>
|
|
145
145
|
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.UPGRADE}`,
|
|
146
|
+
DOWNGRADE: (uuid: string) =>
|
|
147
|
+
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.DOWNGRADE}`,
|
|
146
148
|
GET_AVAILABLE_UPGRADES: (uuid: string) =>
|
|
147
149
|
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_UPGRADES}`,
|
|
150
|
+
GET_AVAILABLE_DOWNGRADES: (uuid: string) =>
|
|
151
|
+
`${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_DOWNGRADES}`,
|
|
148
152
|
CREATE_CUSTOM: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.CREATE_CUSTOM}`,
|
|
149
153
|
SUMMARY: `${ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.SUMMARY}`,
|
|
150
154
|
},
|
|
@@ -12,7 +12,9 @@ exports.SUBSCRIPTION_ROUTES = {
|
|
|
12
12
|
CANCEL: 'cancel',
|
|
13
13
|
RECOVER: 'recover',
|
|
14
14
|
GET_AVAILABLE_UPGRADES: 'available-upgrades',
|
|
15
|
+
GET_AVAILABLE_DOWNGRADES: 'available-downgrades',
|
|
15
16
|
UPGRADE: 'upgrade',
|
|
17
|
+
DOWNGRADE: 'downgrade',
|
|
16
18
|
CREATE_CUSTOM: 'custom',
|
|
17
19
|
FREE: 'free',
|
|
18
20
|
SUMMARY: 'summary',
|
package/build/api/routes.js
CHANGED
|
@@ -153,7 +153,9 @@ exports.REST_API = {
|
|
|
153
153
|
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}`,
|
|
154
154
|
CREATE: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}`,
|
|
155
155
|
UPGRADE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.UPGRADE}`,
|
|
156
|
+
DOWNGRADE: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.DOWNGRADE}`,
|
|
156
157
|
GET_AVAILABLE_UPGRADES: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_UPGRADES}`,
|
|
158
|
+
GET_AVAILABLE_DOWNGRADES: (uuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${uuid}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET_AVAILABLE_DOWNGRADES}`,
|
|
157
159
|
CREATE_CUSTOM: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.CREATE_CUSTOM}`,
|
|
158
160
|
SUMMARY: `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_PRIVATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.SUMMARY}`,
|
|
159
161
|
},
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DowngradeSubscriptionCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
var DowngradeSubscriptionCommand;
|
|
7
|
+
(function (DowngradeSubscriptionCommand) {
|
|
8
|
+
DowngradeSubscriptionCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
downgradeSubscriptionId: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
DowngradeSubscriptionCommand.RequestParamSchema = models_1.UserToSubscriptionSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
});
|
|
14
|
+
const IReceiptOrderSchema = zod_1.z.object({
|
|
15
|
+
items: zod_1.z.array(zod_1.z.object({
|
|
16
|
+
label: zod_1.z.string(),
|
|
17
|
+
price: zod_1.z.number(),
|
|
18
|
+
quantity: zod_1.z.number(),
|
|
19
|
+
amount: zod_1.z.number(),
|
|
20
|
+
vat: zod_1.z.number(),
|
|
21
|
+
})),
|
|
22
|
+
email: zod_1.z.string(),
|
|
23
|
+
isBso: zod_1.z.boolean(),
|
|
24
|
+
amounts: zod_1.z.object({
|
|
25
|
+
electronic: zod_1.z.number(),
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
DowngradeSubscriptionCommand.ResponseSchema = zod_1.z.object({
|
|
29
|
+
publicId: zod_1.z.string(),
|
|
30
|
+
amount: zod_1.z.number(),
|
|
31
|
+
currency: zod_1.z.string(),
|
|
32
|
+
accountId: zod_1.z.string(),
|
|
33
|
+
description: zod_1.z.string(),
|
|
34
|
+
invoiceId: zod_1.z.string(),
|
|
35
|
+
email: zod_1.z.string(),
|
|
36
|
+
skin: zod_1.z.string(),
|
|
37
|
+
autoClose: zod_1.z.number(),
|
|
38
|
+
data: zod_1.z.object({
|
|
39
|
+
CloudPayments: zod_1.z.object({
|
|
40
|
+
CustomerReceipt: IReceiptOrderSchema,
|
|
41
|
+
}),
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
})(DowngradeSubscriptionCommand || (exports.DowngradeSubscriptionCommand = DowngradeSubscriptionCommand = {}));
|
|
@@ -27,3 +27,4 @@ __exportStar(require("./recover-past-due-subscription.command"), exports);
|
|
|
27
27
|
__exportStar(require("./recover-subscription.command"), exports);
|
|
28
28
|
__exportStar(require("./update-subscription.command"), exports);
|
|
29
29
|
__exportStar(require("./upgrade-subscription.command"), exports);
|
|
30
|
+
__exportStar(require("./downgrade-subscription.command"), exports);
|
|
@@ -1821,4 +1821,19 @@ exports.ERRORS = {
|
|
|
1821
1821
|
message: 'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
|
|
1822
1822
|
httpCode: 400,
|
|
1823
1823
|
},
|
|
1824
|
+
SUBSCRIPTION_DOWNGRADE_INVALID: {
|
|
1825
|
+
code: 'A376',
|
|
1826
|
+
message: 'Невозможно понизить подписку до указанного уровня',
|
|
1827
|
+
httpCode: 400,
|
|
1828
|
+
},
|
|
1829
|
+
SUBSCRIPTION_DOWNGRADE_ERROR: {
|
|
1830
|
+
code: 'A377',
|
|
1831
|
+
message: 'Не удалось понизить подписку',
|
|
1832
|
+
httpCode: 500,
|
|
1833
|
+
},
|
|
1834
|
+
SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
|
|
1835
|
+
code: 'A378',
|
|
1836
|
+
message: 'Не удалось получить список возможных понижений для подписок',
|
|
1837
|
+
httpCode: 500,
|
|
1838
|
+
},
|
|
1824
1839
|
};
|
|
@@ -7,4 +7,5 @@ var SUBSCRIPTION_ACTION;
|
|
|
7
7
|
SUBSCRIPTION_ACTION["buy"] = "buy";
|
|
8
8
|
SUBSCRIPTION_ACTION["upgrade"] = "upgrade";
|
|
9
9
|
SUBSCRIPTION_ACTION["possible_upgrade"] = "possible_upgrade";
|
|
10
|
+
SUBSCRIPTION_ACTION["downgrade"] = "downgrade";
|
|
10
11
|
})(SUBSCRIPTION_ACTION || (exports.SUBSCRIPTION_ACTION = SUBSCRIPTION_ACTION = {}));
|
|
@@ -9,4 +9,7 @@ var SUBSCRIPTION_STATUS;
|
|
|
9
9
|
SUBSCRIPTION_STATUS["upgraded"] = "upgraded";
|
|
10
10
|
SUBSCRIPTION_STATUS["rejected"] = "rejected";
|
|
11
11
|
SUBSCRIPTION_STATUS["past_due"] = "past_due";
|
|
12
|
+
SUBSCRIPTION_STATUS["downgraded"] = "downgraded";
|
|
13
|
+
SUBSCRIPTION_STATUS["awaiting_activation"] = "awaiting_activation";
|
|
14
|
+
SUBSCRIPTION_STATUS["awaiting_downgrade"] = "awaiting_downgrade";
|
|
12
15
|
})(SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = SUBSCRIPTION_STATUS = {}));
|
|
@@ -11,6 +11,7 @@ exports.UserToSubscriptionSchema = zod_1.z.object({
|
|
|
11
11
|
active: zod_1.z.boolean(),
|
|
12
12
|
tokenBalance: zod_1.z.number(),
|
|
13
13
|
status: zod_1.z.string(),
|
|
14
|
+
startDate: zod_1.z.date().nullable(),
|
|
14
15
|
endDate: zod_1.z.date().nullable(),
|
|
15
16
|
marks: zod_1.z.array(zod_1.z.string()),
|
|
16
17
|
intervalEndDate: zod_1.z.date().nullable(),
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { UserToSubscriptionSchema } from '../../models';
|
|
3
|
+
|
|
4
|
+
export namespace DowngradeSubscriptionCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
downgradeSubscriptionId: z.string().uuid(),
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export const RequestParamSchema = UserToSubscriptionSchema.pick({
|
|
10
|
+
uuid: true,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
const IReceiptOrderSchema = z.object({
|
|
16
|
+
items: z.array(
|
|
17
|
+
z.object({
|
|
18
|
+
label: z.string(),
|
|
19
|
+
price: z.number(),
|
|
20
|
+
quantity: z.number(),
|
|
21
|
+
amount: z.number(),
|
|
22
|
+
vat: z.number(),
|
|
23
|
+
}),
|
|
24
|
+
),
|
|
25
|
+
email: z.string(),
|
|
26
|
+
isBso: z.boolean(),
|
|
27
|
+
amounts: z.object({
|
|
28
|
+
electronic: z.number(),
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const ResponseSchema = z.object({
|
|
33
|
+
publicId: z.string(),
|
|
34
|
+
amount: z.number(),
|
|
35
|
+
currency: z.string(),
|
|
36
|
+
accountId: z.string(),
|
|
37
|
+
description: z.string(),
|
|
38
|
+
invoiceId: z.string(),
|
|
39
|
+
email: z.string(),
|
|
40
|
+
skin: z.string(),
|
|
41
|
+
autoClose: z.number(),
|
|
42
|
+
data: z.object({
|
|
43
|
+
CloudPayments: z.object({
|
|
44
|
+
CustomerReceipt: IReceiptOrderSchema,
|
|
45
|
+
}),
|
|
46
|
+
}),
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
50
|
+
}
|
|
@@ -1832,4 +1832,19 @@ export const ERRORS = {
|
|
|
1832
1832
|
'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
|
|
1833
1833
|
httpCode: 400,
|
|
1834
1834
|
},
|
|
1835
|
+
SUBSCRIPTION_DOWNGRADE_INVALID: {
|
|
1836
|
+
code: 'A376',
|
|
1837
|
+
message: 'Невозможно понизить подписку до указанного уровня',
|
|
1838
|
+
httpCode: 400,
|
|
1839
|
+
},
|
|
1840
|
+
SUBSCRIPTION_DOWNGRADE_ERROR: {
|
|
1841
|
+
code: 'A377',
|
|
1842
|
+
message: 'Не удалось понизить подписку',
|
|
1843
|
+
httpCode: 500,
|
|
1844
|
+
},
|
|
1845
|
+
SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
|
|
1846
|
+
code: 'A378',
|
|
1847
|
+
message: 'Не удалось получить список возможных понижений для подписок',
|
|
1848
|
+
httpCode: 500,
|
|
1849
|
+
},
|
|
1835
1850
|
};
|
|
@@ -9,6 +9,7 @@ export const UserToSubscriptionSchema = z.object({
|
|
|
9
9
|
active: z.boolean(),
|
|
10
10
|
tokenBalance: z.number(),
|
|
11
11
|
status: z.string(),
|
|
12
|
+
startDate: z.date().nullable(),
|
|
12
13
|
endDate: z.date().nullable(),
|
|
13
14
|
marks: z.array(z.string()),
|
|
14
15
|
intervalEndDate: z.date().nullable(),
|