@winible/winible-typed 2.10.0 → 2.12.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 +5 -1
- package/dist/typed-model/index.js.map +1 -1
- package/dist/typed-model/sport-on-posts.js +59 -0
- package/dist/typed-model/sport-on-posts.js.map +1 -0
- package/dist/typed-model/sport.js +30 -0
- package/dist/typed-model/sport.js.map +1 -0
- package/dist/typed-model/store.js +4 -0
- package/dist/typed-model/store.js.map +1 -1
- package/package.json +1 -1
- package/typed-model/index.ts +2 -0
- package/typed-model/sport-on-posts.ts +80 -0
- package/typed-model/sport.ts +46 -0
- package/typed-model/store.ts +5 -0
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.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;
|
6
|
+
exports.pbSequelize = 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.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");
|
@@ -52,6 +52,10 @@ 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
53
|
var integration_1 = require("./integration");
|
54
54
|
Object.defineProperty(exports, "Integration", { enumerable: true, get: function () { return __importDefault(integration_1).default; } });
|
55
|
+
var sport_1 = require("./sport");
|
56
|
+
Object.defineProperty(exports, "Sport", { enumerable: true, get: function () { return __importDefault(sport_1).default; } });
|
57
|
+
var sport_on_posts_1 = require("./sport-on-posts");
|
58
|
+
Object.defineProperty(exports, "SportOnPosts", { enumerable: true, get: function () { return __importDefault(sport_on_posts_1).default; } });
|
55
59
|
var pb_sequelize_1 = require("./pb-sequelize");
|
56
60
|
Object.defineProperty(exports, "pbSequelize", { enumerable: true, get: function () { return __importDefault(pb_sequelize_1).default; } });
|
57
61
|
//# 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,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,+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,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,mDAA2D;AAAlD,+HAAA,OAAO,OAAgB;AAChC,+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 post_1 = __importDefault(require("./post"));
|
9
|
+
const sport_1 = __importDefault(require("./sport"));
|
10
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
11
|
+
class SportOnPosts extends sequelize_1.Model {
|
12
|
+
}
|
13
|
+
SportOnPosts.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
|
+
sportId: {
|
21
|
+
type: sequelize_1.DataTypes.BIGINT,
|
22
|
+
field: "sport_id",
|
23
|
+
allowNull: false,
|
24
|
+
},
|
25
|
+
postId: {
|
26
|
+
type: sequelize_1.DataTypes.BIGINT,
|
27
|
+
field: "post_id",
|
28
|
+
allowNull: false,
|
29
|
+
},
|
30
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
31
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
32
|
+
}, {
|
33
|
+
tableName: "sport_on_posts",
|
34
|
+
sequelize: pb_sequelize_1.default,
|
35
|
+
});
|
36
|
+
SportOnPosts.hasOne(post_1.default, {
|
37
|
+
foreignKey: "id",
|
38
|
+
sourceKey: "postId",
|
39
|
+
onDelete: "NO ACTION",
|
40
|
+
constraints: false,
|
41
|
+
});
|
42
|
+
post_1.default.hasMany(SportOnPosts, {
|
43
|
+
foreignKey: "postId",
|
44
|
+
onDelete: "NO ACTION",
|
45
|
+
constraints: false,
|
46
|
+
});
|
47
|
+
SportOnPosts.hasOne(sport_1.default, {
|
48
|
+
foreignKey: "id",
|
49
|
+
sourceKey: "sportId",
|
50
|
+
onDelete: "NO ACTION",
|
51
|
+
constraints: false,
|
52
|
+
});
|
53
|
+
sport_1.default.hasMany(SportOnPosts, {
|
54
|
+
foreignKey: "sportId",
|
55
|
+
onDelete: "NO ACTION",
|
56
|
+
constraints: false,
|
57
|
+
});
|
58
|
+
exports.default = SportOnPosts;
|
59
|
+
//# sourceMappingURL=sport-on-posts.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sport-on-posts.js","sourceRoot":"","sources":["../../typed-model/sport-on-posts.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,oDAA4B;AAE5B,mEAAmE;AACnE,MAAM,YAAa,SAAQ,iBAG1B;CAQA;AAED,YAAY,CAAC,IAAI,CACf;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,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,UAAU;QACjB,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,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,YAAY,CAAC,MAAM,CAAC,cAAI,EAAE;IACxB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IACzB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,YAAY,CAAC,MAAM,CAAC,eAAK,EAAE;IACzB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,eAAK,CAAC,OAAO,CAAC,YAAY,EAAE;IAC1B,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC"}
|
@@ -0,0 +1,30 @@
|
|
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 Sport extends sequelize_1.Model {
|
10
|
+
}
|
11
|
+
Sport.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
|
+
sportName: {
|
19
|
+
type: sequelize_1.DataTypes.STRING,
|
20
|
+
field: "sport_name",
|
21
|
+
},
|
22
|
+
createdAt: sequelize_1.DataTypes.DATE,
|
23
|
+
updatedAt: sequelize_1.DataTypes.DATE,
|
24
|
+
}, {
|
25
|
+
// Other model options go here
|
26
|
+
tableName: "sports",
|
27
|
+
sequelize: pb_sequelize_1.default,
|
28
|
+
});
|
29
|
+
exports.default = Sport;
|
30
|
+
//# sourceMappingURL=sport.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sport.js","sourceRoot":"","sources":["../../typed-model/sport.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,KAAM,SAAQ,iBAGnB;CAOA;AAED,KAAK,CAAC,IAAI,CACR;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,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,KAAK,EAAE,YAAY;KACpB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,KAAK,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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"}
|
package/package.json
CHANGED
package/typed-model/index.ts
CHANGED
@@ -22,4 +22,6 @@ 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
24
|
export { default as Integration } from "./integration";
|
25
|
+
export { default as Sport } from "./sport";
|
26
|
+
export { default as SportOnPosts } from "./sport-on-posts";
|
25
27
|
export { default as pbSequelize } from "./pb-sequelize";
|
@@ -0,0 +1,80 @@
|
|
1
|
+
import {
|
2
|
+
Model,
|
3
|
+
InferAttributes,
|
4
|
+
InferCreationAttributes,
|
5
|
+
CreationOptional,
|
6
|
+
DataTypes,
|
7
|
+
} from "sequelize";
|
8
|
+
|
9
|
+
import sequelize from "./pb-sequelize";
|
10
|
+
import Post from "./post";
|
11
|
+
import Sport from "./sport";
|
12
|
+
|
13
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
14
|
+
class SportOnPosts extends Model<
|
15
|
+
InferAttributes<SportOnPosts>,
|
16
|
+
InferCreationAttributes<SportOnPosts>
|
17
|
+
> {
|
18
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
19
|
+
// when creating an instance of the model (such as using Model.create()).
|
20
|
+
declare id: CreationOptional<string>;
|
21
|
+
declare sportId: string;
|
22
|
+
declare postId: string;
|
23
|
+
declare createdAt: CreationOptional<Date>;
|
24
|
+
declare updatedAt: CreationOptional<Date>;
|
25
|
+
}
|
26
|
+
|
27
|
+
SportOnPosts.init(
|
28
|
+
{
|
29
|
+
id: {
|
30
|
+
type: DataTypes.BIGINT,
|
31
|
+
primaryKey: true,
|
32
|
+
allowNull: false,
|
33
|
+
defaultValue: sequelize.fn("next_id"),
|
34
|
+
},
|
35
|
+
sportId: {
|
36
|
+
type: DataTypes.BIGINT,
|
37
|
+
field: "sport_id",
|
38
|
+
allowNull: false,
|
39
|
+
},
|
40
|
+
postId: {
|
41
|
+
type: DataTypes.BIGINT,
|
42
|
+
field: "post_id",
|
43
|
+
allowNull: false,
|
44
|
+
},
|
45
|
+
createdAt: DataTypes.DATE,
|
46
|
+
updatedAt: DataTypes.DATE,
|
47
|
+
},
|
48
|
+
{
|
49
|
+
tableName: "sport_on_posts",
|
50
|
+
sequelize,
|
51
|
+
}
|
52
|
+
);
|
53
|
+
|
54
|
+
SportOnPosts.hasOne(Post, {
|
55
|
+
foreignKey: "id",
|
56
|
+
sourceKey: "postId",
|
57
|
+
onDelete: "NO ACTION",
|
58
|
+
constraints: false,
|
59
|
+
});
|
60
|
+
|
61
|
+
Post.hasMany(SportOnPosts, {
|
62
|
+
foreignKey: "postId",
|
63
|
+
onDelete: "NO ACTION",
|
64
|
+
constraints: false,
|
65
|
+
});
|
66
|
+
|
67
|
+
SportOnPosts.hasOne(Sport, {
|
68
|
+
foreignKey: "id",
|
69
|
+
sourceKey: "sportId",
|
70
|
+
onDelete: "NO ACTION",
|
71
|
+
constraints: false,
|
72
|
+
});
|
73
|
+
|
74
|
+
Sport.hasMany(SportOnPosts, {
|
75
|
+
foreignKey: "sportId",
|
76
|
+
onDelete: "NO ACTION",
|
77
|
+
constraints: false,
|
78
|
+
});
|
79
|
+
|
80
|
+
export default SportOnPosts;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import {
|
2
|
+
Model,
|
3
|
+
InferAttributes,
|
4
|
+
InferCreationAttributes,
|
5
|
+
CreationOptional,
|
6
|
+
DataTypes,
|
7
|
+
} from "sequelize";
|
8
|
+
|
9
|
+
import sequelize from "./pb-sequelize";
|
10
|
+
|
11
|
+
// order of InferAttributes & InferCreationAttributes is important.
|
12
|
+
class Sport extends Model<
|
13
|
+
InferAttributes<Sport>,
|
14
|
+
InferCreationAttributes<Sport>
|
15
|
+
> {
|
16
|
+
// 'CreationOptional' is a special type that marks the field as optional
|
17
|
+
// when creating an instance of the model (such as using Model.create()).
|
18
|
+
declare id: CreationOptional<string>;
|
19
|
+
declare sportName: string;
|
20
|
+
declare createdAt: CreationOptional<Date>;
|
21
|
+
declare updatedAt: CreationOptional<Date>;
|
22
|
+
}
|
23
|
+
|
24
|
+
Sport.init(
|
25
|
+
{
|
26
|
+
id: {
|
27
|
+
type: DataTypes.BIGINT,
|
28
|
+
primaryKey: true,
|
29
|
+
allowNull: false,
|
30
|
+
defaultValue: sequelize.fn("next_id"),
|
31
|
+
},
|
32
|
+
sportName: {
|
33
|
+
type: DataTypes.STRING,
|
34
|
+
field: "sport_name",
|
35
|
+
},
|
36
|
+
createdAt: DataTypes.DATE,
|
37
|
+
updatedAt: DataTypes.DATE,
|
38
|
+
},
|
39
|
+
{
|
40
|
+
// Other model options go here
|
41
|
+
tableName: "sports",
|
42
|
+
sequelize,
|
43
|
+
}
|
44
|
+
);
|
45
|
+
|
46
|
+
export default Sport;
|
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
|
},
|