@winible/winible-typed 2.0.0 → 2.1.0
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/dist/migrations/20230412190423-migrate_purchased_contents.js +10 -0
- package/dist/migrations/20230412190423-migrate_purchased_contents.js.map +1 -0
- package/dist/migrations/20230412202031-migrate_other_fields.js +27 -0
- package/dist/migrations/20230412202031-migrate_other_fields.js.map +1 -0
- package/dist/migrations/20230412213952-deprecate_phone_users_and_phone_owners.js +27 -0
- package/dist/migrations/20230412213952-deprecate_phone_users_and_phone_owners.js.map +1 -0
- package/dist/scripts/deleteMalformedImages.js +2 -2
- package/dist/scripts/deleteMalformedImages.js.map +1 -1
- package/dist/typed-model/content-like.js +27 -15
- package/dist/typed-model/content-like.js.map +1 -1
- package/dist/typed-model/credit-payment.js +35 -371
- package/dist/typed-model/credit-payment.js.map +1 -1
- package/dist/typed-model/index.js +13 -15
- package/dist/typed-model/index.js.map +1 -1
- package/dist/typed-model/league-user.js +3 -3
- package/dist/typed-model/league-user.js.map +1 -1
- package/dist/typed-model/media.js +2 -6
- package/dist/typed-model/media.js.map +1 -1
- package/dist/typed-model/pb-sequelize.js +3 -1
- package/dist/typed-model/pb-sequelize.js.map +1 -1
- package/dist/typed-model/phone-owner.js +3 -3
- package/dist/typed-model/phone-owner.js.map +1 -1
- package/dist/typed-model/post.js +126 -0
- package/dist/typed-model/post.js.map +1 -0
- package/dist/typed-model/posts-on-users.js +92 -0
- package/dist/typed-model/posts-on-users.js.map +1 -0
- package/dist/typed-model/premium-content.js +9 -4
- package/dist/typed-model/premium-content.js.map +1 -1
- package/dist/typed-model/purchased-content.js +13 -13
- package/dist/typed-model/purchased-content.js.map +1 -1
- package/dist/typed-model/recurly-account.js.map +1 -1
- package/dist/typed-model/subscription-plan-on-post.js +55 -0
- package/dist/typed-model/subscription-plan-on-post.js.map +1 -0
- package/dist/typed-model/subscription-plan-on-users.js +111 -0
- package/dist/typed-model/subscription-plan-on-users.js.map +1 -0
- package/dist/typed-model/subscription-plan.js +22 -32
- package/dist/typed-model/subscription-plan.js.map +1 -1
- package/dist/typed-model/subscription.js +32 -40
- package/dist/typed-model/subscription.js.map +1 -1
- package/dist/typed-model/transaction.js +108 -0
- package/dist/typed-model/transaction.js.map +1 -0
- package/dist/typed-model/withdrawal.js +33 -0
- package/dist/typed-model/withdrawal.js.map +1 -0
- package/dist/webhooks/index.js.map +1 -1
- package/dist/webhooks/payment/refund.js +11 -11
- package/dist/webhooks/payment/refund.js.map +1 -1
- package/package.json +1 -1
- package/typed-model/content-like.ts +33 -17
- package/typed-model/index.ts +6 -7
- package/typed-model/league-user.ts +5 -3
- package/typed-model/media.ts +3 -9
- package/typed-model/pb-sequelize.ts +5 -1
- package/typed-model/{premium-content.ts → post.ts} +44 -42
- package/typed-model/{purchased-content.ts → posts-on-users.ts} +46 -25
- package/typed-model/recurly-account.ts +0 -1
- package/typed-model/subscription-plan-on-post.ts +77 -0
- package/typed-model/{subscription.ts → subscription-plan-on-users.ts} +43 -59
- package/typed-model/subscription-plan.ts +29 -46
- package/typed-model/transaction.ts +154 -0
- package/typed-model/user.ts +2 -2
- package/typed-model/{credit-payout.ts → withdrawal.ts} +9 -21
- package/typed-model/credit-payment.ts +0 -681
- package/typed-model/phone-owner.ts +0 -341
- package/typed-model/phone-user.ts +0 -146
@@ -0,0 +1,55 @@
|
|
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
|
+
const sequelize_1 = require("sequelize");
|
7
|
+
const _1 = require(".");
|
8
|
+
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
9
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
+
class SubscriptionPlanOnPost extends sequelize_1.Model {
|
11
|
+
}
|
12
|
+
SubscriptionPlanOnPost.init({
|
13
|
+
id: {
|
14
|
+
type: sequelize_1.DataTypes.BIGINT,
|
15
|
+
primaryKey: true,
|
16
|
+
allowNull: false,
|
17
|
+
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
18
|
+
},
|
19
|
+
postId: {
|
20
|
+
type: sequelize_1.DataTypes.BIGINT,
|
21
|
+
field: "post_id",
|
22
|
+
},
|
23
|
+
subscriptionPlanId: {
|
24
|
+
type: sequelize_1.DataTypes.BIGINT,
|
25
|
+
field: "subscription_plan_id",
|
26
|
+
},
|
27
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
28
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
29
|
+
}, {
|
30
|
+
sequelize: pb_sequelize_1.default,
|
31
|
+
tableName: "subscription_plan_on_post",
|
32
|
+
});
|
33
|
+
_1.Post.hasMany(SubscriptionPlanOnPost, {
|
34
|
+
foreignKey: "postId",
|
35
|
+
sourceKey: "id",
|
36
|
+
});
|
37
|
+
SubscriptionPlanOnPost.hasOne(_1.Post, {
|
38
|
+
foreignKey: "id",
|
39
|
+
sourceKey: "postId",
|
40
|
+
onDelete: "NO ACTION",
|
41
|
+
constraints: false,
|
42
|
+
});
|
43
|
+
_1.SubscriptionPlan.hasMany(SubscriptionPlanOnPost, {
|
44
|
+
foreignKey: "subscriptionPlanId",
|
45
|
+
onDelete: "NO ACTION",
|
46
|
+
constraints: false,
|
47
|
+
});
|
48
|
+
SubscriptionPlanOnPost.hasOne(_1.SubscriptionPlan, {
|
49
|
+
foreignKey: "id",
|
50
|
+
sourceKey: "subscriptionPlanId",
|
51
|
+
onDelete: "NO ACTION",
|
52
|
+
constraints: false,
|
53
|
+
});
|
54
|
+
exports.default = SubscriptionPlanOnPost;
|
55
|
+
//# sourceMappingURL=subscription-plan-on-post.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"subscription-plan-on-post.js","sourceRoot":"","sources":["../../typed-model/subscription-plan-on-post.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AACnB,wBAA2C;AAE3C,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,sBAAuB,SAAQ,iBAGpC;CASA;AAED,sBAAsB,CAAC,IAAI,CACzB;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,sBAAS,CAAC,EAAE,CAAC,SAAS,CAAC;KACtC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,SAAS;KACjB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,sBAAsB;KAC9B;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAT,sBAAS;IACT,SAAS,EAAE,2BAA2B;CACvC,CACF,CAAC;AAEF,OAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;IACnC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,sBAAsB,CAAC,MAAM,CAAC,OAAI,EAAE;IAClC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,mBAAgB,CAAC,OAAO,CAAC,sBAAsB,EAAE;IAC/C,UAAU,EAAE,oBAAoB;IAChC,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,sBAAsB,CAAC,MAAM,CAAC,mBAAgB,EAAE;IAC9C,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,sBAAsB,CAAC"}
|
@@ -0,0 +1,111 @@
|
|
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
|
+
const sequelize_1 = require("sequelize");
|
7
|
+
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
+
const subscription_plan_1 = __importDefault(require("./subscription-plan"));
|
9
|
+
const user_1 = __importDefault(require("./user"));
|
10
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
11
|
+
class SubscriptionPlanOnUsers extends sequelize_1.Model {
|
12
|
+
}
|
13
|
+
SubscriptionPlanOnUsers.init({
|
14
|
+
id: {
|
15
|
+
type: sequelize_1.DataTypes.BIGINT,
|
16
|
+
primaryKey: true,
|
17
|
+
allowNull: false,
|
18
|
+
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
19
|
+
},
|
20
|
+
userId: {
|
21
|
+
type: sequelize_1.DataTypes.BIGINT,
|
22
|
+
allowNull: false,
|
23
|
+
field: "user_id",
|
24
|
+
},
|
25
|
+
subscriptionPlanId: {
|
26
|
+
type: sequelize_1.DataTypes.BIGINT,
|
27
|
+
allowNull: false,
|
28
|
+
field: "subscription_plan_id",
|
29
|
+
},
|
30
|
+
lastPaymentDate: {
|
31
|
+
type: sequelize_1.DataTypes.DATE,
|
32
|
+
field: "last_payment_date",
|
33
|
+
},
|
34
|
+
cancelDate: {
|
35
|
+
type: sequelize_1.DataTypes.DATE,
|
36
|
+
field: "cancel_date",
|
37
|
+
},
|
38
|
+
numberOfPayments: {
|
39
|
+
type: sequelize_1.DataTypes.INTEGER,
|
40
|
+
defaultValue: 0,
|
41
|
+
field: "number_of_payments",
|
42
|
+
},
|
43
|
+
stale: {
|
44
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
45
|
+
field: "stale",
|
46
|
+
defaultValue: false,
|
47
|
+
},
|
48
|
+
recurlySubscriptionId: {
|
49
|
+
type: sequelize_1.DataTypes.STRING,
|
50
|
+
field: "recurly_subscription_id",
|
51
|
+
defaultValue: false,
|
52
|
+
},
|
53
|
+
status: {
|
54
|
+
type: sequelize_1.DataTypes.STRING,
|
55
|
+
field: "status",
|
56
|
+
defaultValue: "active",
|
57
|
+
},
|
58
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
59
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
60
|
+
}, {
|
61
|
+
tableName: "subscription_plan_on_users",
|
62
|
+
sequelize: pb_sequelize_1.default,
|
63
|
+
});
|
64
|
+
/*
|
65
|
+
====================================================================
|
66
|
+
Class functions
|
67
|
+
====================================================================
|
68
|
+
*/
|
69
|
+
SubscriptionPlanOnUsers.getById = async (id) => {
|
70
|
+
return await SubscriptionPlanOnUsers.findOne({
|
71
|
+
where: {
|
72
|
+
id,
|
73
|
+
},
|
74
|
+
});
|
75
|
+
};
|
76
|
+
SubscriptionPlanOnUsers.getByUserId = async (userId) => {
|
77
|
+
return await SubscriptionPlanOnUsers.findOne({
|
78
|
+
where: {
|
79
|
+
userId,
|
80
|
+
},
|
81
|
+
});
|
82
|
+
};
|
83
|
+
SubscriptionPlanOnUsers.getBySubscriptionPlanId = async (subscriptionPlanId) => {
|
84
|
+
return await SubscriptionPlanOnUsers.findOne({
|
85
|
+
where: {
|
86
|
+
subscriptionPlanId,
|
87
|
+
},
|
88
|
+
});
|
89
|
+
};
|
90
|
+
user_1.default.hasMany(SubscriptionPlanOnUsers, {
|
91
|
+
foreignKey: "userId",
|
92
|
+
sourceKey: "id",
|
93
|
+
onDelete: "NO ACTION",
|
94
|
+
constraints: false,
|
95
|
+
});
|
96
|
+
SubscriptionPlanOnUsers.hasOne(user_1.default, {
|
97
|
+
foreignKey: "id",
|
98
|
+
sourceKey: "userId",
|
99
|
+
});
|
100
|
+
subscription_plan_1.default.hasMany(SubscriptionPlanOnUsers, {
|
101
|
+
foreignKey: "subscriptionPlanId",
|
102
|
+
sourceKey: "id",
|
103
|
+
onDelete: "NO ACTION",
|
104
|
+
constraints: false,
|
105
|
+
});
|
106
|
+
SubscriptionPlanOnUsers.hasOne(subscription_plan_1.default, {
|
107
|
+
foreignKey: "id",
|
108
|
+
sourceKey: "subscriptionPlanId",
|
109
|
+
});
|
110
|
+
exports.default = SubscriptionPlanOnUsers;
|
111
|
+
//# sourceMappingURL=subscription-plan-on-users.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"subscription-plan-on-users.js","sourceRoot":"","sources":["../../typed-model/subscription-plan-on-users.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,4EAAmD;AACnD,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,uBAAwB,SAAQ,iBAGrC;CA4BA;AAED,uBAAuB,CAAC,IAAI,CAC1B;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,sBAAS,CAAC,EAAE,CAAC,SAAS,CAAC;KACtC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACjB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;KAC9B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,mBAAmB;KAC3B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,aAAa;KACrB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,oBAAoB;KAC5B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,KAAK;KACpB;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,yBAAyB;QAChC,YAAY,EAAE,KAAK;KACpB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,QAAQ;KACvB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF;;;;EAIE;AAEF,uBAAuB,CAAC,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IACrD,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uBAAuB,CAAC,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IAC7D,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,MAAM;SACP;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uBAAuB,CAAC,uBAAuB,GAAG,KAAK,EACrD,kBAA0B,EAC1B,EAAE;IACF,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,kBAAkB;SACnB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;IACpC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,uBAAuB,CAAC,MAAM,CAAC,cAAI,EAAE;IACnC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,2BAAgB,CAAC,OAAO,CAAC,uBAAuB,EAAE;IAChD,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,uBAAuB,CAAC,MAAM,CAAC,2BAAgB,EAAE;IAC/C,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,oBAAoB;CAChC,CAAC,CAAC;AAEH,kBAAe,uBAAuB,CAAC"}
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const sequelize_1 = require("sequelize");
|
7
7
|
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
-
const
|
9
|
-
const
|
8
|
+
const user_1 = __importDefault(require("./user"));
|
9
|
+
const subscription_plan_on_users_1 = __importDefault(require("./subscription-plan-on-users"));
|
10
10
|
// order of InferAttributes & InferCreationAttributes is important.
|
11
11
|
class SubscriptionPlan extends sequelize_1.Model {
|
12
12
|
}
|
@@ -17,10 +17,10 @@ SubscriptionPlan.init({
|
|
17
17
|
allowNull: false,
|
18
18
|
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
19
19
|
},
|
20
|
-
|
20
|
+
userId: {
|
21
21
|
type: sequelize_1.DataTypes.BIGINT,
|
22
22
|
allowNull: false,
|
23
|
-
field: "
|
23
|
+
field: "user_id",
|
24
24
|
},
|
25
25
|
planName: {
|
26
26
|
type: sequelize_1.DataTypes.STRING,
|
@@ -40,22 +40,14 @@ SubscriptionPlan.init({
|
|
40
40
|
field: "interval_unit",
|
41
41
|
defaultValue: "months",
|
42
42
|
},
|
43
|
-
paypalPlanId: {
|
44
|
-
type: sequelize_1.DataTypes.STRING,
|
45
|
-
field: "paypal_plan_id",
|
46
|
-
},
|
47
|
-
paypalProductId: {
|
48
|
-
type: sequelize_1.DataTypes.STRING,
|
49
|
-
field: "paypal_product_id",
|
50
|
-
},
|
51
43
|
isArchived: {
|
52
44
|
type: sequelize_1.DataTypes.BOOLEAN,
|
53
45
|
field: "is_archived",
|
54
46
|
defaultValue: false,
|
55
47
|
},
|
56
|
-
|
57
|
-
type: sequelize_1.DataTypes.
|
58
|
-
field: "
|
48
|
+
planDescription: {
|
49
|
+
type: sequelize_1.DataTypes.STRING,
|
50
|
+
field: "plan_description",
|
59
51
|
},
|
60
52
|
oneTimePurchase: {
|
61
53
|
type: sequelize_1.DataTypes.BOOLEAN,
|
@@ -93,34 +85,32 @@ SubscriptionPlan.getById = async (id) => {
|
|
93
85
|
},
|
94
86
|
});
|
95
87
|
};
|
96
|
-
SubscriptionPlan.
|
97
|
-
return await SubscriptionPlan.findOne({
|
98
|
-
where: {
|
99
|
-
ownerId,
|
100
|
-
},
|
101
|
-
});
|
102
|
-
};
|
103
|
-
SubscriptionPlan.getByPaypalPlanId = async (paypalPlanId) => {
|
88
|
+
SubscriptionPlan.getByUserId = async (userId) => {
|
104
89
|
return await SubscriptionPlan.findOne({
|
105
90
|
where: {
|
106
|
-
|
91
|
+
userId,
|
107
92
|
},
|
108
93
|
});
|
109
94
|
};
|
110
|
-
SubscriptionPlan.hasMany(
|
111
|
-
|
112
|
-
|
113
|
-
|
95
|
+
SubscriptionPlan.hasMany(subscription_plan_on_users_1.default, {
|
96
|
+
foreignKey: "subscriptionPlanId",
|
97
|
+
sourceKey: "id",
|
98
|
+
onDelete: "NO ACTION",
|
99
|
+
constraints: false,
|
114
100
|
});
|
115
|
-
|
101
|
+
subscription_plan_on_users_1.default.hasOne(SubscriptionPlan, {
|
116
102
|
foreignKey: "id",
|
117
|
-
sourceKey: "
|
103
|
+
sourceKey: "subscriptionPlanId",
|
118
104
|
});
|
119
|
-
|
120
|
-
foreignKey: "
|
105
|
+
user_1.default.hasMany(SubscriptionPlan, {
|
106
|
+
foreignKey: "userId",
|
121
107
|
sourceKey: "id",
|
122
108
|
onDelete: "NO ACTION",
|
123
109
|
constraints: false,
|
124
110
|
});
|
111
|
+
SubscriptionPlan.hasOne(user_1.default, {
|
112
|
+
foreignKey: "id",
|
113
|
+
sourceKey: "userId",
|
114
|
+
});
|
125
115
|
exports.default = SubscriptionPlan;
|
126
116
|
//# sourceMappingURL=subscription-plan.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,
|
1
|
+
{"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":"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"}
|
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const sequelize_1 = require("sequelize");
|
7
7
|
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
-
const
|
8
|
+
const subscription_plan_1 = __importDefault(require("./subscription-plan"));
|
9
|
+
const user_1 = __importDefault(require("./user"));
|
9
10
|
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
-
class
|
11
|
+
class SubscriptionPlansOnUsers extends sequelize_1.Model {
|
11
12
|
}
|
12
|
-
|
13
|
+
SubscriptionPlansOnUsers.init({
|
13
14
|
id: {
|
14
15
|
type: sequelize_1.DataTypes.BIGINT,
|
15
16
|
primaryKey: true,
|
@@ -26,18 +27,6 @@ Subscription.init({
|
|
26
27
|
allowNull: false,
|
27
28
|
field: "subscription_plan_id",
|
28
29
|
},
|
29
|
-
paypalSubscriptionId: {
|
30
|
-
type: sequelize_1.DataTypes.STRING,
|
31
|
-
field: "paypal_subscription_id",
|
32
|
-
},
|
33
|
-
paypalOrderId: {
|
34
|
-
type: sequelize_1.DataTypes.STRING,
|
35
|
-
field: "paypal_order_id",
|
36
|
-
},
|
37
|
-
paypalBillingToken: {
|
38
|
-
type: sequelize_1.DataTypes.STRING,
|
39
|
-
field: "paypal_billing_token",
|
40
|
-
},
|
41
30
|
lastPaymentDate: {
|
42
31
|
type: sequelize_1.DataTypes.DATE,
|
43
32
|
field: "last_payment_date",
|
@@ -46,19 +35,11 @@ Subscription.init({
|
|
46
35
|
type: sequelize_1.DataTypes.DATE,
|
47
36
|
field: "cancel_date",
|
48
37
|
},
|
49
|
-
pkSubscriptionId: {
|
50
|
-
type: sequelize_1.DataTypes.STRING,
|
51
|
-
field: "pk_subscription_id",
|
52
|
-
},
|
53
38
|
numberOfPayments: {
|
54
39
|
type: sequelize_1.DataTypes.INTEGER,
|
55
40
|
defaultValue: 0,
|
56
41
|
field: "number_of_payments",
|
57
42
|
},
|
58
|
-
subscriptionPromotionId: {
|
59
|
-
type: sequelize_1.DataTypes.BIGINT,
|
60
|
-
field: "subscription_promotion_id",
|
61
|
-
},
|
62
43
|
stale: {
|
63
44
|
type: sequelize_1.DataTypes.BOOLEAN,
|
64
45
|
field: "stale",
|
@@ -77,7 +58,7 @@ Subscription.init({
|
|
77
58
|
createdAt: sequelize_1.DataTypes.DATE,
|
78
59
|
updatedAt: sequelize_1.DataTypes.DATE,
|
79
60
|
}, {
|
80
|
-
tableName: "
|
61
|
+
tableName: "subscription_plans_on_users",
|
81
62
|
sequelize: pb_sequelize_1.default,
|
82
63
|
});
|
83
64
|
/*
|
@@ -85,35 +66,46 @@ Subscription.init({
|
|
85
66
|
Class functions
|
86
67
|
====================================================================
|
87
68
|
*/
|
88
|
-
|
89
|
-
return await
|
69
|
+
SubscriptionPlansOnUsers.getById = async (id) => {
|
70
|
+
return await SubscriptionPlansOnUsers.findOne({
|
90
71
|
where: {
|
91
72
|
id,
|
92
73
|
},
|
93
74
|
});
|
94
75
|
};
|
95
|
-
|
96
|
-
return await
|
76
|
+
SubscriptionPlansOnUsers.getByUserId = async (userId) => {
|
77
|
+
return await SubscriptionPlansOnUsers.findOne({
|
97
78
|
where: {
|
98
79
|
userId,
|
99
80
|
},
|
100
81
|
});
|
101
82
|
};
|
102
|
-
|
103
|
-
return await
|
83
|
+
SubscriptionPlansOnUsers.getBySubscriptionPlanId = async (subscriptionPlanId) => {
|
84
|
+
return await SubscriptionPlansOnUsers.findOne({
|
104
85
|
where: {
|
105
86
|
subscriptionPlanId,
|
106
87
|
},
|
107
88
|
});
|
108
89
|
};
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
90
|
+
user_1.default.hasMany(SubscriptionPlansOnUsers, {
|
91
|
+
foreignKey: "userId",
|
92
|
+
sourceKey: "id",
|
93
|
+
onDelete: "NO ACTION",
|
94
|
+
constraints: false,
|
95
|
+
});
|
96
|
+
SubscriptionPlansOnUsers.hasOne(user_1.default, {
|
97
|
+
foreignKey: "id",
|
98
|
+
sourceKey: "userId",
|
99
|
+
});
|
100
|
+
subscription_plan_1.default.hasMany(SubscriptionPlansOnUsers, {
|
101
|
+
foreignKey: "subscriptionPlanId",
|
102
|
+
sourceKey: "id",
|
103
|
+
onDelete: "NO ACTION",
|
104
|
+
constraints: false,
|
105
|
+
});
|
106
|
+
SubscriptionPlansOnUsers.hasOne(subscription_plan_1.default, {
|
107
|
+
foreignKey: "id",
|
108
|
+
sourceKey: "subscriptionPlanId",
|
109
|
+
});
|
110
|
+
exports.default = SubscriptionPlansOnUsers;
|
119
111
|
//# sourceMappingURL=subscription.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../typed-model/subscription.ts"],"names":[],"mappings":";;;;;AAAA,
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../typed-model/subscription.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,108 @@
|
|
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
|
+
const sequelize_1 = require("sequelize");
|
7
|
+
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
+
const user_1 = __importDefault(require("./user"));
|
9
|
+
const notification_1 = __importDefault(require("./notification"));
|
10
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
11
|
+
class Transaction extends sequelize_1.Model {
|
12
|
+
}
|
13
|
+
Transaction.init({
|
14
|
+
id: {
|
15
|
+
type: sequelize_1.DataTypes.BIGINT,
|
16
|
+
primaryKey: true,
|
17
|
+
allowNull: false,
|
18
|
+
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
19
|
+
},
|
20
|
+
payerId: {
|
21
|
+
type: sequelize_1.DataTypes.BIGINT,
|
22
|
+
field: "payer_id",
|
23
|
+
},
|
24
|
+
recipientId: {
|
25
|
+
type: sequelize_1.DataTypes.BIGINT,
|
26
|
+
field: "recipient_id",
|
27
|
+
},
|
28
|
+
transactionAmountInCents: {
|
29
|
+
type: sequelize_1.DataTypes.INTEGER,
|
30
|
+
field: "transaction_amount_in_cents",
|
31
|
+
},
|
32
|
+
transactionType: {
|
33
|
+
type: sequelize_1.DataTypes.STRING,
|
34
|
+
field: "transaction_type",
|
35
|
+
},
|
36
|
+
withdrawalId: {
|
37
|
+
type: sequelize_1.DataTypes.BIGINT,
|
38
|
+
field: "withdrawal_id",
|
39
|
+
},
|
40
|
+
withdrawalDate: {
|
41
|
+
type: sequelize_1.DataTypes.DATE,
|
42
|
+
field: "withdrawal_date",
|
43
|
+
},
|
44
|
+
metadata: {
|
45
|
+
type: sequelize_1.DataTypes.STRING,
|
46
|
+
field: "metadata",
|
47
|
+
},
|
48
|
+
earningAmountInCents: {
|
49
|
+
type: sequelize_1.DataTypes.INTEGER,
|
50
|
+
field: "earning_amount_in_cents",
|
51
|
+
},
|
52
|
+
referredTransactionId: {
|
53
|
+
type: sequelize_1.DataTypes.BIGINT,
|
54
|
+
field: "referred_transaction_id",
|
55
|
+
},
|
56
|
+
recurlyInvoiceId: {
|
57
|
+
type: sequelize_1.DataTypes.STRING,
|
58
|
+
field: "recurly_invoice_id",
|
59
|
+
},
|
60
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
61
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
62
|
+
}, {
|
63
|
+
tableName: "credit_payments",
|
64
|
+
sequelize: pb_sequelize_1.default,
|
65
|
+
});
|
66
|
+
const REFERRAL_PERCENTAGE = 0.03;
|
67
|
+
/*
|
68
|
+
====================================================================
|
69
|
+
Class functions
|
70
|
+
====================================================================
|
71
|
+
*/
|
72
|
+
Transaction.getById = async (id) => {
|
73
|
+
return await Transaction.findOne({
|
74
|
+
where: {
|
75
|
+
id,
|
76
|
+
},
|
77
|
+
});
|
78
|
+
};
|
79
|
+
user_1.default.hasMany(Transaction, {
|
80
|
+
foreignKey: "payerId",
|
81
|
+
onDelete: "NO ACTION",
|
82
|
+
constraints: false,
|
83
|
+
});
|
84
|
+
Transaction.hasOne(user_1.default, {
|
85
|
+
foreignKey: "id",
|
86
|
+
sourceKey: "payerId",
|
87
|
+
onDelete: "NO ACTION",
|
88
|
+
constraints: false,
|
89
|
+
});
|
90
|
+
user_1.default.hasMany(Transaction, {
|
91
|
+
foreignKey: "recipientId",
|
92
|
+
onDelete: "NO ACTION",
|
93
|
+
constraints: false,
|
94
|
+
});
|
95
|
+
Transaction.hasOne(user_1.default, {
|
96
|
+
foreignKey: "id",
|
97
|
+
sourceKey: "recipientId",
|
98
|
+
onDelete: "NO ACTION",
|
99
|
+
constraints: false,
|
100
|
+
});
|
101
|
+
notification_1.default.hasOne(Transaction, {
|
102
|
+
foreignKey: "id",
|
103
|
+
sourceKey: "transactionId",
|
104
|
+
constraints: false,
|
105
|
+
onDelete: "NO ACTION",
|
106
|
+
});
|
107
|
+
exports.default = Transaction;
|
108
|
+
//# sourceMappingURL=transaction.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../typed-model/transaction.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,33 @@
|
|
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
|
+
const sequelize_1 = require("sequelize");
|
7
|
+
const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
|
8
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
9
|
+
class Withdrawal extends sequelize_1.Model {
|
10
|
+
}
|
11
|
+
Withdrawal.init({
|
12
|
+
id: {
|
13
|
+
type: sequelize_1.DataTypes.BIGINT,
|
14
|
+
primaryKey: true,
|
15
|
+
allowNull: false,
|
16
|
+
defaultValue: pb_sequelize_1.default.fn("next_id"),
|
17
|
+
},
|
18
|
+
userId: {
|
19
|
+
type: sequelize_1.DataTypes.BIGINT,
|
20
|
+
field: "user_id",
|
21
|
+
},
|
22
|
+
amountInCents: {
|
23
|
+
type: sequelize_1.DataTypes.INTEGER,
|
24
|
+
field: "amount_in_cents",
|
25
|
+
},
|
26
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
27
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
28
|
+
}, {
|
29
|
+
tableName: "withdrawals",
|
30
|
+
sequelize: pb_sequelize_1.default,
|
31
|
+
});
|
32
|
+
exports.default = Withdrawal;
|
33
|
+
//# sourceMappingURL=withdrawal.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../typed-model/withdrawal.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,UAAW,SAAQ,iBAGxB;CAQA;AAED,UAAU,CAAC,IAAI,CACb;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,sBAAS,CAAC,EAAE,CAAC,SAAS,CAAC;KACtC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,SAAS;KACjB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,iBAAiB;KACzB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,aAAa;IACxB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../webhooks/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,oDAA4B;AAE5B,8DAAqC;AACrC,gDAAwB;AACxB,gDAAwB;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../webhooks/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,oDAA4B;AAE5B,8DAAqC;AACrC,gDAAwB;AACxB,gDAAwB;AACxB,uCAAmC;AAEtB,QAAA,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAC7B,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,WAAG,CAAC,CAAC;AACtC,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,WAAG,CAAC,OAAO,CACT,GAAG,EACH,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAClB,IAAI,EAAE,CAAC;AACT,CAAC,EACD,IAAA,cAAI,GAAE,CACP,CAAC;AACF,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,GAAG;IACX,mBAAmB,EAAE,GAAG;CACzB,CAAC;AAEF,WAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC,CAAC;AAE3B,WAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAE3B,WAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC5C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,WAAW,IAAI,SAAS,EAAE;QAC5B,QAAQ,UAAU,EAAE;YAClB,KAAK,UAAU;gBACb,OAAO,MAAM,IAAA,gBAAM,EAAC,OAAO,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C;gBACE,MAAM;SACT;KACF;IACD,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,WAAG,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE;IAC9B,IAAI,GAAG,MAAM,CAAC;CACf;AAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC"}
|
@@ -13,27 +13,27 @@ exports.default = async (id, res) => {
|
|
13
13
|
}
|
14
14
|
let originalTransaction = await src_1.recurlyInstance.getTransaction(refundTransaction.originalTransactionId);
|
15
15
|
let invoiceId = (_a = originalTransaction.invoice) === null || _a === void 0 ? void 0 : _a.id;
|
16
|
-
let
|
16
|
+
let transaction = await typed_model_1.Transaction.findOne({
|
17
17
|
where: {
|
18
|
-
invoiceId,
|
18
|
+
recurlyInvoiceId: invoiceId,
|
19
19
|
},
|
20
20
|
});
|
21
|
-
if (!
|
21
|
+
if (!transaction) {
|
22
22
|
return res.status(400).send("No credit payment found");
|
23
23
|
}
|
24
|
-
if (
|
24
|
+
if (transaction.earningAmountInCents <= 0) {
|
25
25
|
return res.status(400).send("Already refunded this payment");
|
26
26
|
}
|
27
|
-
if (!
|
28
|
-
|
29
|
-
|
27
|
+
if (!transaction.withdrawalDate) {
|
28
|
+
transaction.transactionAmountInCents = 0;
|
29
|
+
transaction.earningAmountInCents = 0;
|
30
30
|
}
|
31
31
|
else {
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
transaction.transactionAmountInCents = 0;
|
33
|
+
transaction.earningAmountInCents = transaction.earningAmountInCents * -1;
|
34
|
+
transaction.setAttributes("withdrawalDate", undefined);
|
35
35
|
}
|
36
|
-
await
|
36
|
+
await transaction.save();
|
37
37
|
return res.send("Success");
|
38
38
|
};
|
39
39
|
//# sourceMappingURL=refund.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"refund.js","sourceRoot":"","sources":["../../../webhooks/payment/refund.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"refund.js","sourceRoot":"","sources":["../../../webhooks/payment/refund.ts"],"names":[],"mappings":";;AAAA,mCAA4C;AAC5C,mDAAgD;AAEhD,kBAAe,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;;IAC/B,IAAI,iBAAiB,GAAG,MAAM,qBAAe,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;KAClE;IACD,IAAI,iBAAiB,CAAC,IAAI,IAAI,QAAQ,EAAE;QACtC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;KAC5D;IAED,IAAI,mBAAmB,GAAG,MAAM,qBAAe,CAAC,cAAc,CAC5D,iBAAiB,CAAC,qBAAsB,CACzC,CAAC;IAEF,IAAI,SAAS,GAAG,MAAA,mBAAmB,CAAC,OAAO,0CAAE,EAAG,CAAC;IAEjD,IAAI,WAAW,GAAG,MAAM,yBAAW,CAAC,OAAO,CAAC;QAC1C,KAAK,EAAE;YACL,gBAAgB,EAAE,SAAS;SAC5B;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;KACxD;IAED,IAAI,WAAW,CAAC,oBAAoB,IAAI,CAAC,EAAE;QACzC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;KAC9D;IAED,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;QAC/B,WAAW,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACzC,WAAW,CAAC,oBAAoB,GAAG,CAAC,CAAC;KACtC;SAAM;QACL,WAAW,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACzC,WAAW,CAAC,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QACzE,WAAW,CAAC,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;KACxD;IAED,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAEzB,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC,CAAC"}
|