@winible/winible-typed 2.101.0 → 2.103.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.
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UsersOnBets = exports.Bet = exports.LimitedOffer = exports.AffiliateLinkType = exports.AffiliateCode = exports.CancellationReason = exports.CancellationOffer = exports.PrivateFeedUsers = exports.FeaturedCreator = exports.PostsOnIntegrations = exports.DiscordIntegrationLog = exports.TelegramIntegrationInviteLink = exports.TelegramIntegrationCode = exports.TelegramIntegrationLog = exports.SubscriberTelegramIntegration = exports.TelegramIntegration = exports.StoresOnOrganizations = exports.UsersOnOrganizations = exports.Organization = exports.FailedTransactions = exports.Whitelist = exports.SubscriberDiscordIntegration = exports.DiscordIntegration = exports.SportOnPosts = exports.Sport = exports.Integration = exports.UsersOnCreators = exports.Store = exports.Application = exports.NewNotificationPreference = exports.NotificationPreference = exports.SubscribersOnCreators = exports.SubscriptionPricingOptionOnCoupons = exports.User = exports.Withdrawal = exports.RecurlyAccount = exports.FreeSubscriptionPlan = exports.SubscriptionPricingOption = exports.SubscriptionCoupon = exports.SubscriptionPlanOnPost = exports.SubscriptionPlanOnUsers = exports.SubscriptionPlan = exports.PostsOnUsers = exports.Post = exports.PasswordTokens = exports.Notification = exports.Media = exports.MediaAsset = exports.Transaction = exports.ContentLike = void 0;
7
- exports.pbSequelize = exports.BannerClicks = exports.CreatorPayouts = exports.PartnerRevenueReports = exports.CreatorRevshareSettings = exports.Partner = exports.BannerCreative = exports.SportsbookOnMarket = exports.Dispute = exports.DefaultCompliancePolicy = exports.ParlaysOnBets = exports.OddsOnParlays = exports.OddsOnBets = exports.ComplianceRuleSportsbook = exports.Parlay = exports.Odd = exports.AffiliateLink = exports.MarketOnLeague = exports.League = exports.ComplianceRule = exports.Sportsbook = exports.Market = exports.BetSport = exports.SendgridDomain = exports.SendgridIpPool = exports.SendgridEmailSubAccount = exports.PhoneNumberAssignment = exports.MarketingPhoneNumber = exports.Segment = exports.Trigger = exports.CampaignMessage = exports.Campaign = exports.CampaignTemplate = exports.CreatorServiceFee = exports.UserCookiePreference = exports.CouponRedemptions = exports.UserTransactionLocation = exports.UserReview = exports.PumpingRiskScoreMonitoring = exports.UsersOnPermissions = exports.Permission = exports.SMSCustomMessage = exports.MigrationToken = void 0;
7
+ exports.pbSequelize = exports.BannerClicks = exports.CreatorPayouts = exports.PartnerRevenueReports = exports.CreatorRevshareSettings = exports.Partner = exports.BannerCreative = exports.SportsbookOnMarket = exports.Dispute = exports.DefaultCompliancePolicy = exports.ParlaysOnBets = exports.OddsOnParlays = exports.OddsOnBets = exports.ComplianceRuleSportsbook = exports.Parlay = exports.Odd = exports.AffiliateLink = exports.MarketOnLeague = exports.League = exports.ComplianceRule = exports.Sportsbook = exports.Market = exports.BetSport = exports.SendgridDomain = exports.SendgridIpPool = exports.SendgridEmailSubAccount = exports.PhoneNumberAssignment = exports.MarketingPhoneNumber = exports.Segment = exports.Trigger = exports.CampaignMessage = exports.Campaign = exports.CampaignTemplate = exports.CreatorServiceFee = exports.UserCookiePreference = exports.CouponRedemptions = exports.UserReferralRate = exports.UserReferral = exports.UserTransactionLocation = exports.UserReview = exports.PumpingRiskScoreMonitoring = exports.UsersOnPermissions = exports.Permission = exports.SMSCustomMessage = exports.MigrationToken = void 0;
8
8
  var content_like_1 = require("./content-like");
