@purpleschool/gptbot 0.9.20 → 0.9.22

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.
@@ -7,7 +7,10 @@ var GetUserStatisticsByMonthCommand;
7
7
  (function (GetUserStatisticsByMonthCommand) {
8
8
  GetUserStatisticsByMonthCommand.RequestSchema = zod_1.z.object({
9
9
  origin: zod_1.z.nativeEnum(constants_1.JOB_REQUEST_ORIGIN).default(constants_1.JOB_REQUEST_ORIGIN.API).optional(),
10
- metric: zod_1.z.nativeEnum(constants_1.STATISTICS_METRIC_TYPE).default(constants_1.STATISTICS_METRIC_TYPE.REQUESTS).optional(),
10
+ metric: zod_1.z
11
+ .nativeEnum(constants_1.STATISTICS_METRIC_TYPE)
12
+ .default(constants_1.STATISTICS_METRIC_TYPE.REQUESTS)
13
+ .optional(),
11
14
  });
12
15
  GetUserStatisticsByMonthCommand.UserStatisticsByMonthResponseSchema = zod_1.z.object({
13
16
  month: zod_1.z.string(),
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BuyProductCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const models_1 = require("../../models");
6
+ const constants_1 = require("../../constants");
6
7
  var BuyProductCommand;
7
8
  (function (BuyProductCommand) {
8
9
  BuyProductCommand.RequestParamSchema = models_1.ProductSchema.pick({
@@ -11,6 +12,7 @@ var BuyProductCommand;
11
12
  BuyProductCommand.RequestSchema = zod_1.z.object({
12
13
  useDiscount: zod_1.z.boolean(),
13
14
  promocode: zod_1.z.string().optional(),
15
+ provider: zod_1.z.nativeEnum(constants_1.PAYMENT_PROVIDER).optional().default(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
14
16
  });
15
17
  const IReceiptOrderSchema = zod_1.z.object({
16
18
  items: zod_1.z.array(zod_1.z.object({
@@ -25,6 +27,7 @@ var BuyProductCommand;
25
27
  amounts: zod_1.z.object({
26
28
  electronic: zod_1.z.number(),
27
29
  }),
30
+ taxationSystem: zod_1.z.number(),
28
31
  });
29
32
  BuyProductCommand.RequestFastSchema = zod_1.z
30
33
  .object({
@@ -42,6 +45,10 @@ var BuyProductCommand;
42
45
  .transform((date) => new Date(date))
43
46
  .optional(),
44
47
  marketingConsent: zod_1.z.boolean().default(false),
48
+ provider: zod_1.z
49
+ .nativeEnum(constants_1.PAYMENT_PROVIDER)
50
+ .optional()
51
+ .default(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
45
52
  })
46
53
  .refine((data) => {
47
54
  const hasAdmitadUid = !!data.admitadUid;
@@ -59,7 +66,7 @@ var BuyProductCommand;
59
66
  message: 'admitadClickDate cannot be in the future',
60
67
  path: ['admitadClickDate'],
61
68
  });
62
- BuyProductCommand.ResponseSchema = zod_1.z.object({
69
+ const CloudPaymentsResponseSchema = zod_1.z.object({
63
70
  publicId: zod_1.z.string(),
64
71
  amount: zod_1.z.number(),
65
72
  currency: zod_1.z.string(),
@@ -74,7 +81,23 @@ var BuyProductCommand;
74
81
  CustomerReceipt: IReceiptOrderSchema,
75
82
  }),
76
83
  }),
84
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
77
85
  });
86
+ const ZenpaymentsResponseSchema = zod_1.z.object({
87
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.ZENPAYMENTS),
88
+ checkoutUrl: zod_1.z.string(),
89
+ orderNumber: zod_1.z.string(),
90
+ orderIdClient: zod_1.z.string().nullable(),
91
+ paymentAmount: zod_1.z.number(),
92
+ currencyCode: zod_1.z.string(),
93
+ customerEmail: zod_1.z.string(),
94
+ isSubscription: zod_1.z.boolean(),
95
+ createdAt: zod_1.z.string(),
96
+ });
97
+ BuyProductCommand.ResponseSchema = zod_1.z.discriminatedUnion('provider', [
98
+ CloudPaymentsResponseSchema,
99
+ ZenpaymentsResponseSchema,
100
+ ]);
78
101
  BuyProductCommand.ResponseFastSchema = zod_1.z.object({
79
102
  data: BuyProductCommand.ResponseSchema,
80
103
  restoreToken: zod_1.z.string(),
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BuySubscriptionCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const models_1 = require("../../models");
6
+ const constants_1 = require("../../constants");
6
7
  var BuySubscriptionCommand;
7
8
  (function (BuySubscriptionCommand) {
8
9
  BuySubscriptionCommand.RequestParamSchema = models_1.SubscriptionSchema.pick({
@@ -11,6 +12,7 @@ var BuySubscriptionCommand;
11
12
  BuySubscriptionCommand.RequestSchema = zod_1.z.object({
12
13
  useDiscount: zod_1.z.boolean(),
13
14
  promocode: zod_1.z.string().optional(),
15
+ provider: zod_1.z.nativeEnum(constants_1.PAYMENT_PROVIDER).optional().default(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
14
16
  });
15
17
  BuySubscriptionCommand.RequestFastSchema = zod_1.z
16
18
  .object({
@@ -28,6 +30,10 @@ var BuySubscriptionCommand;
28
30
  .transform((date) => new Date(date))
29
31
  .optional(),
30
32
  marketingConsent: zod_1.z.boolean().default(false),
33
+ provider: zod_1.z
34
+ .nativeEnum(constants_1.PAYMENT_PROVIDER)
35
+ .optional()
36
+ .default(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
31
37
  })
32
38
  .refine((data) => {
33
39
  const hasAdmitadUid = !!data.admitadUid;
@@ -59,7 +65,7 @@ var BuySubscriptionCommand;
59
65
  electronic: zod_1.z.number(),
60
66
  }),
61
67
  });
62
- BuySubscriptionCommand.ResponseSchema = zod_1.z.object({
68
+ const CloudPaymentsResponseSchema = zod_1.z.object({
63
69
  publicId: zod_1.z.string(),
64
70
  amount: zod_1.z.number(),
65
71
  currency: zod_1.z.string(),
@@ -80,7 +86,23 @@ var BuySubscriptionCommand;
80
86
  }),
81
87
  }),
82
88
  }),
89
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
83
90
  });
91
+ const ZenpaymentsResponseSchema = zod_1.z.object({
92
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.ZENPAYMENTS),
93
+ checkoutUrl: zod_1.z.string(),
94
+ orderNumber: zod_1.z.string(),
95
+ orderIdClient: zod_1.z.string().nullable(),
96
+ paymentAmount: zod_1.z.number(),
97
+ currencyCode: zod_1.z.string(),
98
+ customerEmail: zod_1.z.string(),
99
+ isSubscription: zod_1.z.boolean(),
100
+ createdAt: zod_1.z.string(),
101
+ });
102
+ BuySubscriptionCommand.ResponseSchema = zod_1.z.discriminatedUnion('provider', [
103
+ CloudPaymentsResponseSchema,
104
+ ZenpaymentsResponseSchema,
105
+ ]);
84
106
  BuySubscriptionCommand.ResponseFastSchema = zod_1.z.object({
85
107
  data: BuySubscriptionCommand.ResponseSchema,
86
108
  restoreToken: zod_1.z.string(),
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpgradeSubscriptionCommand = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const models_1 = require("../../models");
6
+ const constants_1 = require("../../constants");
6
7
  var UpgradeSubscriptionCommand;
7
8
  (function (UpgradeSubscriptionCommand) {
8
9
  UpgradeSubscriptionCommand.RequestSchema = zod_1.z.object({
9
10
  upgradeSubscriptionId: zod_1.z.string().uuid(),
10
11
  promocode: zod_1.z.string().optional(),
12
+ provider: zod_1.z.nativeEnum(constants_1.PAYMENT_PROVIDER).optional().default(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
11
13
  });
12
14
  UpgradeSubscriptionCommand.RequestParamSchema = models_1.UserToSubscriptionSchema.pick({
13
15
  uuid: true,
@@ -26,7 +28,7 @@ var UpgradeSubscriptionCommand;
26
28
  electronic: zod_1.z.number(),
27
29
  }),
28
30
  });
29
- UpgradeSubscriptionCommand.ResponseSchema = zod_1.z.object({
31
+ const CloudPaymentsResponseSchema = zod_1.z.object({
30
32
  publicId: zod_1.z.string(),
31
33
  amount: zod_1.z.number(),
32
34
  currency: zod_1.z.string(),
@@ -39,7 +41,29 @@ var UpgradeSubscriptionCommand;
39
41
  data: zod_1.z.object({
40
42
  CloudPayments: zod_1.z.object({
41
43
  CustomerReceipt: IReceiptOrderSchema,
44
+ recurrent: zod_1.z.object({
45
+ period: zod_1.z.number(),
46
+ interval: zod_1.z.string(),
47
+ amount: zod_1.z.number(),
48
+ customerReceipt: IReceiptOrderSchema,
49
+ }),
42
50
  }),
43
51
  }),
52
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.CLOUDPAYMENTS),
44
53
  });
54
+ const ZenpaymentsResponseSchema = zod_1.z.object({
55
+ provider: zod_1.z.literal(constants_1.PAYMENT_PROVIDER.ZENPAYMENTS),
56
+ checkoutUrl: zod_1.z.string(),
57
+ orderNumber: zod_1.z.string(),
58
+ orderIdClient: zod_1.z.string().nullable(),
59
+ paymentAmount: zod_1.z.number(),
60
+ currencyCode: zod_1.z.string(),
61
+ customerEmail: zod_1.z.string(),
62
+ isSubscription: zod_1.z.boolean(),
63
+ createdAt: zod_1.z.string(),
64
+ });
65
+ UpgradeSubscriptionCommand.ResponseSchema = zod_1.z.discriminatedUnion('provider', [
66
+ CloudPaymentsResponseSchema,
67
+ ZenpaymentsResponseSchema,
68
+ ]);
45
69
  })(UpgradeSubscriptionCommand || (exports.UpgradeSubscriptionCommand = UpgradeSubscriptionCommand = {}));
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./payment-history-item-type.enum"), exports);
18
18
  __exportStar(require("./payment-status.enum"), exports);
19
19
  __exportStar(require("./payment-sort-by.enum"), exports);
20
+ __exportStar(require("./payment-provider.enum"), exports);
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PAYMENT_PROVIDER = void 0;
4
+ var PAYMENT_PROVIDER;
5
+ (function (PAYMENT_PROVIDER) {
6
+ PAYMENT_PROVIDER["CLOUDPAYMENTS"] = "cloudpayments";
7
+ PAYMENT_PROVIDER["ZENPAYMENTS"] = "zenpayments";
8
+ })(PAYMENT_PROVIDER || (exports.PAYMENT_PROVIDER = PAYMENT_PROVIDER = {}));
@@ -16,5 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./tool-content-type.enum"), exports);
18
18
  __exportStar(require("./tool-job-status.enum"), exports);
19
- __exportStar(require("./tool-type.enum"), exports);
20
19
  __exportStar(require("./job-request-origin.enum"), exports);
@@ -2,10 +2,12 @@ import { z } from 'zod';
2
2
  import { JOB_REQUEST_ORIGIN, STATISTICS_METRIC_TYPE } from '../../constants';
3
3
 
4
4
  export namespace GetUserStatisticsByMonthCommand {
5
-
6
5
  export const RequestSchema = z.object({
7
6
  origin: z.nativeEnum(JOB_REQUEST_ORIGIN).default(JOB_REQUEST_ORIGIN.API).optional(),
8
- metric: z.nativeEnum(STATISTICS_METRIC_TYPE).default(STATISTICS_METRIC_TYPE.REQUESTS).optional(),
7
+ metric: z
8
+ .nativeEnum(STATISTICS_METRIC_TYPE)
9
+ .default(STATISTICS_METRIC_TYPE.REQUESTS)
10
+ .optional(),
9
11
  });
10
12
 
11
13
  export type Request = z.infer<typeof RequestSchema>;
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { ProductSchema } from '../../models';
3
+ import { PAYMENT_PROVIDER } from '../../constants';
3
4
 
4
5
  export namespace BuyProductCommand {
5
6
  export const RequestParamSchema = ProductSchema.pick({
@@ -9,6 +10,7 @@ export namespace BuyProductCommand {
9
10
  export const RequestSchema = z.object({
10
11
  useDiscount: z.boolean(),
11
12
  promocode: z.string().optional(),
13
+ provider: z.nativeEnum(PAYMENT_PROVIDER).optional().default(PAYMENT_PROVIDER.CLOUDPAYMENTS),
12
14
  });
13
15
 
14
16
  export type RequestParam = z.infer<typeof RequestParamSchema>;
@@ -30,6 +32,7 @@ export namespace BuyProductCommand {
30
32
  amounts: z.object({
31
33
  electronic: z.number(),
32
34
  }),
35
+ taxationSystem: z.number(),
33
36
  });
34
37
 
35
38
  export const RequestFastSchema = z
@@ -48,6 +51,10 @@ export namespace BuyProductCommand {
48
51
  .transform((date) => new Date(date))
49
52
  .optional(),
50
53
  marketingConsent: z.boolean().default(false),
54
+ provider: z
55
+ .nativeEnum(PAYMENT_PROVIDER)
56
+ .optional()
57
+ .default(PAYMENT_PROVIDER.CLOUDPAYMENTS),
51
58
  })
52
59
  .refine(
53
60
  (data) => {
@@ -72,7 +79,7 @@ export namespace BuyProductCommand {
72
79
  );
73
80
 
74
81
  export type RequestFast = z.infer<typeof RequestFastSchema>;
75
- export const ResponseSchema = z.object({
82
+ const CloudPaymentsResponseSchema = z.object({
76
83
  publicId: z.string(),
77
84
  amount: z.number(),
78
85
  currency: z.string(),
@@ -87,8 +94,26 @@ export namespace BuyProductCommand {
87
94
  CustomerReceipt: IReceiptOrderSchema,
88
95
  }),
89
96
  }),
97
+ provider: z.literal(PAYMENT_PROVIDER.CLOUDPAYMENTS),
90
98
  });
91
99
 
100
+ const ZenpaymentsResponseSchema = z.object({
101
+ provider: z.literal(PAYMENT_PROVIDER.ZENPAYMENTS),
102
+ checkoutUrl: z.string(),
103
+ orderNumber: z.string(),
104
+ orderIdClient: z.string().nullable(),
105
+ paymentAmount: z.number(),
106
+ currencyCode: z.string(),
107
+ customerEmail: z.string(),
108
+ isSubscription: z.boolean(),
109
+ createdAt: z.string(),
110
+ });
111
+
112
+ export const ResponseSchema = z.discriminatedUnion('provider', [
113
+ CloudPaymentsResponseSchema,
114
+ ZenpaymentsResponseSchema,
115
+ ]);
116
+
92
117
  export type Response = z.infer<typeof ResponseSchema>;
93
118
 
94
119
  export const ResponseFastSchema = z.object({
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { SubscriptionSchema } from '../../models';
3
+ import { PAYMENT_PROVIDER } from '../../constants';
3
4
 
4
5
  export namespace BuySubscriptionCommand {
5
6
  export const RequestParamSchema = SubscriptionSchema.pick({
@@ -9,6 +10,7 @@ export namespace BuySubscriptionCommand {
9
10
  export const RequestSchema = z.object({
10
11
  useDiscount: z.boolean(),
11
12
  promocode: z.string().optional(),
13
+ provider: z.nativeEnum(PAYMENT_PROVIDER).optional().default(PAYMENT_PROVIDER.CLOUDPAYMENTS),
12
14
  });
13
15
 
14
16
  export type Request = z.infer<typeof RequestSchema>;
@@ -28,6 +30,10 @@ export namespace BuySubscriptionCommand {
28
30
  .transform((date) => new Date(date))
29
31
  .optional(),
30
32
  marketingConsent: z.boolean().default(false),
33
+ provider: z
34
+ .nativeEnum(PAYMENT_PROVIDER)
35
+ .optional()
36
+ .default(PAYMENT_PROVIDER.CLOUDPAYMENTS),
31
37
  })
32
38
  .refine(
33
39
  (data) => {
@@ -72,7 +78,7 @@ export namespace BuySubscriptionCommand {
72
78
  }),
73
79
  });
74
80
 
75
- export const ResponseSchema = z.object({
81
+ const CloudPaymentsResponseSchema = z.object({
76
82
  publicId: z.string(),
77
83
  amount: z.number(),
78
84
  currency: z.string(),
@@ -93,8 +99,26 @@ export namespace BuySubscriptionCommand {
93
99
  }),
94
100
  }),
95
101
  }),
102
+ provider: z.literal(PAYMENT_PROVIDER.CLOUDPAYMENTS),
96
103
  });
97
104
 
105
+ const ZenpaymentsResponseSchema = z.object({
106
+ provider: z.literal(PAYMENT_PROVIDER.ZENPAYMENTS),
107
+ checkoutUrl: z.string(),
108
+ orderNumber: z.string(),
109
+ orderIdClient: z.string().nullable(),
110
+ paymentAmount: z.number(),
111
+ currencyCode: z.string(),
112
+ customerEmail: z.string(),
113
+ isSubscription: z.boolean(),
114
+ createdAt: z.string(),
115
+ });
116
+
117
+ export const ResponseSchema = z.discriminatedUnion('provider', [
118
+ CloudPaymentsResponseSchema,
119
+ ZenpaymentsResponseSchema,
120
+ ]);
121
+
98
122
  export type Response = z.infer<typeof ResponseSchema>;
99
123
  export const ResponseFastSchema = z.object({
100
124
  data: ResponseSchema,
@@ -1,10 +1,12 @@
1
1
  import { z } from 'zod';
2
2
  import { UserToSubscriptionSchema } from '../../models';
3
+ import { PAYMENT_PROVIDER } from '../../constants';
3
4
 
4
5
  export namespace UpgradeSubscriptionCommand {
5
6
  export const RequestSchema = z.object({
6
7
  upgradeSubscriptionId: z.string().uuid(),
7
8
  promocode: z.string().optional(),
9
+ provider: z.nativeEnum(PAYMENT_PROVIDER).optional().default(PAYMENT_PROVIDER.CLOUDPAYMENTS),
8
10
  });
9
11
 
10
12
  export const RequestParamSchema = UserToSubscriptionSchema.pick({
@@ -30,7 +32,7 @@ export namespace UpgradeSubscriptionCommand {
30
32
  }),
31
33
  });
32
34
 
33
- export const ResponseSchema = z.object({
35
+ const CloudPaymentsResponseSchema = z.object({
34
36
  publicId: z.string(),
35
37
  amount: z.number(),
36
38
  currency: z.string(),
@@ -43,9 +45,33 @@ export namespace UpgradeSubscriptionCommand {
43
45
  data: z.object({
44
46
  CloudPayments: z.object({
45
47
  CustomerReceipt: IReceiptOrderSchema,
48
+ recurrent: z.object({
49
+ period: z.number(),
50
+ interval: z.string(),
51
+ amount: z.number(),
52
+ customerReceipt: IReceiptOrderSchema,
53
+ }),
46
54
  }),
47
55
  }),
56
+ provider: z.literal(PAYMENT_PROVIDER.CLOUDPAYMENTS),
48
57
  });
49
58
 
59
+ const ZenpaymentsResponseSchema = z.object({
60
+ provider: z.literal(PAYMENT_PROVIDER.ZENPAYMENTS),
61
+ checkoutUrl: z.string(),
62
+ orderNumber: z.string(),
63
+ orderIdClient: z.string().nullable(),
64
+ paymentAmount: z.number(),
65
+ currencyCode: z.string(),
66
+ customerEmail: z.string(),
67
+ isSubscription: z.boolean(),
68
+ createdAt: z.string(),
69
+ });
70
+
71
+ export const ResponseSchema = z.discriminatedUnion('provider', [
72
+ CloudPaymentsResponseSchema,
73
+ ZenpaymentsResponseSchema,
74
+ ]);
75
+
50
76
  export type Response = z.infer<typeof ResponseSchema>;
51
77
  }
@@ -1,2 +1,2 @@
1
1
  export * from './group-by.enum';
2
- export * from './statistics-metric-type.enum';
2
+ export * from './statistics-metric-type.enum';
@@ -1,4 +1,4 @@
1
1
  export enum STATISTICS_METRIC_TYPE {
2
- REQUESTS = 'requests',
3
- TOKENS = 'tokens',
4
- }
2
+ REQUESTS = 'requests',
3
+ TOKENS = 'tokens',
4
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './payment-history-item-type.enum';
2
2
  export * from './payment-status.enum';
3
3
  export * from './payment-sort-by.enum';
4
+ export * from './payment-provider.enum';
@@ -0,0 +1,4 @@
1
+ export enum PAYMENT_PROVIDER {
2
+ CLOUDPAYMENTS = 'cloudpayments',
3
+ ZENPAYMENTS = 'zenpayments',
4
+ }
@@ -1,4 +1,3 @@
1
1
  export * from './tool-content-type.enum';
2
2
  export * from './tool-job-status.enum';
3
- export * from './tool-type.enum';
4
3
  export * from './job-request-origin.enum';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.9.20",
3
+ "version": "0.9.22",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOOL_TYPE = void 0;
4
- var TOOL_TYPE;
5
- (function (TOOL_TYPE) {
6
- TOOL_TYPE["PARAPHRASE"] = "paraphrase";
7
- TOOL_TYPE["TTS"] = "tts";
8
- TOOL_TYPE["STT"] = "stt";
9
- TOOL_TYPE["IMAGE_GENERATION"] = "image_generation";
10
- TOOL_TYPE["IMAGE_EDITOR"] = "image_editor";
11
- TOOL_TYPE["MUSIC"] = "music";
12
- TOOL_TYPE["INTERIOR_DESIGN"] = "interior_design";
13
- })(TOOL_TYPE || (exports.TOOL_TYPE = TOOL_TYPE = {}));
@@ -1,9 +0,0 @@
1
- export enum TOOL_TYPE {
2
- PARAPHRASE = 'paraphrase',
3
- TTS = 'tts',
4
- STT = 'stt',
5
- IMAGE_GENERATION = 'image_generation',
6
- IMAGE_EDITOR = 'image_editor',
7
- MUSIC = 'music',
8
- INTERIOR_DESIGN = 'interior_design',
9
- }