@winible/winible-typed 2.21.13 → 2.22.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.
@@ -0,0 +1,61 @@
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 types_1 = require("../src/types");
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class CancellationOffer extends sequelize_1.Model {
12
+ }
13
+ CancellationOffer.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
+ subscriptionPlanId: {
21
+ type: sequelize_1.DataTypes.BIGINT,
22
+ allowNull: false,
23
+ field: "subscription_plan_id",
24
+ references: {
25
+ model: subscription_plan_1.default,
26
+ },
27
+ },
28
+ discountType: {
29
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.DiscountType)),
30
+ field: "discount_type",
31
+ },
32
+ discountPercent: {
33
+ type: sequelize_1.DataTypes.BIGINT,
34
+ field: "discount_percent",
35
+ },
36
+ temporalAmount: {
37
+ type: sequelize_1.DataTypes.BIGINT,
38
+ field: "temporal_amount",
39
+ },
40
+ temporalUnit: {
41
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.TemporalUnit)),
42
+ field: "temporal_unit",
43
+ },
44
+ createdAt: sequelize_1.DataTypes.DATE,
45
+ updatedAt: sequelize_1.DataTypes.DATE,
46
+ }, {
47
+ tableName: "cancellation_offers",
48
+ sequelize: pb_sequelize_1.default,
49
+ });
50
+ subscription_plan_1.default.hasMany(CancellationOffer, {
51
+ foreignKey: "subscriptionPlanId",
52
+ sourceKey: "id",
53
+ onDelete: "NO ACTION",
54
+ constraints: false,
55
+ });
56
+ CancellationOffer.belongsTo(subscription_plan_1.default, {
57
+ foreignKey: "subscriptionPlanId",
58
+ targetKey: "id",
59
+ });
60
+ exports.default = CancellationOffer;
61
+ //# sourceMappingURL=cancellation_offer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancellation_offer.js","sourceRoot":"","sources":["../../typed-model/cancellation_offer.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,4EAAmD;AACnD,wCAA0D;AAE1D,mEAAmE;AACnE,MAAM,iBAAkB,SAAQ,iBAG/B;CASA;AAED,iBAAiB,CAAC,IAAI,CACpB;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,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE;YACV,KAAK,EAAE,2BAAgB;SACxB;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,kBAAkB;KAC1B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,qBAAqB;IAChC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,2BAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE;IAC1C,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,iBAAiB,CAAC,SAAS,CAAC,2BAAgB,EAAE;IAC5C,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,94 @@
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 subscription_plan_on_users_1 = __importDefault(require("./subscription-plan-on-users"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class CancellationReason extends sequelize_1.Model {
12
+ }
13
+ CancellationReason.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
+ references: {
25
+ model: user_1.default,
26
+ },
27
+ },
28
+ subscriptionId: {
29
+ type: sequelize_1.DataTypes.BIGINT,
30
+ allowNull: false,
31
+ field: "subscription_id",
32
+ references: {
33
+ model: subscription_plan_on_users_1.default,
34
+ },
35
+ },
36
+ reason: {
37
+ type: sequelize_1.DataTypes.STRING,
38
+ allowNull: false,
39
+ field: "reason",
40
+ },
41
+ createdAt: sequelize_1.DataTypes.DATE,
42
+ updatedAt: sequelize_1.DataTypes.DATE,
43
+ }, {
44
+ tableName: "cancellation_reasons",
45
+ sequelize: pb_sequelize_1.default,
46
+ });
47
+ /*
48
+ ====================================================================
49
+ Class functions
50
+ ====================================================================
51
+ */
52
+ CancellationReason.getById = async (id) => {
53
+ return await CancellationReason.findOne({
54
+ where: {
55
+ id,
56
+ },
57
+ });
58
+ };
59
+ CancellationReason.getByUserId = async (userId) => {
60
+ return await CancellationReason.findAll({
61
+ where: {
62
+ userId,
63
+ },
64
+ });
65
+ };
66
+ CancellationReason.getBySubscriptionId = async (subscriptionId) => {
67
+ return await CancellationReason.findAll({
68
+ where: {
69
+ subscriptionId,
70
+ },
71
+ });
72
+ };
73
+ user_1.default.hasMany(CancellationReason, {
74
+ foreignKey: "userId",
75
+ sourceKey: "id",
76
+ onDelete: "NO ACTION",
77
+ constraints: false,
78
+ });
79
+ CancellationReason.belongsTo(user_1.default, {
80
+ foreignKey: "userId",
81
+ targetKey: "id",
82
+ });
83
+ subscription_plan_on_users_1.default.hasMany(CancellationReason, {
84
+ foreignKey: "subscriptionId",
85
+ sourceKey: "id",
86
+ onDelete: "NO ACTION",
87
+ constraints: false,
88
+ });
89
+ CancellationReason.belongsTo(subscription_plan_on_users_1.default, {
90
+ foreignKey: "subscriptionId",
91
+ targetKey: "id",
92
+ });
93
+ exports.default = CancellationReason;
94
+ //# sourceMappingURL=cancellation_reason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancellation_reason.js","sourceRoot":"","sources":["../../typed-model/cancellation_reason.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,8FAAmE;AAEnE,mEAAmE;AACnE,MAAM,kBAAmB,SAAQ,iBAGhC;CAaA;AAED,kBAAkB,CAAC,IAAI,CACrB;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;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;SACZ;KACF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE;YACV,KAAK,EAAE,oCAAuB;SAC/B;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,QAAQ;KAChB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF;;;;IAII;AAEJ,kBAAkB,CAAC,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IAChD,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE;YACL,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IACxD,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE;YACL,MAAM;SACP;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAkB,CAAC,mBAAmB,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE;IACxE,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE;YACL,cAAc;SACf;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;IAC/B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAkB,CAAC,SAAS,CAAC,cAAI,EAAE;IACjC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,oCAAuB,CAAC,OAAO,CAAC,kBAAkB,EAAE;IAClD,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAkB,CAAC,SAAS,CAAC,oCAAuB,EAAE;IACpD,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,kBAAkB,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.pbSequelize = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.SubscriberTelegramIntegration = exports.TelegramIntegration = exports.StoresOnOrganizations = exports.UsersOnOrganizations = exports.Organization = exports.SubscriberDiscordIntegration = exports.DiscordIntegration = exports.SportOnPosts = exports.Sport = exports.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.LeagueOnUsers = exports.League = exports.Withdrawal = exports.RecurlyAccount = exports.FreeSubscriptionPlan = exports.SubscriptionPricingOption = exports.SubscriptionCoupon = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
6
+ exports.pbSequelize = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.SubscriberTelegramIntegration = exports.TelegramIntegration = exports.StoresOnOrganizations = exports.UsersOnOrganizations = exports.Organization = exports.SubscriberDiscordIntegration = exports.DiscordIntegration = exports.SportOnPosts = exports.Sport = exports.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.LeagueOnUsers = exports.League = exports.Withdrawal = exports.RecurlyAccount = exports.FreeSubscriptionPlan = exports.SubscriptionPricingOption = exports.SubscriptionCoupon = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
7
7
  var content_like_1 = require("./content-like");
