@winible/winible-typed 2.2.9 → 2.3.1

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.
@@ -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.User = exports.League = exports.Withdrawal = exports.RecurlyAccount = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.pbSequelize = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
6
+ exports.SubscriptionCoupon = exports.User = exports.League = exports.Withdrawal = exports.RecurlyAccount = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.pbSequelize = 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");
@@ -34,4 +34,6 @@ var league_1 = require("./league");
34
34
  Object.defineProperty(exports, "League", { enumerable: true, get: function () { return __importDefault(league_1).default; } });
35
35
  var user_1 = require("./user");
36
36
  Object.defineProperty(exports, "User", { enumerable: true, get: function () { return __importDefault(user_1).default; } });
37
+ var subscription_coupon_1 = require("./subscription-coupon");
38
+ Object.defineProperty(exports, "SubscriptionCoupon", { enumerable: true, get: function () { return __importDefault(subscription_coupon_1).default; } });
37
39
  //# 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,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,+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,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ"}
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,+CAAwD;AAA/C,4HAAA,OAAO,OAAe;AAC/B,+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,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,6DAAsE;AAA7D,0IAAA,OAAO,OAAsB"}
@@ -15,14 +15,31 @@ const sequelize_1 = require("sequelize");
15
15
  const dbUrl = process.env.ENVIRONMENT === "test"
16
16
  ? process.env.TESTING_DATABASE_URL
17
17
  : process.env.DATABASE_URL;
18
- exports.default = new sequelize_1.Sequelize(dbUrl, {
19
- logging: false,
20
- minifyAliases: true,
18
+ // Staging
19
+ const sequelize = new sequelize_1.Sequelize({
20
+ username: "postgres",
21
+ password: "OXVdY35B776",
22
+ database: "winible",
23
+ host: "winible-v2-staging.cd9ez5rrajpu.us-east-1.rds.amazonaws.com",
24
+ dialect: "postgres",
25
+ ssl: false,
21
26
  dialectOptions: {
22
27
  ssl: {
23
28
  require: true,
24
- rejectUnauthorized: false, // <<<<<<< YOU NEED THIS
29
+ rejectUnauthorized: false,
25
30
  },
26
31
  },
27
32
  });
33
+ sequelize.sync();
34
+ exports.default = sequelize;
35
+ // export default new Sequelize(dbUrl!, {
36
+ // logging: false,
37
+ // minifyAliases: true,
38
+ // dialectOptions: {
39
+ // ssl: {
40
+ // require: true,
41
+ // rejectUnauthorized: false, // <<<<<<< YOU NEED THIS
42
+ // },
43
+ // },
44
+ // });
28
45
  //# sourceMappingURL=pb-sequelize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pb-sequelize.js","sourceRoot":"","sources":["../../typed-model/pb-sequelize.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,oBAAoB;AACpB,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,mBAAmB;AAEnB,yCAAsC;AAEtC;;GAEG;AACH,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;IAChC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAE/B,kBAAe,IAAI,qBAAS,CAAC,KAAM,EAAE;IACnC,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE;QACd,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,KAAK,EAAE,wBAAwB;SACpD;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"pb-sequelize.js","sourceRoot":"","sources":["../../typed-model/pb-sequelize.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,oBAAoB;AACpB,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,mBAAmB;AAEnB,yCAAsC;AAEtC;;GAEG;AACH,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;IAChC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAE/B,UAAU;AACV,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC;IAC9B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,6DAA6D;IACnE,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,KAAK;IACV,cAAc,EAAE;QACd,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,KAAK;SAC1B;KACF;CACF,CAAC,CAAC;AAEH,SAAS,CAAC,IAAI,EAAE,CAAC;AAEjB,kBAAe,SAAS,CAAC;AAEzB,yCAAyC;AACzC,oBAAoB;AACpB,yBAAyB;AACzB,sBAAsB;AACtB,aAAa;AACb,uBAAuB;AACvB,4DAA4D;AAC5D,SAAS;AACT,OAAO;AACP,MAAM"}
@@ -0,0 +1,42 @@
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
+ // order of InferAttributes & InferCreationAttributes is important.
10
+ class SubscriptionCoupon extends sequelize_1.Model {
11
+ }
12
+ SubscriptionCoupon.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
+ subscriptionPlanId: {
20
+ type: sequelize_1.DataTypes.BIGINT,
21
+ allowNull: false,
22
+ field: "subscription_plan_id",
23
+ references: {
24
+ model: subscription_plan_1.default,
25
+ },
26
+ },
27
+ name: {
28
+ type: sequelize_1.DataTypes.STRING,
29
+ field: "name",
30
+ },
31
+ code: {
32
+ type: sequelize_1.DataTypes.STRING,
33
+ field: "code",
34
+ },
35
+ createdAt: sequelize_1.DataTypes.DATE,
36
+ updatedAt: sequelize_1.DataTypes.DATE,
37
+ }, {
38
+ tableName: "subscription_coupons",
39
+ sequelize: pb_sequelize_1.default,
40
+ });
41
+ exports.default = SubscriptionCoupon;
42
+ //# sourceMappingURL=subscription-coupon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-coupon.js","sourceRoot":"","sources":["../../typed-model/subscription-coupon.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,4EAAmD;AAMnD,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,2BAAgB;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,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,kBAAe,kBAAkB,CAAC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sequelize_1 = require("sequelize");
7
7
  const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
