@winible/winible-typed 2.23.9 → 2.24.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.
@@ -42,6 +42,11 @@ FreeSubscriptionPlan.init({
42
42
  field: "order",
43
43
  defaultValue: 0,
44
44
  },
45
+ metadata: {
46
+ type: sequelize_1.DataTypes.JSONB,
47
+ allowNull: true,
48
+ field: "metadata",
49
+ },
45
50
  createdAt: sequelize_1.DataTypes.DATE,
46
51
  updatedAt: sequelize_1.DataTypes.DATE,
47
52
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"free-subscription-plan.js","sourceRoot":"","sources":["../../typed-model/free-subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,oBAAqB,SAAQ,iBAGlC;CAYA;AAED,oBAAoB,CAAC,IAAI,CACvB;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;IAED,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;IACjC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,oBAAoB,CAAC,MAAM,CAAC,cAAI,EAAE;IAChC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,kBAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"free-subscription-plan.js","sourceRoot":"","sources":["../../typed-model/free-subscription-plan.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,oBAAqB,SAAQ,iBAGlC;CAkBA;AAED,oBAAoB,CAAC,IAAI,CACvB;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,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,KAAK;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KAClB;IAED,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;IACjC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,oBAAoB,CAAC,MAAM,CAAC,cAAI,EAAE;IAChC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAEH,kBAAe,oBAAoB,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.AffiliateLinkType = exports.AffiliateCode = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.TelegramIntegrationLog = 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.LimitedOffer = exports.AffiliateLinkType = exports.AffiliateCode = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.TelegramIntegrationLog = 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");
@@ -88,6 +88,8 @@ var affiliate_code_1 = require("./affiliate-code");
88
88
  Object.defineProperty(exports, "AffiliateCode", { enumerable: true, get: function () { return __importDefault(affiliate_code_1).default; } });
89
89
  var affiliate_links_types_1 = require("./affiliate-links-types");
90
90
  Object.defineProperty(exports, "AffiliateLinkType", { enumerable: true, get: function () { return __importDefault(affiliate_links_types_1).default; } });
91
+ var limited_offer_1 = require("./limited-offer");
92
+ Object.defineProperty(exports, "LimitedOffer", { enumerable: true, get: function () { return __importDefault(limited_offer_1).default; } });
91
93
  var pb_sequelize_1 = require("./pb-sequelize");
92
94
  Object.defineProperty(exports, "pbSequelize", { enumerable: true, get: function () { return __importDefault(pb_sequelize_1).default; } });
93
95
  //# 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,uEAA+E;AAAtE,mJAAA,OAAO,OAA0B;AAC1C,+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,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,iEAAuE;AAA9D,2IAAA,OAAO,OAAqB;AACrC,+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,uEAA+E;AAAtE,mJAAA,OAAO,OAA0B;AAC1C,+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,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,iEAAuE;AAA9D,2IAAA,OAAO,OAAqB;AACrC,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,+CAAwD;AAA/C,4HAAA,OAAO,OAAe"}
@@ -0,0 +1,60 @@
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 league_1 = __importDefault(require("./league"));
8
+ const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
9
+ const user_1 = __importDefault(require("./user"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class LeagueUser extends sequelize_1.Model {
12
+ }
13
+ LeagueUser.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
+ leagueId: {
21
+ type: sequelize_1.DataTypes.BIGINT,
22
+ field: "league_id",
23
+ allowNull: false,
24
+ },
25
+ userId: {
26
+ type: sequelize_1.DataTypes.BIGINT,
27
+ field: "user_id",
28
+ allowNull: false,
29
+ },
30
+ createdAt: sequelize_1.DataTypes.DATE,
31
+ updatedAt: sequelize_1.DataTypes.DATE,
32
+ }, {
33
+ // Other model options go here
34
+ tableName: "league_users",
35
+ sequelize: pb_sequelize_1.default,
36
+ });
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,
47
+ });
48
+ LeagueUser.hasOne(user_1.default, {
49
+ foreignKey: "id",
50
+ sourceKey: "userId",
51
+ onDelete: "NO ACTION",
52
+ constraints: false,
53
+ });
54
+ user_1.default.hasMany(LeagueUser, {
55
+ foreignKey: "userId",
56
+ onDelete: "NO ACTION",
57
+ constraints: false,
58
+ });
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,58 @@
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 LimitedOffer extends sequelize_1.Model {
11
+ }
12
+ LimitedOffer.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
+ maxQuantity: {
28
+ type: sequelize_1.DataTypes.BIGINT,
29
+ allowNull: false,
30
+ field: "max_quantity",
31
+ },
32
+ quantitySold: {
33
+ type: sequelize_1.DataTypes.BIGINT,
34
+ allowNull: false,
35
+ field: "quantity_sold",
36
+ },
37
+ status: {
38
+ type: sequelize_1.DataTypes.ENUM("active", "inactive"),
39
+ allowNull: false,
40
+ },
41
+ createdAt: sequelize_1.DataTypes.DATE,
42
+ updatedAt: sequelize_1.DataTypes.DATE,
43
+ }, {
44
+ tableName: "limited_offers",
45
+ sequelize: pb_sequelize_1.default,
46
+ });
47
+ subscription_plan_1.default.hasMany(LimitedOffer, {
48
+ foreignKey: "subscriptionPlanId",
49
+ sourceKey: "id",
50
+ onDelete: "NO ACTION",
51
+ constraints: false,
52
+ });
53
+ LimitedOffer.belongsTo(subscription_plan_1.default, {
54
+ foreignKey: "subscriptionPlanId",
55
+ targetKey: "id",
56
+ });
57
+ exports.default = LimitedOffer;
58
+ //# sourceMappingURL=limited-offer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limited-offer.js","sourceRoot":"","sources":["../../typed-model/limited-offer.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,4EAAmD;AAEnD,mEAAmE;AACnE,MAAM,YAAa,SAAQ,iBAG1B;CASA;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,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,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,eAAe;KACvB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC1C,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,2BAAgB,CAAC,OAAO,CAAC,YAAY,EAAE;IACrC,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,YAAY,CAAC,SAAS,CAAC,2BAAgB,EAAE;IACvC,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,YAAY,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"}
@@ -68,6 +68,11 @@ SubscriptionPlan.init({
68
68
  field: "free_trial_days",
69
69
  defaultValue: 0,
70
70
  },
71
+ metadata: {
72
+ type: sequelize_1.DataTypes.JSONB,
73
+ allowNull: true,
74
+ field: "metadata",
75
+ },
71
76
  createdAt: sequelize_1.DataTypes.DATE,
72
77
  updatedAt: sequelize_1.DataTypes.DATE,
73
78
  }, {
@@ -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,wCAAoD;AAEpD,mEAAmE;AACnE,MAAM,gBAAiB,SAAQ,iBAG9B;CAyBA;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,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC;KAChB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,4BAAoB,CAAC,CAAC;QAC5D,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,4BAAoB,CAAC,SAAS;KAC7C;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,YAAY;QACnB,YAAY,EAAE,SAAS;KACxB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,SAAS;KACxB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,CAAC;KAChB;IAED,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.23.9",
3
+ "version": "2.24.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -22,6 +22,12 @@ class FreeSubscriptionPlan extends Model<
22
22
  declare planDescription?: string;
23
23
  declare isArchived?: boolean;
24
24
  declare order?: number;
25
+ declare metadata?: {
26
+ sendWelcomeMessage?: boolean;
27
+ welcomeMessage?: string;
28
+ sendWelcomeMessageWithDelay?: boolean;
29
+ welcomeMessageDelay?: number;
30
+ };
25
31
 
26
32
  declare createdAt: CreationOptional<Date>;
27
33
  declare updatedAt: CreationOptional<Date>;
@@ -61,6 +67,11 @@ FreeSubscriptionPlan.init(
61
67
  field: "order",
62
68
  defaultValue: 0,
63
69
  },
70
+ metadata: {
71
+ type: DataTypes.JSONB,
72
+ allowNull: true,
73
+ field: "metadata",
74
+ },
64
75
 
65
76
  createdAt: DataTypes.DATE,
66
77
  updatedAt: DataTypes.DATE,
@@ -40,4 +40,5 @@ export { default as CancellationOffer } from "./cancellation_offer";
40
40
  export { default as CancellationReason } from "./cancellation_reason";
41
41
  export { default as AffiliateCode } from "./affiliate-code";
42
42
  export { default as AffiliateLinkType } from "./affiliate-links-types";
43
+ export { default as LimitedOffer } from "./limited-offer";
43
44
  export { default as pbSequelize } from "./pb-sequelize";
@@ -0,0 +1,78 @@
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
+ // order of InferAttributes & InferCreationAttributes is important.
13
+ class LimitedOffer extends Model<
14
+ InferAttributes<LimitedOffer>,
15
+ InferCreationAttributes<LimitedOffer>
16
+ > {
17
+ declare id: CreationOptional<string>;
18
+ declare subscriptionPlanId: string;
19
+ declare maxQuantity: number;
20
+ declare quantitySold: number;
21
+ declare status: "active" | "inactive";
22
+
23
+ declare createdAt: CreationOptional<Date>;
24
+ declare updatedAt: CreationOptional<Date>;
25
+ }
26
+
27
+ LimitedOffer.init(
28
+ {
29
+ id: {
30
+ type: DataTypes.BIGINT,
31
+ primaryKey: true,
32
+ allowNull: false,
33
+ defaultValue: sequelize.fn("next_id"),
34
+ },
35
+ subscriptionPlanId: {
36
+ type: DataTypes.BIGINT,
37
+ allowNull: false,
38
+ field: "subscription_plan_id",
39
+ references: {
40
+ model: SubscriptionPlan,
41
+ },
42
+ },
43
+ maxQuantity: {
44
+ type: DataTypes.BIGINT,
45
+ allowNull: false,
46
+ field: "max_quantity",
47
+ },
48
+ quantitySold: {
49
+ type: DataTypes.BIGINT,
50
+ allowNull: false,
51
+ field: "quantity_sold",
52
+ },
53
+ status: {
54
+ type: DataTypes.ENUM("active", "inactive"),
55
+ allowNull: false,
56
+ },
57
+ createdAt: DataTypes.DATE,
58
+ updatedAt: DataTypes.DATE,
59
+ },
60
+ {
61
+ tableName: "limited_offers",
62
+ sequelize,
63
+ }
64
+ );
65
+
66
+ SubscriptionPlan.hasMany(LimitedOffer, {
67
+ foreignKey: "subscriptionPlanId",
68
+ sourceKey: "id",
69
+ onDelete: "NO ACTION",
70
+ constraints: false,
71
+ });
72
+
73
+ LimitedOffer.belongsTo(SubscriptionPlan, {
74
+ foreignKey: "subscriptionPlanId",
75
+ targetKey: "id",
76
+ });
77
+
78
+ export default LimitedOffer;
@@ -31,6 +31,12 @@ class SubscriptionPlan extends Model<
31
31
  declare startDate?: Date;
32
32
  declare endDate?: Date;
33
33
  declare freeTrialDays?: number;
34
+ declare metadata?: {
35
+ sendWelcomeMessage?: boolean;
36
+ welcomeMessage?: string;
37
+ sendWelcomeMessageWithDelay?: boolean;
38
+ welcomeMessageDelay?: number;
39
+ };
34
40
 
35
41
  declare createdAt: CreationOptional<Date>;
36
42
  declare updatedAt: CreationOptional<Date>;
@@ -103,6 +109,11 @@ SubscriptionPlan.init(
103
109
  field: "free_trial_days",
104
110
  defaultValue: 0,
105
111
  },
112
+ metadata: {
113
+ type: DataTypes.JSONB,
114
+ allowNull: true,
115
+ field: "metadata",
116
+ },
106
117
 
107
118
  createdAt: DataTypes.DATE,
108
119
  updatedAt: DataTypes.DATE,