@winible/winible-typed 2.9.3 → 2.11.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/README.md +7 -33
- package/dist/typed-model/index.js +3 -1
- package/dist/typed-model/index.js.map +1 -1
- package/dist/typed-model/integration.js +59 -0
- package/dist/typed-model/integration.js.map +1 -0
- package/dist/typed-model/store.js +4 -0
- package/dist/typed-model/store.js.map +1 -1
- package/dist/typed-model/subscription-plan.js.map +1 -1
- package/package.json +1 -1
- package/typed-model/index.ts +1 -0
- package/typed-model/integration.ts +83 -0
- package/typed-model/store.ts +5 -0
- package/typed-model/subscription-plan.ts +0 -1
package/README.md
CHANGED
@@ -1,35 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# Updating Typescript Models
|
2
2
|
|
3
|
-
|
4
|
-
1) Create the migration file
|
5
|
-
```
|
6
|
-
npx sequelize-cli migration:generate --name migration-skeleton
|
7
|
-
```
|
8
|
-
2) Update the migration file in `migrations/migration-skeleton-xxxxxxxxx` to .ts file
|
9
|
-
3) Copy in typescript code
|
10
|
-
```
|
11
|
-
import { QueryInterface, Sequelize, DataTypes } from "sequelize";
|
3
|
+
This must be done before you deploy the FE and BE
|
12
4
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
},
|
19
|
-
|
20
|
-
async down(queryInterface: QueryInterface, sequelize: Sequelize) {
|
21
|
-
},
|
22
|
-
};
|
23
|
-
```
|
24
|
-
4) Run migration in staging
|
25
|
-
```
|
26
|
-
tsc && npx sequelize-cli db:migrate --migrations-path dist/migrations
|
27
|
-
```
|
28
|
-
5) Run migration in production
|
29
|
-
```
|
30
|
-
tsc && npx sequelize-cli db:migrate --migrations-path dist/migrations --env production
|
31
|
-
```
|
32
|
-
|
33
|
-
pg_dump -s -h winible-v2-staging.cd9ez5rrajpu.us-east-1.rds.amazonaws.com -d winible -U postgres > v2dump.sql
|
34
|
-
|
35
|
-
sql2dbml --postgres v2dump.sql -o mydatabase.dbml
|
5
|
+
1) PR your commits into main
|
6
|
+
2) run `npm version minor|major|patch` (this will update the npm package version and make a commit)
|
7
|
+
3) run `git push origin main`
|
8
|
+
4) run `npm run publish`
|
9
|
+
5) update your winible-typed version in winible-frontend and winible-backend
|
@@ -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.UsersOnCreators = exports.Store = exports.Application = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.LeagueOnUsers = exports.League = exports.Withdrawal = exports.RecurlyAccount = 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.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.LeagueOnUsers = exports.League = exports.Withdrawal = exports.RecurlyAccount = 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");
|
@@ -50,6 +50,8 @@ var store_1 = require("./store");
|
|
50
50
|
Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return __importDefault(store_1).default; } });
|
51
51
|
var users_on_creators_1 = require("./users_on_creators");
|
52
52
|
Object.defineProperty(exports, "UsersOnCreators", { enumerable: true, get: function () { return __importDefault(users_on_creators_1).default; } });
|
53
|
+
var integration_1 = require("./integration");
|
54
|
+
Object.defineProperty(exports, "Integration", { enumerable: true, get: function () { return __importDefault(integration_1).default; } });
|
53
55
|
var pb_sequelize_1 = require("./pb-sequelize");
|
54
56
|
Object.defineProperty(exports, "pbSequelize", { enumerable: true, get: function () { return __importDefault(pb_sequelize_1).default; } });
|
55
57
|
//# 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,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,+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,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,+CAAwD;AAA/C,4HAAA,OAAO,OAAe"}
|
@@ -0,0 +1,59 @@
|
|
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
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
10
|
+
class Integration extends sequelize_1.Model {
|
11
|
+
}
|
12
|
+
Integration.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
|
+
userId: {
|
20
|
+
type: sequelize_1.DataTypes.BIGINT,
|
21
|
+
allowNull: false,
|
22
|
+
field: "user_id",
|
23
|
+
references: {
|
24
|
+
model: user_1.default,
|
25
|
+
},
|
26
|
+
},
|
27
|
+
externalId: {
|
28
|
+
type: sequelize_1.DataTypes.STRING,
|
29
|
+
allowNull: true,
|
30
|
+
field: "external_id",
|
31
|
+
},
|
32
|
+
provider: {
|
33
|
+
type: sequelize_1.DataTypes.STRING,
|
34
|
+
allowNull: true,
|
35
|
+
field: "provider",
|
36
|
+
},
|
37
|
+
metadata: {
|
38
|
+
type: sequelize_1.DataTypes.JSON,
|
39
|
+
allowNull: true,
|
40
|
+
field: "metadata",
|
41
|
+
},
|
42
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
43
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
44
|
+
}, {
|
45
|
+
tableName: "integrations",
|
46
|
+
sequelize: pb_sequelize_1.default,
|
47
|
+
});
|
48
|
+
user_1.default.hasMany(Integration, {
|
49
|
+
foreignKey: "userId",
|
50
|
+
sourceKey: "id",
|
51
|
+
onDelete: "NO ACTION",
|
52
|
+
constraints: false,
|
53
|
+
});
|
54
|
+
Integration.hasOne(user_1.default, {
|
55
|
+
foreignKey: "id",
|
56
|
+
sourceKey: "userId",
|
57
|
+
});
|
58
|
+
exports.default = Integration;
|
59
|
+
//# sourceMappingURL=integration.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../typed-model/integration.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAI1B,mEAAmE;AACnE,MAAM,WAAY,SAAQ,iBAGzB;CAWA;AAED,WAAW,CAAC,IAAI,CACd;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,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,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,cAAc;IACzB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IACxB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,WAAW,CAAC,MAAM,CAAC,cAAI,EAAE;IACvB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,kBAAe,WAAW,CAAC"}
|
@@ -116,6 +116,10 @@ Store.init({
|
|
116
116
|
type: sequelize_1.DataTypes.STRING,
|
117
117
|
field: "about_banner_image_url",
|
118
118
|
},
|
119
|
+
hasFreePlan: {
|
120
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
121
|
+
field: "has_free_plan",
|
122
|
+
},
|
119
123
|
createdAt: sequelize_1.DataTypes.DATE,
|
120
124
|
updatedAt: sequelize_1.DataTypes.DATE,
|
121
125
|
}, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../typed-model/store.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,wBAAyB;AAEzB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,KAAM,SAAQ,iBAGnB;
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../typed-model/store.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,kDAA0B;
|
1
|
+
{"version":3,"file":"subscription-plan.js","sourceRoot":"","sources":["../../typed-model/subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAI1B,mEAAmE;AACnE,MAAM,gBAAiB,SAAQ,iBAG9B;CAmBA;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;SACZ;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,WAAW;KACnB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,KAAK,EAAE,kBAAkB;KAC1B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,KAAK;KACpB;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"}
|
package/package.json
CHANGED
package/typed-model/index.ts
CHANGED
@@ -21,4 +21,5 @@ export { default as NotificationPreference } from "./notification-preference";
|
|
21
21
|
export { default as Application } from "./application";
|
22
22
|
export { default as Store } from "./store";
|
23
23
|
export { default as UsersOnCreators } from "./users_on_creators";
|
24
|
+
export { default as Integration } from "./integration";
|
24
25
|
export { default as pbSequelize } from "./pb-sequelize";
|
@@ -0,0 +1,83 @@
|
|
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
|
+
|
12
|
+
type IntegrationProviderType = "stripe";
|
13
|
+
|
14
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
15
|
+
class Integration extends Model<
|
16
|
+
InferAttributes<Integration>,
|
17
|
+
InferCreationAttributes<Integration>
|
18
|
+
> {
|
19
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
20
|
+
// when creating an instance of the model (such as using Model.create()).
|
21
|
+
declare id: CreationOptional<string>;
|
22
|
+
declare userId: string;
|
23
|
+
declare externalId: string;
|
24
|
+
declare provider: IntegrationProviderType;
|
25
|
+
declare metadata: string;
|
26
|
+
|
27
|
+
declare createdAt: CreationOptional<Date>;
|
28
|
+
declare updatedAt: CreationOptional<Date>;
|
29
|
+
}
|
30
|
+
|
31
|
+
Integration.init(
|
32
|
+
{
|
33
|
+
id: {
|
34
|
+
type: DataTypes.BIGINT,
|
35
|
+
primaryKey: true,
|
36
|
+
allowNull: false,
|
37
|
+
defaultValue: sequelize.fn("next_id"),
|
38
|
+
},
|
39
|
+
userId: {
|
40
|
+
type: DataTypes.BIGINT,
|
41
|
+
allowNull: false,
|
42
|
+
field: "user_id",
|
43
|
+
references: {
|
44
|
+
model: User,
|
45
|
+
},
|
46
|
+
},
|
47
|
+
externalId: {
|
48
|
+
type: DataTypes.STRING,
|
49
|
+
allowNull: true,
|
50
|
+
field: "external_id",
|
51
|
+
},
|
52
|
+
provider: {
|
53
|
+
type: DataTypes.STRING,
|
54
|
+
allowNull: true,
|
55
|
+
field: "provider",
|
56
|
+
},
|
57
|
+
metadata: {
|
58
|
+
type: DataTypes.JSON,
|
59
|
+
allowNull: true,
|
60
|
+
field: "metadata",
|
61
|
+
},
|
62
|
+
createdAt: DataTypes.DATE,
|
63
|
+
updatedAt: DataTypes.DATE,
|
64
|
+
},
|
65
|
+
{
|
66
|
+
tableName: "integrations",
|
67
|
+
sequelize,
|
68
|
+
}
|
69
|
+
);
|
70
|
+
|
71
|
+
User.hasMany(Integration, {
|
72
|
+
foreignKey: "userId",
|
73
|
+
sourceKey: "id",
|
74
|
+
onDelete: "NO ACTION",
|
75
|
+
constraints: false,
|
76
|
+
});
|
77
|
+
|
78
|
+
Integration.hasOne(User, {
|
79
|
+
foreignKey: "id",
|
80
|
+
sourceKey: "userId",
|
81
|
+
});
|
82
|
+
|
83
|
+
export default Integration;
|
package/typed-model/store.ts
CHANGED
@@ -42,6 +42,7 @@ class Store extends Model<
|
|
42
42
|
declare aboutHeadline?: string;
|
43
43
|
declare aboutDescription?: string;
|
44
44
|
declare aboutBannerImageUrl?: string;
|
45
|
+
declare hasFreePlan?: boolean;
|
45
46
|
|
46
47
|
declare createdAt: CreationOptional<Date>;
|
47
48
|
declare updatedAt: CreationOptional<Date>;
|
@@ -155,6 +156,10 @@ Store.init(
|
|
155
156
|
type: DataTypes.STRING,
|
156
157
|
field: "about_banner_image_url",
|
157
158
|
},
|
159
|
+
hasFreePlan: {
|
160
|
+
type: DataTypes.BOOLEAN,
|
161
|
+
field: "has_free_plan",
|
162
|
+
},
|
158
163
|
createdAt: DataTypes.DATE,
|
159
164
|
updatedAt: DataTypes.DATE,
|
160
165
|
},
|
@@ -11,7 +11,6 @@ import sequelize from "./pb-sequelize";
|
|
11
11
|
import User from "./user";
|
12
12
|
import SubscriptionPlanOnUsers from "./subscription-plan-on-users";
|
13
13
|
import SubscriptionPricingOption from "./subscription-pricing-option";
|
14
|
-
import SubscriptionCoupon from "./subscription-coupon";
|
15
14
|
|
16
15
|
// order of InferAttributes & InferCreationAttributes is important.
|
17
16
|
class SubscriptionPlan extends Model<
|