8
8
  const user_1 = __importDefault(require("./user"));
9
+ const subscription_coupon_1 = __importDefault(require("./subscription-coupon"));
9
10
  // order of InferAttributes & InferCreationAttributes is important.
10
11
  class SubscriptionPlan extends sequelize_1.Model {
11
12
  }
@@ -20,15 +21,14 @@ SubscriptionPlan.init({
20
21
  type: sequelize_1.DataTypes.BIGINT,
21
22
  allowNull: false,
22
23
  field: "user_id",
24
+ references: {
25
+ model: user_1.default,
26
+ },
23
27
  },
24
28
  planName: {
25
29
  type: sequelize_1.DataTypes.STRING,
26
30
  field: "plan_name",
27
31
  },
28
- amountInCents: {
29
- type: sequelize_1.DataTypes.INTEGER,
30
- field: "amount_in_cents",
31
- },
32
32
  intervalCount: {
33
33
  type: sequelize_1.DataTypes.INTEGER,
34
34
  field: "interval_count",
@@ -101,5 +101,15 @@ SubscriptionPlan.hasOne(user_1.default, {
101
101
  foreignKey: "id",
102
102
  sourceKey: "userId",
103
103
  });
104
+ SubscriptionPlan.hasMany(subscription_coupon_1.default, {
105
+ foreignKey: "subscriptionPlanId",
106
+ sourceKey: "id",
107
+ onDelete: "NO ACTION",
108
+ constraints: false,
109
+ });
110
+ subscription_coupon_1.default.hasOne(SubscriptionPlan, {
111
+ foreignKey: "id",
112
+ sourceKey: "subscriptionPlanId",
113
+ });
104
114
  exports.default = SubscriptionPlan;
105
115
  //# sourceMappingURL=subscription-plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAG1B,mEAAmE;AACnE,MAAM,gBAAiB,SAAQ,iBAG9B;CAsBA;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;KACjB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,WAAW;KACnB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,iBAAiB;KACzB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,CAAC;KAChB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,QAAQ;KACvB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,KAAK;KACpB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,kBAAkB;KAC1B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EAAE,KAAK;KACpB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,iBAAiB;KACzB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB;KACzB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC;KAChB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF;;;;EAIE;AAEF,gBAAgB,CAAC,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IAC9C,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE;YACL,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IACtD,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE;YACL,MAAM;SACP;KACF,CAAC,CAAC;AACL,CAAC,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,gBAAgB,CAAC,MAAM,CAAC,cAAI,EAAE;IAC5B,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winible/winible-typed",
3
- "version": "2.2.9",
3
+ "version": "2.3.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -13,3 +13,4 @@ export { default as RecurlyAccount } from "./recurly-account";
13
13
  export { default as Withdrawal } from "./withdrawal";
14
14
  export { default as League } from "./league";
15
15
  export { default as User } from "./user";
16
+ export { default as SubscriptionCoupon } from "./subscription-coupon";
@@ -14,13 +14,33 @@ const dbUrl =
14
14
  ? process.env.TESTING_DATABASE_URL
15
15
  : process.env.DATABASE_URL;
16
16
 
17
- export default new Sequelize(dbUrl!, {
18
- logging: false,
19
- minifyAliases: true,
17
+ // Staging
18
+ const sequelize = new Sequelize({
19
+ username: "postgres",
20
+ password: "OXVdY35B776",
21
+ database: "winible",
22
+ host: "winible-v2-staging.cd9ez5rrajpu.us-east-1.rds.amazonaws.com",
23
+ dialect: "postgres",
24
+ ssl: false,
20
25
  dialectOptions: {
21
26
  ssl: {
22
27
  require: true,
23
- rejectUnauthorized: false, // <<<<<<< YOU NEED THIS
28
+ rejectUnauthorized: false,
24
29
  },
25
30
  },
26
31
  });
32
+
33
+ sequelize.sync();
34
+
35
+ export default sequelize;
36
+
37
+ // export default new Sequelize(dbUrl!, {
38
+ // logging: false,
39
+ // minifyAliases: true,
40
+ // dialectOptions: {
41
+ // ssl: {
42
+ // require: true,
43
+ // rejectUnauthorized: false, // <<<<<<< YOU NEED THIS
44
+ // },
45
+ // },
46
+ // });
@@ -0,0 +1,70 @@
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
+
12
+ type TemporalUnitType = "day" | "week" | "month" | "year";
13
+
14
+ type DiscountType = "percent" | "dollars" | "free_trial";
15
+
16
+ // order of InferAttributes & InferCreationAttributes is important.
17
+ class SubscriptionCoupon extends Model<
18
+ InferAttributes<SubscriptionCoupon>,
19
+ InferCreationAttributes<SubscriptionCoupon>
20
+ > {
21
+ // 'CreationOptional' is a special type that marks the field as optional
22
+ // when creating an instance of the model (such as using Model.create()).
23
+ declare id: CreationOptional<string>;
24
+ declare subscriptionPlanId: string;
25
+ declare name?: string;
26
+ declare code?: string;
27
+ declare discountType?: DiscountType;
28
+ declare discountPercent?: number;
29
+ declare maxRedemptions?: number;
30
+ declare redemptions?: number;
31
+ declare temporalAmount?: number;
32
+ declare temporalUnit?: TemporalUnitType;
33
+ declare createdAt: CreationOptional<Date>;
34
+ declare updatedAt: CreationOptional<Date>;
35
+ }
36
+
37
+ SubscriptionCoupon.init(
38
+ {
39
+ id: {
40
+ type: DataTypes.BIGINT,
41
+ primaryKey: true,
42
+ allowNull: false,
43
+ defaultValue: sequelize.fn("next_id"),
44
+ },
45
+ subscriptionPlanId: {
46
+ type: DataTypes.BIGINT,
47
+ allowNull: false,
48
+ field: "subscription_plan_id",
49
+ references: {
50
+ model: SubscriptionPlan,
51
+ },
52
+ },
53
+ name: {
54
+ type: DataTypes.STRING,
55
+ field: "name",
56
+ },
57
+ code: {
58
+ type: DataTypes.STRING,
59
+ field: "code",
60
+ },
61
+ createdAt: DataTypes.DATE,
62
+ updatedAt: DataTypes.DATE,
63
+ },
64
+ {
65
+ tableName: "subscription_coupons",
66
+ sequelize,
67
+ }
68
+ );
69
+
70
+ export default SubscriptionCoupon;
@@ -10,6 +10,9 @@ import {
10
10
  import sequelize from "./pb-sequelize";
11
11
  import User from "./user";
12
12
  import SubscriptionPlanOnUsers from "./subscription-plan-on-users";
13
+ import SubscriptionCoupon from "./subscription-coupon";
14
+
15
+ type IntervalUnitType = "months" | "days";
13
16
 
14
17
  // order of InferAttributes & InferCreationAttributes is important.
15
18
  class SubscriptionPlan extends Model<
@@ -21,11 +24,10 @@ class SubscriptionPlan extends Model<
21
24
  declare id: CreationOptional<string>;
22
25
  declare userId: string;
23
26
  declare planName?: string;
24
- declare amountInCents?: number;
27
+ declare planDescription?: string;
28
+ declare intervalUnit: CreationOptional<IntervalUnitType>;
25
29
  declare intervalCount?: number;
26
- declare intervalUnit: CreationOptional<"months" | "days">;
27
30
  declare isArchived?: boolean;
28
- declare planDescription?: string;
29
31
  declare oneTimePurchase?: boolean;
30
32
  declare accessEndDate?: Date;
31
33
  declare recurlyPlanId?: string;
@@ -51,15 +53,14 @@ SubscriptionPlan.init(
51
53
  type: DataTypes.BIGINT,
52
54
  allowNull: false,
53
55
  field: "user_id",
56
+ references: {
57
+ model: User,
58
+ },
54
59
  },
55
60
  planName: {
56
61
  type: DataTypes.STRING,
57
62
  field: "plan_name",
58
63
  },
59
- amountInCents: {
60
- type: DataTypes.INTEGER,
61
- field: "amount_in_cents",
62
- },
63
64
  intervalCount: {
64
65
  type: DataTypes.INTEGER,
65
66
  field: "interval_count",
@@ -140,4 +141,16 @@ SubscriptionPlan.hasOne(User, {
140
141
  sourceKey: "userId",
141
142
  });
142
143
 
144
+ SubscriptionPlan.hasMany(SubscriptionCoupon, {
145
+ foreignKey: "subscriptionPlanId",
146
+ sourceKey: "id",
147
+ onDelete: "NO ACTION",
148
+ constraints: false,
149
+ });
150
+
151
+ SubscriptionCoupon.hasOne(SubscriptionPlan, {
152
+ foreignKey: "id",
153
+ sourceKey: "subscriptionPlanId",
154
+ });
155
+
143
156
  export default SubscriptionPlan;