8
8
  Object.defineProperty(exports, "ContentLike", { enumerable: true, get: function () { return __importDefault(content_like_1).default; } });
9
9
  var transaction_1 = require("./transaction");
@@ -78,6 +78,10 @@ var featured_creator_1 = require("./featured-creator");
78
78
  Object.defineProperty(exports, "FeaturedCreator", { enumerable: true, get: function () { return __importDefault(featured_creator_1).default; } });
79
79
  var private_feed_users_1 = require("./private-feed-users");
80
80
  Object.defineProperty(exports, "PrivateFeedUsers", { enumerable: true, get: function () { return __importDefault(private_feed_users_1).default; } });
81
+ var cancellation_offer_1 = require("./cancellation_offer");
82
+ Object.defineProperty(exports, "CancellationOffer", { enumerable: true, get: function () { return __importDefault(cancellation_offer_1).default; } });
83
+ var cancellation_reason_1 = require("./cancellation_reason");
84
+ Object.defineProperty(exports, "CancellationReason", { enumerable: true, get: function () { return __importDefault(cancellation_reason_1).default; } });
81
85
  var pb_sequelize_1 = require("./pb-sequelize");
82
86
  Object.defineProperty(exports, "pbSequelize", { enumerable: true, get: function () { return __importDefault(pb_sequelize_1).default; } });