9
9
  Object.defineProperty(exports, "ContentLike", { enumerable: true, get: function () { return __importDefault(content_like_1).default; } });
10
10
  var transaction_1 = require("./transaction");
@@ -119,6 +119,10 @@ var user_review_1 = require("./user-review");
119
119
  Object.defineProperty(exports, "UserReview", { enumerable: true, get: function () { return __importDefault(user_review_1).default; } });
120
120
  var user_transaction_location_1 = require("./user-transaction-location");
121
121
  Object.defineProperty(exports, "UserTransactionLocation", { enumerable: true, get: function () { return __importDefault(user_transaction_location_1).default; } });
122
+ var user_referral_1 = require("./user-referral");
123
+ Object.defineProperty(exports, "UserReferral", { enumerable: true, get: function () { return __importDefault(user_referral_1).default; } });
124
+ var user_referral_rate_1 = require("./user-referral-rate");
125
+ Object.defineProperty(exports, "UserReferralRate", { enumerable: true, get: function () { return __importDefault(user_referral_rate_1).default; } });
122
126
  var coupon_redemptions_1 = require("./coupon_redemptions");
123
127
  Object.defineProperty(exports, "CouponRedemptions", { enumerable: true, get: function () { return __importDefault(coupon_redemptions_1).default; } });
124
128
  var user_cookie_preference_1 = require("./user-cookie-preference");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../typed-model/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sequelize_1 = require("sequelize");
7
7
  const pb_sequelize_1 = __importDefault(require("./pb-sequelize"));
8
- const user_1 = __importDefault(require("./user"));
9
8
  const partner_1 = __importDefault(require("./partner"));
10
9
  // order of InferAttributes & InferCreationAttributes is important.