83
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,mDAA2D;AAAlD,+HAAA,OAAO,OAAgB;AAChC,yDAAkE;AAAzD,sIAAA,OAAO,OAAoB;AACpC,2EAAkF;AAAzE,sJAAA,OAAO,OAA2B;AAC3C,yEAAgF;AAAvE,oJAAA,OAAO,OAA0B;AAC1C,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,6EAAqF;AAA5E,yJAAA,OAAO,OAA6B;AAC7C,mEAA2E;AAAlE,+IAAA,OAAO,OAAwB;AACxC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,qDAA6D;AAApD,iIAAA,OAAO,OAAiB;AACjC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,mGAAyG;AAAhG,6KAAA,OAAO,OAAsC;AACtD,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,qEAA8E;AAArE,kJAAA,OAAO,OAA0B;AAC1C,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,yDAAiE;AAAxD,qIAAA,OAAO,OAAmB;AACnC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,mDAA2D;AAAlD,+HAAA,OAAO,OAAgB;AAChC,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,mFAA2F;AAAlF,+JAAA,OAAO,OAAgC;AAChD,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,mEAA2E;AAAlE,+IAAA,OAAO,OAAwB;AACxC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,+DAAwE;AAA/D,4IAAA,OAAO,OAAuB;AACvC,qFAA6F;AAApF,iKAAA,OAAO,OAAiC;AACjD,+DAAwE;AAA/D,4IAAA,OAAO,OAAuB;AACvC,uDAAgE;AAAvD,oIAAA,OAAO,OAAmB;AACnC,2DAAmE;AAA1D,uIAAA,OAAO,OAAoB;AACpC,+CAAwD;AAA/C,4HAAA,OAAO,OAAe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,mDAA2D;AAAlD,+HAAA,OAAO,OAAgB;AAChC,yDAAkE;AAAzD,sIAAA,OAAO,OAAoB;AACpC,2EAAkF;AAAzE,sJAAA,OAAO,OAA2B;AAC3C,yEAAgF;AAAvE,oJAAA,OAAO,OAA0B;AAC1C,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,6EAAqF;AAA5E,yJAAA,OAAO,OAA6B;AAC7C,mEAA2E;AAAlE,+IAAA,OAAO,OAAwB;AACxC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,qDAA6D;AAApD,iIAAA,OAAO,OAAiB;AACjC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,mGAAyG;AAAhG,6KAAA,OAAO,OAAsC;AACtD,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,qEAA8E;AAArE,kJAAA,OAAO,OAA0B;AAC1C,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,yDAAiE;AAAxD,qIAAA,OAAO,OAAmB;AACnC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,mDAA2D;AAAlD,+HAAA,OAAO,OAAgB;AAChC,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,mFAA2F;AAAlF,+JAAA,OAAO,OAAgC;AAChD,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,mEAA2E;AAAlE,+IAAA,OAAO,OAAwB;AACxC,qEAA6E;AAApE,iJAAA,OAAO,OAAyB;AACzC,+DAAwE;AAA/D,4IAAA,OAAO,OAAuB;AACvC,qFAA6F;AAApF,iKAAA,OAAO,OAAiC;AACjD,+DAAwE;AAA/D,4IAAA,OAAO,OAAuB;AACvC,uDAAgE;AAAvD,oIAAA,OAAO,OAAmB;AACnC,2DAAmE;AAA1D,uIAAA,OAAO,OAAoB;AACpC,2DAAoE;AAA3D,wIAAA,OAAO,OAAqB;AACrC,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB;AACtC,+CAAwD;AAA/C,4HAAA,OAAO,OAAe"}
@@ -4,48 +4,57 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sequelize_1 = require("sequelize");
7
+ const league_1 = __importDefault(require("./league"));
7
8
  const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
8
9
  const user_1 = __importDefault(require("./user"));
9
10
  // order of InferAttributes & InferCreationAttributes is important.
10
- class FeaturedCapper extends sequelize_1.Model {
11
+ class LeagueUser extends sequelize_1.Model {
11
12
  }
12
- FeaturedCapper.init({
13
+ LeagueUser.init({
13
14
  id: {
14
15
  type: sequelize_1.DataTypes.BIGINT,
15
16
  primaryKey: true,
16
17
  allowNull: false,
17
18
  defaultValue: pb_sequelize_1.default.fn("next_id"),
18
19
  },
19
- userId: {
20
+ leagueId: {
20
21
  type: sequelize_1.DataTypes.BIGINT,
22
+ field: "league_id",
21
23
  allowNull: false,
22
- field: "user_id",
23
- references: {
24
- model: user_1.default,
25
- },
26
24
  },
27
- priority: {
28
- type: sequelize_1.DataTypes.SMALLINT,
29
- field: "priority",
30
- },
31
- customLabel: {
32
- type: sequelize_1.DataTypes.STRING,
33
- field: "custom_label",
25
+ userId: {
26
+ type: sequelize_1.DataTypes.BIGINT,
27
+ field: "user_id",
28
+ allowNull: false,
34
29
  },
35
30
  createdAt: sequelize_1.DataTypes.DATE,
36
31
  updatedAt: sequelize_1.DataTypes.DATE,
37
32
  }, {
38
- tableName: "featured_cappers",
33
+ // Other model options go here
34
+ tableName: "league_users",
39
35
  sequelize: pb_sequelize_1.default,
40
36
  });
41
- user_1.default.hasOne(FeaturedCapper, {
42
- foreignKey: "userId",
43
- sourceKey: "id",
37
+ LeagueUser.hasOne(league_1.default, {
38
+ foreignKey: "id",
39
+ sourceKey: "leagueId",
40
+ onDelete: "NO ACTION",
41
+ constraints: false,
42
+ });
43
+ league_1.default.hasMany(LeagueUser, {
44
+ foreignKey: "leagueId",
45
+ onDelete: "NO ACTION",
46
+ constraints: false,
44
47
  });
45
- FeaturedCapper.hasOne(user_1.default, {
48
+ LeagueUser.hasOne(user_1.default, {
46
49
  foreignKey: "id",
47
50
  sourceKey: "userId",
48
51
  onDelete: "NO ACTION",
52
+ constraints: false,
53
+ });
54
+ user_1.default.hasMany(LeagueUser, {
55
+ foreignKey: "userId",
56
+ onDelete: "NO ACTION",
57
+ constraints: false,
49
58
  });
50
- exports.default = FeaturedCapper;
51
- //# sourceMappingURL=featured-capper.js.map
59
+ exports.default = LeagueUser;
60
+ //# sourceMappingURL=league-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"league-user.js","sourceRoot":"","sources":["../../typed-model/league-user.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AACnB,sDAA8B;AAE9B,kEAAuC;AACvC,kDAA0B;AAE1B,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,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,cAAc;IACzB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,UAAU,CAAC,MAAM,CAAC,gBAAM,EAAE;IACxB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,OAAO,CAAC,UAAU,EAAE;IACzB,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,UAAU,CAAC,MAAM,CAAC,cAAI,EAAE;IACtB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE;IACvB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,82 @@
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 post_1 = __importDefault(require("./post"));
9
+ const telegram_integration_1 = __importDefault(require("./telegram-integration"));
10
+ const discord_integration_1 = __importDefault(require("./discord-integration"));
11
+ class PostIntegrations extends sequelize_1.Model {
12
+ }
13
+ PostIntegrations.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
+ postId: {
21
+ type: sequelize_1.DataTypes.BIGINT,
22
+ allowNull: false,
23
+ field: "post_id",
24
+ references: {
25
+ model: post_1.default,
26
+ key: "id",
27
+ },
28
+ },
29
+ discordIntegrationId: {
30
+ type: sequelize_1.DataTypes.STRING,
31
+ allowNull: true,
32
+ field: "discord_id",
33
+ },
34
+ discordExternalId: {
35
+ type: sequelize_1.DataTypes.STRING,
36
+ allowNull: true,
37
+ field: "discord_external_id",
38
+ },
39
+ telegramIntegrationId: {
40
+ type: sequelize_1.DataTypes.STRING,
41
+ allowNull: true,
42
+ field: "telegram_id",
43
+ },
44
+ telegramExternalId: {
45
+ type: sequelize_1.DataTypes.STRING,
46
+ allowNull: true,
47
+ field: "telegram_external_id",
48
+ },
49
+ createdAt: {
50
+ type: sequelize_1.DataTypes.DATE,
51
+ allowNull: false,
52
+ defaultValue: sequelize_1.DataTypes.NOW,
53
+ },
54
+ updatedAt: {
55
+ type: sequelize_1.DataTypes.DATE,
56
+ allowNull: false,
57
+ defaultValue: sequelize_1.DataTypes.NOW,
58
+ },
59
+ }, {
60
+ tableName: "posts_on_integrations",
61
+ sequelize: pb_sequelize_1.default,
62
+ });
63
+ post_1.default.hasMany(PostIntegrations, {
64
+ foreignKey: "postId",
65
+ sourceKey: "id",
66
+ onDelete: "NO ACTION",
67
+ constraints: false,
68
+ });
69
+ telegram_integration_1.default.hasMany(PostIntegrations, {
70
+ foreignKey: "telegramIntegrationId",
71
+ sourceKey: "id",
72
+ onDelete: "NO ACTION",
73
+ constraints: false,
74
+ });
75
+ discord_integration_1.default.hasMany(PostIntegrations, {
76
+ foreignKey: "discordIntegrationId",
77
+ sourceKey: "id",
78
+ onDelete: "NO ACTION",
79
+ constraints: false,
80
+ });
81
+ exports.default = PostIntegrations;
82
+ //# sourceMappingURL=post_integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post_integrations.js","sourceRoot":"","sources":["../../typed-model/post_integrations.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,kFAAyD;AACzD,gFAAuD;AAEvD,MAAM,gBAAiB,SAAQ,iBAG9B;CAUA;AAED,gBAAgB,CAAC,IAAI,CACnB;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;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;YACX,GAAG,EAAE,IAAI;SACV;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,YAAY;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,qBAAqB;KAC7B;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,sBAAsB;KAC9B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,qBAAS,CAAC,GAAG;KAC5B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,qBAAS,CAAC,GAAG;KAC5B;CACF,EACD;IACE,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;IAC7B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,8BAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE;IAC5C,UAAU,EAAE,uBAAuB;IACnC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,6BAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE;IAC3C,UAAU,EAAE,sBAAsB;IAClC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,gBAAgB,CAAC"}
@@ -58,6 +58,11 @@ SubscriptionCoupon.init({
58
58
  type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.TemporalUnit)),
59
59
  field: "temporal_unit",
60
60
  },
61
+ metadata: {
62
+ type: sequelize_1.DataTypes.JSONB,
63
+ allowNull: true,
64
+ field: "metadata",
65
+ },
61
66
  createdAt: sequelize_1.DataTypes.DATE,
62
67
  updatedAt: sequelize_1.DataTypes.DATE,
63
68
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-coupon.js","sourceRoot":"","sources":["../../typed-model/subscription-coupon.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,sDAAsD;AAEtD,wCAA0D;AAC1D,wBAAqC;AAErC,mEAAmE;AACnE,MAAM,kBAAmB,SAAQ,iBAGhC;CAeA;AAED,kBAAkB,CAAC,IAAI,CACrB;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,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE;YACV,KAAK,EAAE,mBAAgB;SACxB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM;KACd;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM;KACd;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,kBAAkB;KAC1B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,aAAa;KACrB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,mBAAgB,CAAC,OAAO,CAAC,kBAAkB,EAAE;IAC3C,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAkB,CAAC,MAAM,CAAC,mBAAgB,EAAE;IAC1C,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,oBAAoB;CAChC,CAAC,CAAC;AAEH,0DAA0D;AAC1D,+CAA+C;AAC/C,qBAAqB;AACrB,2BAA2B;AAC3B,wBAAwB;AACxB,MAAM;AAEN,yDAAyD;AACzD,sBAAsB;AACtB,8CAA8C;AAC9C,MAAM;AAEN,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"subscription-coupon.js","sourceRoot":"","sources":["../../typed-model/subscription-coupon.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,sDAAsD;AAEtD,wCAA0D;AAC1D,wBAAqC;AAErC,mEAAmE;AACnE,MAAM,kBAAmB,SAAQ,iBAGhC;CAkBA;AAED,kBAAkB,CAAC,IAAI,CACrB;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,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE;YACV,KAAK,EAAE,mBAAgB;SACxB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM;KACd;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,MAAM;KACd;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,kBAAkB;KAC1B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,aAAa;KACrB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;QACpD,KAAK,EAAE,eAAe;KACvB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,mBAAgB,CAAC,OAAO,CAAC,kBAAkB,EAAE;IAC3C,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAkB,CAAC,MAAM,CAAC,mBAAgB,EAAE;IAC1C,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,oBAAoB;CAChC,CAAC,CAAC;AAEH,0DAA0D;AAC1D,+CAA+C;AAC/C,qBAAqB;AACrB,2BAA2B;AAC3B,wBAAwB;AACxB,MAAM;AAEN,yDAAyD;AACzD,sBAAsB;AACtB,8CAA8C;AAC9C,MAAM;AAEN,kBAAe,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winible/winible-typed",
3
- "version": "2.21.13",
3
+ "version": "2.22.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -0,0 +1,81 @@
1
+ import {
2
+ Model,
3
+ InferAttributes,
4
+ InferCreationAttributes,
5
+ CreationOptional,
6
+ DataTypes,
7
+ } from "sequelize";
8
+
9
+ import sequelize from "./pb-sequelize";
10
+ import SubscriptionPlan from "./subscription-plan";
11
+ import { DiscountType, TemporalUnit } from "../src/types";
12
+
13
+ // order of InferAttributes & InferCreationAttributes is important.
14
+ class CancellationOffer extends Model<
15
+ InferAttributes<CancellationOffer>,
16
+ InferCreationAttributes<CancellationOffer>
17
+ > {
18
+ declare id: CreationOptional<string>;
19
+ declare subscriptionPlanId: string;
20
+ declare discountType?: DiscountType;
21
+ declare discountPercent?: number;
22
+ declare temporalAmount?: number;
23
+ declare temporalUnit?: TemporalUnit;
24
+ declare createdAt: CreationOptional<Date>;
25
+ declare updatedAt: CreationOptional<Date>;
26
+ }
27
+
28
+ CancellationOffer.init(
29
+ {
30
+ id: {
31
+ type: DataTypes.BIGINT,
32
+ primaryKey: true,
33
+ allowNull: false,
34
+ defaultValue: sequelize.fn("next_id"),
35
+ },
36
+ subscriptionPlanId: {
37
+ type: DataTypes.BIGINT,
38
+ allowNull: false,
39
+ field: "subscription_plan_id",
40
+ references: {
41
+ model: SubscriptionPlan,
42
+ },
43
+ },
44
+ discountType: {
45
+ type: DataTypes.ENUM(...Object.values(DiscountType)),
46
+ field: "discount_type",
47
+ },
48
+ discountPercent: {
49
+ type: DataTypes.BIGINT,
50
+ field: "discount_percent",
51
+ },
52
+ temporalAmount: {
53
+ type: DataTypes.BIGINT,
54
+ field: "temporal_amount",
55
+ },
56
+ temporalUnit: {
57
+ type: DataTypes.ENUM(...Object.values(TemporalUnit)),
58
+ field: "temporal_unit",
59
+ },
60
+ createdAt: DataTypes.DATE,
61
+ updatedAt: DataTypes.DATE,
62
+ },
63
+ {
64
+ tableName: "cancellation_offers",
65
+ sequelize,
66
+ }
67
+ );
68
+
69
+ SubscriptionPlan.hasMany(CancellationOffer, {
70
+ foreignKey: "subscriptionPlanId",
71
+ sourceKey: "id",
72
+ onDelete: "NO ACTION",
73
+ constraints: false,
74
+ });
75
+
76
+ CancellationOffer.belongsTo(SubscriptionPlan, {
77
+ foreignKey: "subscriptionPlanId",
78
+ targetKey: "id",
79
+ });
80
+
81
+ export default CancellationOffer;
@@ -0,0 +1,124 @@
1
+ import {
2
+ Model,
3
+ InferAttributes,
4
+ InferCreationAttributes,
5
+ CreationOptional,
6
+ DataTypes,
7
+ } from "sequelize";
8
+
9
+ import sequelize from "./pb-sequelize";
10
+ import User from "./user";
11
+ import SubscriptionPlanOnUsers from "./subscription-plan-on-users";
12
+
13
+ // order of InferAttributes & InferCreationAttributes is important.
14
+ class CancellationReason extends Model<
15
+ InferAttributes<CancellationReason>,
16
+ InferCreationAttributes<CancellationReason>
17
+ > {
18
+ declare id: CreationOptional<string>;
19
+ declare userId: string;
20
+ declare subscriptionId: string;
21
+ declare reason: string;
22
+ declare createdAt: CreationOptional<Date>;
23
+ declare updatedAt: CreationOptional<Date>;
24
+
25
+ static getById: (id: string) => Promise<CancellationReason | null>;
26
+ static getByUserId: (userId: string) => Promise<CancellationReason[] | null>;
27
+ static getBySubscriptionId: (
28
+ subscriptionId: string
29
+ ) => Promise<CancellationReason[] | null>;
30
+ }
31
+
32
+ CancellationReason.init(
33
+ {
34
+ id: {
35
+ type: DataTypes.BIGINT,
36
+ primaryKey: true,
37
+ allowNull: false,
38
+ defaultValue: sequelize.fn("next_id"),
39
+ },
40
+ userId: {
41
+ type: DataTypes.BIGINT,
42
+ allowNull: false,
43
+ field: "user_id",
44
+ references: {
45
+ model: User,
46
+ },
47
+ },
48
+ subscriptionId: {
49
+ type: DataTypes.BIGINT,
50
+ allowNull: false,
51
+ field: "subscription_id",
52
+ references: {
53
+ model: SubscriptionPlanOnUsers,
54
+ },
55
+ },
56
+ reason: {
57
+ type: DataTypes.STRING,
58
+ allowNull: false,
59
+ field: "reason",
60
+ },
61
+ createdAt: DataTypes.DATE,
62
+ updatedAt: DataTypes.DATE,
63
+ },
64
+ {
65
+ tableName: "cancellation_reasons",
66
+ sequelize,
67
+ }
68
+ );
69
+
70
+ /*
71
+ ====================================================================
72
+ Class functions
73
+ ====================================================================
74
+ */
75
+
76
+ CancellationReason.getById = async (id: string) => {
77
+ return await CancellationReason.findOne({
78
+ where: {
79
+ id,
80
+ },
81
+ });
82
+ };
83
+
84
+ CancellationReason.getByUserId = async (userId: string) => {
85
+ return await CancellationReason.findAll({
86
+ where: {
87
+ userId,
88
+ },
89
+ });
90
+ };
91
+
92
+ CancellationReason.getBySubscriptionId = async (subscriptionId: string) => {
93
+ return await CancellationReason.findAll({
94
+ where: {
95
+ subscriptionId,
96
+ },
97
+ });
98
+ };
99
+
100
+ User.hasMany(CancellationReason, {
101
+ foreignKey: "userId",
102
+ sourceKey: "id",
103
+ onDelete: "NO ACTION",
104
+ constraints: false,
105
+ });
106
+
107
+ CancellationReason.belongsTo(User, {
108
+ foreignKey: "userId",
109
+ targetKey: "id",
110
+ });
111
+
112
+ SubscriptionPlanOnUsers.hasMany(CancellationReason, {
113
+ foreignKey: "subscriptionId",
114
+ sourceKey: "id",
115
+ onDelete: "NO ACTION",
116
+ constraints: false,
117
+ });
118
+
119
+ CancellationReason.belongsTo(SubscriptionPlanOnUsers, {
120
+ foreignKey: "subscriptionId",
121
+ targetKey: "id",
122
+ });
123
+
124
+ export default CancellationReason;
@@ -35,4 +35,6 @@ export { default as SubscriberTelegramIntegration } from "./subscriber-telegram-
35
35
  export { default as PostsOnIntegrations } from "./post_on_integrations";
36
36
  export { default as FeaturedCreator } from "./featured-creator";
37
37
  export { default as PrivateFeedUsers } from "./private-feed-users";
38
+ export { default as CancellationOffer } from "./cancellation_offer";
39
+ export { default as CancellationReason } from "./cancellation_reason";
38
40
  export { default as pbSequelize } from "./pb-sequelize";
@@ -29,6 +29,9 @@ class SubscriptionCoupon extends Model<
29
29
  declare redemptions?: number;
30
30
  declare temporalAmount?: number;
31
31
  declare temporalUnit?: TemporalUnit;
32
+ declare metadata?: {
33
+ [key: string]: any;
34
+ };
32
35
  declare createdAt: CreationOptional<Date>;
33
36
  declare updatedAt: CreationOptional<Date>;
34
37
  }
@@ -81,6 +84,11 @@ SubscriptionCoupon.init(
81
84
  type: DataTypes.ENUM(...Object.values(TemporalUnit)),
82
85
  field: "temporal_unit",
83
86
  },
87
+ metadata: {
88
+ type: DataTypes.JSONB,
89
+ allowNull: true,
90
+ field: "metadata",
91
+ },
84
92
  createdAt: DataTypes.DATE,
85
93
  updatedAt: DataTypes.DATE,
86
94
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"featured-capper.js","sourceRoot":"","sources":["../../typed-model/featured-capper.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CAUA;AAED,cAAc,CAAC,IAAI,CACjB;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;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;SACZ;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,QAAQ;QACxB,KAAK,EAAE,UAAU;KAClB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,cAAc;KACtB;IAED,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,MAAM,CAAC,cAAc,EAAE;IAC1B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,cAAc,CAAC,MAAM,CAAC,cAAI,EAAE;IAC1B,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,WAAW;CACtB,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC"}