11
10
  class PartnerRevenueReports extends sequelize_1.Model {
@@ -42,12 +41,8 @@ PartnerRevenueReports.init({
42
41
  field: "revshare_percent",
43
42
  },
44
43
  uploadedBy: {
45
- type: sequelize_1.DataTypes.BIGINT,
46
- allowNull: false,
47
- references: {
48
- model: user_1.default,
49
- key: "id",
50
- },
44
+ type: sequelize_1.DataTypes.STRING,
45
+ allowNull: true,
51
46
  field: "uploaded_by",
52
47
  },
53
48
  createdAt: sequelize_1.DataTypes.DATE,
@@ -72,14 +67,6 @@ PartnerRevenueReports.init({
72
67
  ],
73
68
  });
74
69
  // Relationships
75
- user_1.default.hasMany(PartnerRevenueReports, {
76
- foreignKey: "uploadedBy",
77
- onDelete: "NO ACTION",
78
- constraints: false,
79
- });
80
- PartnerRevenueReports.belongsTo(user_1.default, {
81
- foreignKey: "uploadedBy",
82
- });
83
70
  partner_1.default.hasMany(PartnerRevenueReports, {
84
71
  foreignKey: "partnerId",
85
72
  onDelete: "NO ACTION",
@@ -1 +1 @@
1
- {"version":3,"file":"partner-revenue-reports.js","sourceRoot":"","sources":["../../typed-model/partner-revenue-reports.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,wDAAgC;AAEhC,mEAAmE;AACnE,MAAM,qBAAsB,SAAQ,iBAGnC;CAWA;AAED,qBAAqB,CAAC,IAAI,CACxB;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,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE;YACV,KAAK,EAAE,iBAAO;YACd,GAAG,EAAE,IAAI;SACV;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,OAAO;KACf;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,+BAA+B;KACvC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,kBAAkB;KAC1B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;YACX,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAT,sBAAS;IACT,OAAO,EAAE;QACP;YACE,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;SAChC;QACD;YACE,MAAM,EAAE,CAAC,YAAY,CAAC;SACvB;QACD;YACE,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;QACD;YACE,MAAM,EAAE,CAAC,aAAa,CAAC;SACxB;KACF;CACF,CACF,CAAC;AAEF,gBAAgB;AAEhB,cAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;IAClC,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,qBAAqB,CAAC,SAAS,CAAC,cAAI,EAAE;IACpC,UAAU,EAAE,YAAY;CACzB,CAAC,CAAC;AAEH,iBAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;IACrC,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,qBAAqB,CAAC,SAAS,CAAC,iBAAO,EAAE;IACvC,UAAU,EAAE,WAAW;CACxB,CAAC,CAAC;AAEH,kBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"partner-revenue-reports.js","sourceRoot":"","sources":["../../typed-model/partner-revenue-reports.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,wDAAgC;AAEhC,mEAAmE;AACnE,MAAM,qBAAsB,SAAQ,iBAGnC;CAWA;AAED,qBAAqB,CAAC,IAAI,CACxB;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,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE;YACV,KAAK,EAAE,iBAAO;YACd,GAAG,EAAE,IAAI;SACV;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,OAAO;KACf;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,+BAA+B;KACvC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,kBAAkB;KAC1B;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAT,sBAAS;IACT,OAAO,EAAE;QACP;YACE,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;SAChC;QACD;YACE,MAAM,EAAE,CAAC,YAAY,CAAC;SACvB;QACD;YACE,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;QACD;YACE,MAAM,EAAE,CAAC,aAAa,CAAC;SACxB;KACF;CACF,CACF,CAAC;AAEF,gBAAgB;AAEhB,iBAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;IACrC,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,qBAAqB,CAAC,SAAS,CAAC,iBAAO,EAAE;IACvC,UAAU,EAAE,WAAW;CACxB,CAAC,CAAC;AAEH,kBAAe,qBAAqB,CAAC"}
@@ -0,0 +1,71 @@
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 UserReferralRate extends sequelize_1.Model {
11
+ }
12
+ UserReferralRate.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
+ rate: {
28
+ type: sequelize_1.DataTypes.DECIMAL(5, 2),
29
+ allowNull: false,
30
+ field: "rate",
31
+ defaultValue: 1.0,
32
+ },
33
+ createdAt: sequelize_1.DataTypes.DATE,
34
+ updatedAt: sequelize_1.DataTypes.DATE,
35
+ }, {
36
+ tableName: "user_referral_rates",
37
+ sequelize: pb_sequelize_1.default,
38
+ });
39
+ /*
40
+ ====================================================================
41
+ Class functions
42
+ ====================================================================
43
+ */
44
+ UserReferralRate.getById = async (id) => {
45
+ return await UserReferralRate.findOne({
46
+ where: {
47
+ id,
48
+ },
49
+ });
50
+ };
51
+ UserReferralRate.getByUserId = async (userId) => {
52
+ return await UserReferralRate.findOne({
53
+ where: {
54
+ userId,
55
+ },
56
+ });
57
+ };
58
+ user_1.default.hasOne(UserReferralRate, {
59
+ foreignKey: "userId",
60
+ sourceKey: "id",
61
+ onDelete: "NO ACTION",
62
+ constraints: false,
63
+ });
64
+ UserReferralRate.hasOne(user_1.default, {
65
+ foreignKey: "id",
66
+ sourceKey: "userId",
67
+ onDelete: "NO ACTION",
68
+ constraints: false,
69
+ });
70
+ exports.default = UserReferralRate;
71
+ //# sourceMappingURL=user-referral-rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-referral-rate.js","sourceRoot":"","sources":["../../typed-model/user-referral-rate.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,gBAAiB,SAAQ,iBAG9B;CAWA;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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,GAAG;KAClB;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;;;;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,MAAM,CAAC,gBAAgB,EAAE;IAC5B,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;IACnB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,102 @@
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 UserReferral extends sequelize_1.Model {
11
+ }
12
+ UserReferral.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
+ referrerId: {
20
+ type: sequelize_1.DataTypes.BIGINT,
21
+ allowNull: false,
22
+ field: "referrer_id",
23
+ references: {
24
+ model: user_1.default,
25
+ },
26
+ },
27
+ referredId: {
28
+ type: sequelize_1.DataTypes.BIGINT,
29
+ allowNull: false,
30
+ field: "referred_id",
31
+ references: {
32
+ model: user_1.default,
33
+ },
34
+ },
35
+ rate: {
36
+ type: sequelize_1.DataTypes.DECIMAL(5, 2),
37
+ allowNull: false,
38
+ field: "rate",
39
+ defaultValue: 1.0,
40
+ },
41
+ createdAt: sequelize_1.DataTypes.DATE,
42
+ updatedAt: sequelize_1.DataTypes.DATE,
43
+ }, {
44
+ tableName: "user_referrals",
45
+ sequelize: pb_sequelize_1.default,
46
+ });
47
+ /*
48
+ ====================================================================
49
+ Class functions
50
+ ====================================================================
51
+ */
52
+ UserReferral.getById = async (id) => {
53
+ return await UserReferral.findOne({
54
+ where: {
55
+ id,
56
+ },
57
+ });
58
+ };
59
+ UserReferral.getByReferredId = async (referredId) => {
60
+ return await UserReferral.findOne({
61
+ where: {
62
+ referredId,
63
+ },
64
+ });
65
+ };
66
+ UserReferral.findByReferrerId = async (referrerId) => {
67
+ return await UserReferral.findAll({
68
+ where: {
69
+ referrerId,
70
+ },
71
+ });
72
+ };
73
+ user_1.default.hasMany(UserReferral, {
74
+ as: "referrals",
75
+ foreignKey: "referrerId",
76
+ sourceKey: "id",
77
+ onDelete: "NO ACTION",
78
+ constraints: false,
79
+ });
80
+ UserReferral.hasOne(user_1.default, {
81
+ as: "referrer",
82
+ foreignKey: "id",
83
+ sourceKey: "referrerId",
84
+ onDelete: "NO ACTION",
85
+ constraints: false,
86
+ });
87
+ user_1.default.hasOne(UserReferral, {
88
+ as: "referredBy",
89
+ foreignKey: "referredId",
90
+ sourceKey: "id",
91
+ onDelete: "NO ACTION",
92
+ constraints: false,
93
+ });
94
+ UserReferral.hasOne(user_1.default, {
95
+ as: "referred",
96
+ foreignKey: "id",
97
+ sourceKey: "referredId",
98
+ onDelete: "NO ACTION",
99
+ constraints: false,
100
+ });
101
+ exports.default = UserReferral;
102
+ //# sourceMappingURL=user-referral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-referral.js","sourceRoot":"","sources":["../../typed-model/user-referral.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAE1B,mEAAmE;AACnE,MAAM,YAAa,SAAQ,iBAG1B;CAaA;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,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;SACZ;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;SACZ;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,GAAG;KAClB;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;;;;EAIE;AAEF,YAAY,CAAC,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IAC1C,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE;YACL,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,YAAY,CAAC,eAAe,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;IAC1D,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE;YACL,UAAU;SACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,YAAY,CAAC,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;IAC3D,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE;YACL,UAAU;SACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IACzB,EAAE,EAAE,WAAW;IACf,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,YAAY,CAAC,MAAM,CAAC,cAAI,EAAE;IACxB,EAAE,EAAE,UAAU;IACd,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAI,CAAC,MAAM,CAAC,YAAY,EAAE;IACxB,EAAE,EAAE,YAAY;IAChB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,YAAY,CAAC,MAAM,CAAC,cAAI,EAAE;IACxB,EAAE,EAAE,UAAU;IACd,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winible/winible-typed",
3
- "version": "2.101.0",
3
+ "version": "2.103.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -55,6 +55,8 @@ export { default as UsersOnPermissions } from "./users-on-permissions";
55
55
  export { default as PumpingRiskScoreMonitoring } from "./pumping-risk-score-monitoring";
56
56
  export { default as UserReview } from "./user-review";
57
57
  export { default as UserTransactionLocation } from "./user-transaction-location";
58
+ export { default as UserReferral } from "./user-referral";
59
+ export { default as UserReferralRate } from "./user-referral-rate";
58
60
  export { default as CouponRedemptions } from "./coupon_redemptions";
59
61
  export { default as UserCookiePreference } from "./user-cookie-preference";
60
62
  export { default as CreatorServiceFee } from "./creator-service-fee";
@@ -60,12 +60,8 @@ PartnerRevenueReports.init(
60
60
  field: "revshare_percent",
61
61
  },
62
62
  uploadedBy: {
63
- type: DataTypes.BIGINT,
64
- allowNull: false,
65
- references: {
66
- model: User,
67
- key: "id",
68
- },
63
+ type: DataTypes.STRING,
64
+ allowNull: true,
69
65
  field: "uploaded_by",
70
66
  },
71
67
  createdAt: DataTypes.DATE,
@@ -94,16 +90,6 @@ PartnerRevenueReports.init(
94
90
 
95
91
  // Relationships
96
92
 
97
- User.hasMany(PartnerRevenueReports, {
98
- foreignKey: "uploadedBy",
99
- onDelete: "NO ACTION",
100
- constraints: false,
101
- });
102
-
103
- PartnerRevenueReports.belongsTo(User, {
104
- foreignKey: "uploadedBy",
105
- });
106
-
107
93
  Partner.hasMany(PartnerRevenueReports, {
108
94
  foreignKey: "partnerId",
109
95
  onDelete: "NO ACTION",
@@ -0,0 +1,96 @@
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
+ // order of InferAttributes & InferCreationAttributes is important.
13
+ class UserReferralRate extends Model<
14
+ InferAttributes<UserReferralRate>,
15
+ InferCreationAttributes<UserReferralRate>
16
+ > {
17
+ // 'CreationOptional' is a special type that marks the field as optional
18
+ // when creating an instance of the model (such as using Model.create()).
19
+ declare id: CreationOptional<string>;
20
+ declare userId: string;
21
+ declare rate: number;
22
+ declare createdAt: CreationOptional<Date>;
23
+ declare updatedAt: CreationOptional<Date>;
24
+
25
+ static getById: (id: string) => Promise<UserReferralRate | null>;
26
+ static getByUserId: (userId: string) => Promise<UserReferralRate | null>;
27
+ }
28
+
29
+ UserReferralRate.init(
30
+ {
31
+ id: {
32
+ type: DataTypes.BIGINT,
33
+ primaryKey: true,
34
+ allowNull: false,
35
+ defaultValue: sequelize.fn("next_id"),
36
+ },
37
+ userId: {
38
+ type: DataTypes.BIGINT,
39
+ allowNull: false,
40
+ field: "user_id",
41
+ references: {
42
+ model: User,
43
+ },
44
+ },
45
+ rate: {
46
+ type: DataTypes.DECIMAL(5, 2),
47
+ allowNull: false,
48
+ field: "rate",
49
+ defaultValue: 1.0,
50
+ },
51
+ createdAt: DataTypes.DATE,
52
+ updatedAt: DataTypes.DATE,
53
+ },
54
+ {
55
+ tableName: "user_referral_rates",
56
+ sequelize,
57
+ }
58
+ );
59
+
60
+ /*
61
+ ====================================================================
62
+ Class functions
63
+ ====================================================================
64
+ */
65
+
66
+ UserReferralRate.getById = async (id: string) => {
67
+ return await UserReferralRate.findOne({
68
+ where: {
69
+ id,
70
+ },
71
+ });
72
+ };
73
+
74
+ UserReferralRate.getByUserId = async (userId: string) => {
75
+ return await UserReferralRate.findOne({
76
+ where: {
77
+ userId,
78
+ },
79
+ });
80
+ };
81
+
82
+ User.hasOne(UserReferralRate, {
83
+ foreignKey: "userId",
84
+ sourceKey: "id",
85
+ onDelete: "NO ACTION",
86
+ constraints: false,
87
+ });
88
+
89
+ UserReferralRate.hasOne(User, {
90
+ foreignKey: "id",
91
+ sourceKey: "userId",
92
+ onDelete: "NO ACTION",
93
+ constraints: false,
94
+ });
95
+
96
+ export default UserReferralRate;
@@ -0,0 +1,132 @@
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
+ // order of InferAttributes & InferCreationAttributes is important.
13
+ class UserReferral extends Model<
14
+ InferAttributes<UserReferral>,
15
+ InferCreationAttributes<UserReferral>
16
+ > {
17
+ // 'CreationOptional' is a special type that marks the field as optional
18
+ // when creating an instance of the model (such as using Model.create()).
19
+ declare id: CreationOptional<string>;
20
+ declare referrerId: string;
21
+ declare referredId: string;
22
+ declare rate: number;
23
+ declare createdAt: CreationOptional<Date>;
24
+ declare updatedAt: CreationOptional<Date>;
25
+
26
+ static getById: (id: string) => Promise<UserReferral | null>;
27
+ static getByReferredId: (referredId: string) => Promise<UserReferral | null>;
28
+ static findByReferrerId: (referrerId: string) => Promise<UserReferral[]>;
29
+ }
30
+
31
+ UserReferral.init(
32
+ {
33
+ id: {
34
+ type: DataTypes.BIGINT,
35
+ primaryKey: true,
36
+ allowNull: false,
37
+ defaultValue: sequelize.fn("next_id"),
38
+ },
39
+ referrerId: {
40
+ type: DataTypes.BIGINT,
41
+ allowNull: false,
42
+ field: "referrer_id",
43
+ references: {
44
+ model: User,
45
+ },
46
+ },
47
+ referredId: {
48
+ type: DataTypes.BIGINT,
49
+ allowNull: false,
50
+ field: "referred_id",
51
+ references: {
52
+ model: User,
53
+ },
54
+ },
55
+ rate: {
56
+ type: DataTypes.DECIMAL(5, 2),
57
+ allowNull: false,
58
+ field: "rate",
59
+ defaultValue: 1.0,
60
+ },
61
+ createdAt: DataTypes.DATE,
62
+ updatedAt: DataTypes.DATE,
63
+ },
64
+ {
65
+ tableName: "user_referrals",
66
+ sequelize,
67
+ }
68
+ );
69
+
70
+ /*
71
+ ====================================================================
72
+ Class functions
73
+ ====================================================================
74
+ */
75
+
76
+ UserReferral.getById = async (id: string) => {
77
+ return await UserReferral.findOne({
78
+ where: {
79
+ id,
80
+ },
81
+ });
82
+ };
83
+
84
+ UserReferral.getByReferredId = async (referredId: string) => {
85
+ return await UserReferral.findOne({
86
+ where: {
87
+ referredId,
88
+ },
89
+ });
90
+ };
91
+
92
+ UserReferral.findByReferrerId = async (referrerId: string) => {
93
+ return await UserReferral.findAll({
94
+ where: {
95
+ referrerId,
96
+ },
97
+ });
98
+ };
99
+
100
+ User.hasMany(UserReferral, {
101
+ as: "referrals",
102
+ foreignKey: "referrerId",
103
+ sourceKey: "id",
104
+ onDelete: "NO ACTION",
105
+ constraints: false,
106
+ });
107
+
108
+ UserReferral.hasOne(User, {
109
+ as: "referrer",
110
+ foreignKey: "id",
111
+ sourceKey: "referrerId",
112
+ onDelete: "NO ACTION",
113
+ constraints: false,
114
+ });
115
+
116
+ User.hasOne(UserReferral, {
117
+ as: "referredBy",
118
+ foreignKey: "referredId",
119
+ sourceKey: "id",
120
+ onDelete: "NO ACTION",
121
+ constraints: false,
122
+ });
123
+
124
+ UserReferral.hasOne(User, {
125
+ as: "referred",
126
+ foreignKey: "id",
127
+ sourceKey: "referredId",
128
+ onDelete: "NO ACTION",
129
+ constraints: false,
130
+ });
131
+
132
+ export default UserReferral;