@winible/winible-typed 2.72.0 → 2.72.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.
Files changed (39) hide show
  1. package/dist/scripts/testModels.js +55 -45
  2. package/dist/scripts/testModels.js.map +1 -1
  3. package/dist/src/types.js +29 -1
  4. package/dist/src/types.js.map +1 -1
  5. package/dist/typed-model/affiliate-link.js +89 -0
  6. package/dist/typed-model/affiliate-link.js.map +1 -0
  7. package/dist/typed-model/bet-sport.js +42 -0
  8. package/dist/typed-model/bet-sport.js.map +1 -0
  9. package/dist/typed-model/bet.js +8 -66
  10. package/dist/typed-model/bet.js.map +1 -1
  11. package/dist/typed-model/compliance-rule-sportsbook.js +72 -0
  12. package/dist/typed-model/compliance-rule-sportsbook.js.map +1 -0
  13. package/dist/typed-model/compliance-rule.js +49 -0
  14. package/dist/typed-model/compliance-rule.js.map +1 -0
  15. package/dist/typed-model/default-compliance-policy.js +46 -0
  16. package/dist/typed-model/default-compliance-policy.js.map +1 -0
  17. package/dist/typed-model/index.js +30 -6
  18. package/dist/typed-model/index.js.map +1 -1
  19. package/dist/typed-model/league.js +38 -5
  20. package/dist/typed-model/league.js.map +1 -1
  21. package/dist/typed-model/market-on-bet-sport.js +58 -0
  22. package/dist/typed-model/market-on-bet-sport.js.map +1 -0
  23. package/dist/typed-model/market.js +37 -0
  24. package/dist/typed-model/market.js.map +1 -0
  25. package/dist/typed-model/odd.js +129 -0
  26. package/dist/typed-model/odd.js.map +1 -0
  27. package/dist/typed-model/odds-on-bets.js +53 -0
  28. package/dist/typed-model/odds-on-bets.js.map +1 -0
  29. package/dist/typed-model/odds-on-parlays.js +53 -0
  30. package/dist/typed-model/odds-on-parlays.js.map +1 -0
  31. package/dist/typed-model/parlay.js +55 -0
  32. package/dist/typed-model/parlay.js.map +1 -0
  33. package/dist/typed-model/parlays-on-bets.js +53 -0
  34. package/dist/typed-model/parlays-on-bets.js.map +1 -0
  35. package/dist/typed-model/sportsbook.js +56 -0
  36. package/dist/typed-model/sportsbook.js.map +1 -0
  37. package/package.json +1 -1
  38. package/typed-model/index.ts +3 -3
  39. package/typed-model/sportsbook.ts +0 -1
@@ -1,56 +1,66 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
2
  Object.defineProperty(exports, "__esModule", { value: true });
37
3
  exports.testModels = void 0;
38
4
  require("dotenv").config();
39
- const allModels = __importStar(require("../typed-model"));
40
- const { pbSequelize } = allModels, models = __rest(allModels, ["pbSequelize"]);
41
- const testModels = async () => {
42
- const modelEntries = Object.entries(models);
43
- for (const [modelName, model] of modelEntries) {
44
- try {
45
- await model.findOne({
46
- limit: 1,
5
+ const typed_model_1 = require("../typed-model");
6
+ const src_1 = require("../src");
7
+ const getPostBets = async (postId) => {
8
+ const Bets = await typed_model_1.Bet.findAll({
9
+ where: {
10
+ postId: postId,
11
+ },
12
+ });
13
+ const betsPromises = await Promise.all(Bets.map(async (bet) => {
14
+ if (bet.type === src_1.BetType.STRAIGHT) {
15
+ const oddsOnBets = await typed_model_1.OddsOnBets.findAll({
16
+ where: { betId: bet.id },
17
+ });
18
+ const odds = await typed_model_1.Odd.findAll({
19
+ where: { id: oddsOnBets.map((o) => o.oddId) },
47
20
  });
48
- console.log(`✅ Successfully validated model: ${modelName}`);
21
+ return Object.assign(Object.assign({}, bet.get()), { odds: odds.map((o) => o.get()) });
49
22
  }
50
- catch (error) {
51
- console.error(`❌ Model ${modelName} failed: ${error.message}`);
23
+ if (bet.type === src_1.BetType.PARLAY) {
24
+ const parlaysOnBets = await typed_model_1.ParlaysOnBets.findAll({
25
+ where: { betId: bet.id },
26
+ });
27
+ const parlaysEntries = await typed_model_1.Parlay.findAll({
28
+ where: { id: parlaysOnBets.map((p) => p.parlayId) },
29
+ });
30
+ const parlaysWithOdds = await Promise.all(parlaysEntries.map(async (parlay) => {
31
+ const oddsOnParlays = await typed_model_1.OddsOnParlays.findAll({
32
+ where: { parlayId: parlay.id },
33
+ });
34
+ const odds = await typed_model_1.Odd.findAll({
35
+ where: { id: oddsOnParlays.map((o) => o.oddId) },
36
+ });
37
+ return Object.assign(Object.assign({}, parlay.get()), { odds: odds.map((o) => o.get()) });
38
+ }));
39
+ return Object.assign(Object.assign({}, bet.get()), { parlays: parlaysWithOdds });
52
40
  }
41
+ return null;
42
+ }));
43
+ return betsPromises.filter((b) => b !== null);
44
+ };
45
+ const testModels = async () => {
46
+ try {
47
+ const bets = await getPostBets("1422973719038415271");
48
+ console.log(JSON.stringify(bets, null, 2));
49
+ }
50
+ catch (error) {
51
+ console.error(error);
53
52
  }
53
+ // const modelEntries = Object.entries(models);
54
+ // for (const [modelName, model] of modelEntries) {
55
+ // try {
56
+ // await (model as ModelStatic<any>).findOne({
57
+ // limit: 1,
58
+ // });
59
+ // console.log(`✅ Successfully validated model: ${modelName}`);
60
+ // } catch (error: any) {
61
+ // console.error(`❌ Model ${modelName} failed: ${error.message}`);
62
+ // }
63
+ // }
54
64
  };
55
65
  exports.testModels = testModels;
56
66
  (0, exports.testModels)();
@@ -1 +1 @@
1
- {"version":3,"file":"testModels.js","sourceRoot":"","sources":["../../scripts/testModels.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAG3B,0DAA4C;AAC5C,MAAM,EAAE,WAAW,KAAgB,SAAS,EAApB,MAAM,UAAK,SAAS,EAAtC,eAA0B,CAAY,CAAC;AAEtC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE;QAC7C,IAAI;YACF,MAAO,KAA0B,CAAC,OAAO,CAAC;gBACxC,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;SAC7D;QAAC,OAAO,KAAU,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,WAAW,SAAS,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SAChE;KACF;AACH,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB;AAEF,IAAA,kBAAU,GAAE,CAAC"}
1
+ {"version":3,"file":"testModels.js","sourceRoot":"","sources":["../../scripts/testModels.ts"],"names":[],"mappings":"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"}
package/dist/src/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageTimingType = exports.CampaignMessageStatus = exports.CampaignStatus = exports.MessageChannel = exports.CampaignType = exports.NotificationType = exports.NotificationDeliveryMethod = exports.NotificationPreferenceType = exports.RewardType = exports.RewardFrequency = exports.ShouldRemoveSubscriberStatus = exports.SubscriptionPlanType = exports.VerifyStatus = exports.TemporalUnit = exports.DiscountType = exports.UserStoreRole = exports.UserRole = exports.UserStatus = void 0;
3
+ exports.ComplianceRuleType = exports.AffiliateLinkLinkTypes = exports.BetStatusType = exports.BetType = exports.StatusType = exports.MessageTimingType = exports.CampaignMessageStatus = exports.CampaignStatus = exports.MessageChannel = exports.CampaignType = exports.NotificationType = exports.NotificationDeliveryMethod = exports.NotificationPreferenceType = exports.RewardType = exports.RewardFrequency = exports.ShouldRemoveSubscriberStatus = exports.SubscriptionPlanType = exports.VerifyStatus = exports.TemporalUnit = exports.DiscountType = exports.UserStoreRole = exports.UserRole = exports.UserStatus = void 0;
4
4
  var UserStatus;
5
5
  (function (UserStatus) {
6
6
  UserStatus["PENDING_REVIEW"] = "PENDING_REVIEW";
@@ -111,4 +111,32 @@ var MessageTimingType;
111
111
  MessageTimingType["ABSOLUTE"] = "ABSOLUTE";
112
112
  MessageTimingType["IMMEDIATE"] = "IMMEDIATE";
113
113
  })(MessageTimingType = exports.MessageTimingType || (exports.MessageTimingType = {}));
114
+ var StatusType;
115
+ (function (StatusType) {
116
+ StatusType["ACTIVE"] = "active";
117
+ StatusType["INACTIVE"] = "inactive";
118
+ })(StatusType = exports.StatusType || (exports.StatusType = {}));
119
+ var BetType;
120
+ (function (BetType) {
121
+ BetType["STRAIGHT"] = "straight";
122
+ BetType["PARLAY"] = "parlay";
123
+ })(BetType = exports.BetType || (exports.BetType = {}));
124
+ var BetStatusType;
125
+ (function (BetStatusType) {
126
+ BetStatusType["WON"] = "won";
127
+ BetStatusType["LOST"] = "lost";
128
+ BetStatusType["OPEN"] = "open";
129
+ BetStatusType["VOID"] = "void";
130
+ })(BetStatusType = exports.BetStatusType || (exports.BetStatusType = {}));
131
+ var AffiliateLinkLinkTypes;
132
+ (function (AffiliateLinkLinkTypes) {
133
+ AffiliateLinkLinkTypes["WINIBLE"] = "winible";
134
+ AffiliateLinkLinkTypes["CREATOR"] = "creator";
135
+ AffiliateLinkLinkTypes["WINIBLE_CREATOR"] = "winible_creator";
136
+ })(AffiliateLinkLinkTypes = exports.AffiliateLinkLinkTypes || (exports.AffiliateLinkLinkTypes = {}));
137
+ var ComplianceRuleType;
138
+ (function (ComplianceRuleType) {
139
+ ComplianceRuleType["ALLOWED"] = "allowed";
140
+ ComplianceRuleType["RESTRICTED"] = "restricted";
141
+ })(ComplianceRuleType = exports.ComplianceRuleType || (exports.ComplianceRuleType = {}));
114
142
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAyCA,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+CAAiC,CAAA;IACjC,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACnB,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;AACjB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,yCAAyB,CAAA;AAC3B,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAED,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,mCAAmB,CAAA;AACrB,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;AACvB,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,+CAAuB,CAAA;IACvB,uCAAe,CAAA;AACjB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAED,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACtC,6CAAa,CAAA;IACb,+CAAe,CAAA;AACjB,CAAC,EAHW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAGvC;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;AACzB,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,uCAAyB,CAAA;AAC3B,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAED,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACpC,iDAAmB,CAAA;IACnB,iDAAmB,CAAA;AACrB,CAAC,EAHW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAGrC;AAED,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,6CAAe,CAAA;IACf,2DAA6B,CAAA;IAC7B,2CAAa,CAAA;AACf,CAAC,EAJW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAIrC;AAED,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,yEAAqD,CAAA;IACrD,yEAAqD,CAAA;IACrD,qDAAiC,CAAA;IACjC,iDAA6B,CAAA;IAC7B,mCAAe,CAAA;IACf,mDAA+B,CAAA;AACjC,CAAC,EARW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAQ3B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,uCAAuB,CAAA;AACzB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;AACzB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AAED,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,oDAA2B,CAAA;IAC3B,gDAAuB,CAAA;IACvB,wCAAe,CAAA;AACjB,CAAC,EAJW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAIhC;AAED,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;AACzB,CAAC,EAJW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAI5B;AAkBD,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;AACvB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,gCAAqB,CAAA;IACrB,4BAAiB,CAAA;AACnB,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,8BAAa,CAAA;IACb,8BAAa,CAAA;IACb,8BAAa,CAAA;AACf,CAAC,EALW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAKxB;AAED,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,6CAAmB,CAAA;IACnB,6DAAmC,CAAA;AACrC,CAAC,EAJW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAIjC;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,+CAAyB,CAAA;AAC3B,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B"}
@@ -0,0 +1,89 @@
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 types_1 = require("../src/types");
9
+ const user_1 = __importDefault(require("./user"));
10
+ const sportsbook_1 = __importDefault(require("./sportsbook"));
11
+ // order of InferAttributes & InferCreationAttributes is important.
12
+ class AffiliateLinks extends sequelize_1.Model {
13
+ }
14
+ AffiliateLinks.init({
15
+ id: {
16
+ type: sequelize_1.DataTypes.BIGINT,
17
+ primaryKey: true,
18
+ allowNull: false,
19
+ defaultValue: pb_sequelize_1.default.fn("next_id"),
20
+ },
21
+ creatorId: {
22
+ type: sequelize_1.DataTypes.BIGINT,
23
+ allowNull: false,
24
+ references: {
25
+ model: user_1.default,
26
+ key: "id",
27
+ },
28
+ field: "creator_id",
29
+ },
30
+ sportsbookId: {
31
+ type: sequelize_1.DataTypes.BIGINT,
32
+ allowNull: false,
33
+ references: {
34
+ model: sportsbook_1.default,
35
+ key: "id",
36
+ },
37
+ field: "sportsbook_id",
38
+ },
39
+ type: {
40
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.AffiliateLinkLinkTypes)),
41
+ allowNull: false,
42
+ },
43
+ cta: {
44
+ type: sequelize_1.DataTypes.STRING,
45
+ allowNull: false,
46
+ },
47
+ affiliateCode: {
48
+ type: sequelize_1.DataTypes.STRING,
49
+ allowNull: false,
50
+ field: "affiliate_code",
51
+ },
52
+ affiliateLink: {
53
+ type: sequelize_1.DataTypes.STRING,
54
+ allowNull: false,
55
+ field: "affiliate_link",
56
+ },
57
+ cpa: {
58
+ type: sequelize_1.DataTypes.STRING,
59
+ allowNull: false,
60
+ field: "cpa",
61
+ },
62
+ description: {
63
+ type: sequelize_1.DataTypes.STRING,
64
+ allowNull: false,
65
+ field: "description",
66
+ },
67
+ createdAt: sequelize_1.DataTypes.DATE,
68
+ updatedAt: sequelize_1.DataTypes.DATE,
69
+ }, {
70
+ // Other model options go here
71
+ tableName: "affiliate_links",
72
+ comment: "Affiliate Links table, belongs to a user (creator_id)",
73
+ sequelize: pb_sequelize_1.default,
74
+ });
75
+ user_1.default.hasMany(AffiliateLinks, {
76
+ foreignKey: "creatorId",
77
+ sourceKey: "id",
78
+ onDelete: "NO ACTION",
79
+ constraints: false,
80
+ });
81
+ AffiliateLinks.belongsTo(user_1.default, { foreignKey: "creatorId" });
82
+ sportsbook_1.default.hasMany(AffiliateLinks, {
83
+ foreignKey: "sportsbookId",
84
+ sourceKey: "id",
85
+ onDelete: "NO ACTION",
86
+ constraints: false,
87
+ });
88
+ exports.default = AffiliateLinks;
89
+ //# sourceMappingURL=affiliate-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affiliate-link.js","sourceRoot":"","sources":["../../typed-model/affiliate-link.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAAkE;AAClE,kDAA0B;AAC1B,8DAAsC;AAEtC,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CAcA;AAED,cAAc,CAAC,IAAI,CACjB;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,UAAU,EAAE;YACV,KAAK,EAAE,cAAI;YACX,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,YAAY;KACpB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,oBAAU;YACjB,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,eAAe;KACvB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,8BAAsB,CAAC,CAAC;QAC9D,SAAS,EAAE,KAAK;KACjB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;KACxB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,KAAK;KACb;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,uDAAuD;IAChE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,cAAc,EAAE;IAC3B,UAAU,EAAE,WAAW;IACvB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,cAAc,CAAC,SAAS,CAAC,cAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;AAE5D,oBAAU,CAAC,OAAO,CAAC,cAAc,EAAE;IACjC,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,cAAc,CAAC"}
@@ -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 types_1 = require("../src/types");
9
+ // order of InferAttributes & InferCreationAttributes is important.
10
+ class BetSport extends sequelize_1.Model {
11
+ }
12
+ BetSport.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
+ name: {
20
+ type: sequelize_1.DataTypes.STRING,
21
+ allowNull: false,
22
+ },
23
+ status: {
24
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.StatusType)),
25
+ allowNull: false,
26
+ },
27
+ numericalId: {
28
+ type: sequelize_1.DataTypes.INTEGER,
29
+ allowNull: false,
30
+ comment: "Numerical ID provided by Odds Jam",
31
+ field: "numerical_id",
32
+ },
33
+ createdAt: sequelize_1.DataTypes.DATE,
34
+ updatedAt: sequelize_1.DataTypes.DATE,
35
+ }, {
36
+ // Other model options go here
37
+ tableName: "bet_sports",
38
+ comment: "Bet sports synched from Odds Jam",
39
+ sequelize: pb_sequelize_1.default,
40
+ });
41
+ exports.default = BetSport;
42
+ //# sourceMappingURL=bet-sport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bet-sport.js","sourceRoot":"","sources":["../../typed-model/bet-sport.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAA0C;AAE1C,mEAAmE;AACnE,MAAM,QAAS,SAAQ,iBAGtB;CASA;AAED,QAAQ,CAAC,IAAI,CACX;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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAU,CAAC,CAAC;QAClD,SAAS,EAAE,KAAK;KACjB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,mCAAmC;QAC5C,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,kCAAkC;IAC3C,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -5,8 +5,8 @@ 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 post_1 = __importDefault(require("./post"));
9
+ const types_1 = require("../src/types");
10
10
  // order of InferAttributes & InferCreationAttributes is important.
11
11
  class Bet extends sequelize_1.Model {
12
12
  }
@@ -17,14 +17,6 @@ Bet.init({
17
17
  allowNull: false,
18
18
  defaultValue: pb_sequelize_1.default.fn("next_id"),
19
19
  },
20
- userId: {
21
- type: sequelize_1.DataTypes.BIGINT,
22
- allowNull: false,
23
- field: "user_id",
24
- references: {
25
- model: user_1.default,
26
- },
27
- },
28
20
  postId: {
29
21
  type: sequelize_1.DataTypes.BIGINT,
30
22
  allowNull: false,
@@ -33,69 +25,19 @@ Bet.init({
33
25
  model: post_1.default,
34
26
  },
35
27
  },
36
- type: {
37
- type: sequelize_1.DataTypes.STRING,
38
- allowNull: false,
39
- field: "type",
40
- },
41
- stakeInCents: {
42
- type: sequelize_1.DataTypes.INTEGER,
43
- allowNull: true,
44
- field: "stake_in_cents",
45
- comment: "The amount of stake in cents (e.g., 5000 for $50)",
46
- },
47
- returnInCents: {
48
- type: sequelize_1.DataTypes.INTEGER,
49
- allowNull: true,
50
- field: "return_in_cents",
51
- comment: "The potential return amount in cents",
52
- },
53
- stakeInUnits: {
54
- type: sequelize_1.DataTypes.FLOAT,
55
- allowNull: true,
56
- field: "stake_in_units",
57
- comment: "The amount of stake in units (e.g., 1.0 for 1 unit)",
58
- },
59
- returnInUnits: {
60
- type: sequelize_1.DataTypes.FLOAT,
61
- allowNull: true,
62
- field: "return_in_units",
63
- comment: "The potential return amount in units",
64
- },
65
- settled: {
66
- type: sequelize_1.DataTypes.BOOLEAN,
28
+ status: {
29
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.BetStatusType)),
67
30
  allowNull: false,
68
- defaultValue: false,
69
- field: "settled",
70
- },
71
- result: {
72
- type: sequelize_1.DataTypes.STRING,
73
- allowNull: true,
74
- field: "result",
75
- comment: "Result of the bet: pending, won, lost, push",
76
- },
77
- events: {
78
- type: sequelize_1.DataTypes.JSONB,
79
- allowNull: true,
80
- field: "events",
81
31
  },
82
- metadata: {
83
- type: sequelize_1.DataTypes.JSONB,
84
- allowNull: true,
85
- field: "metadata",
86
- },
87
- createdAt: {
88
- type: sequelize_1.DataTypes.DATE,
89
- allowNull: false,
90
- field: "created_at",
91
- },
92
- updatedAt: {
93
- type: sequelize_1.DataTypes.DATE,
32
+ type: {
33
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.BetType)),
94
34
  allowNull: false,
95
- field: "updated_at",
96
35
  },
36
+ createdAt: sequelize_1.DataTypes.DATE,
37
+ updatedAt: sequelize_1.DataTypes.DATE,
97
38
  }, {
98
39
  tableName: "bets",
40
+ comment: "Bets table, relates a post to a bet and it's available odds or parlays",
99
41
  sequelize: pb_sequelize_1.default,
100
42
  });
101
43
  post_1.default.hasMany(Bet, {
@@ -1 +1 @@
1
- {"version":3,"file":"bet.js","sourceRoot":"","sources":["../../typed-model/bet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bet.js","sourceRoot":"","sources":["../../typed-model/bet.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,kDAA0B;AAC1B,wCAAsD;AAEtD,mEAAmE;AACnE,MAAM,GAAI,SAAQ,iBAAyD;CAO1E;AAED,GAAG,CAAC,IAAI,CACN;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,MAAM,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAC,CAAC;QACrD,SAAS,EAAE,KAAK;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAO,CAAC,CAAC;QAC/C,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,MAAM;IACjB,OAAO,EACL,wEAAwE;IAC1E,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE;IAChB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,GAAG,CAAC,SAAS,CAAC,cAAI,EAAE;IAClB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,72 @@
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 types_1 = require("../src/types");
9
+ const compliance_rule_1 = __importDefault(require("./compliance-rule"));
10
+ const sportsbook_1 = __importDefault(require("./sportsbook"));
11
+ // order of InferAttributes & InferCreationAttributes is important.
12
+ class ComplianceRuleSportsbook extends sequelize_1.Model {
13
+ }
14
+ ComplianceRuleSportsbook.init({
15
+ id: {
16
+ type: sequelize_1.DataTypes.BIGINT,
17
+ primaryKey: true,
18
+ allowNull: false,
19
+ defaultValue: pb_sequelize_1.default.fn("next_id"),
20
+ },
21
+ complianceRuleId: {
22
+ type: sequelize_1.DataTypes.BIGINT,
23
+ allowNull: false,
24
+ references: {
25
+ model: compliance_rule_1.default,
26
+ key: "id",
27
+ },
28
+ field: "compliance_rule_id",
29
+ },
30
+ sportsbookId: {
31
+ type: sequelize_1.DataTypes.BIGINT,
32
+ allowNull: false,
33
+ references: {
34
+ model: sportsbook_1.default,
35
+ key: "id",
36
+ },
37
+ field: "sportsbook_id",
38
+ comment: "References sportsbooks.id",
39
+ },
40
+ ruleType: {
41
+ type: sequelize_1.DataTypes.ENUM(...Object.values(types_1.ComplianceRuleType)),
42
+ allowNull: false,
43
+ field: "rule_type",
44
+ },
45
+ createdAt: sequelize_1.DataTypes.DATE,
46
+ updatedAt: sequelize_1.DataTypes.DATE,
47
+ }, {
48
+ // Other model options go here
49
+ tableName: "compliance_rule_sportsbooks",
50
+ comment: "Sportsbook associations with compliance rules (allowed/restricted)",
51
+ sequelize: pb_sequelize_1.default,
52
+ });
53
+ // Define relationships
54
+ compliance_rule_1.default.hasMany(ComplianceRuleSportsbook, {
55
+ foreignKey: "complianceRuleId",
56
+ sourceKey: "id",
57
+ onDelete: "CASCADE",
58
+ });
59
+ ComplianceRuleSportsbook.belongsTo(compliance_rule_1.default, {
60
+ foreignKey: "complianceRuleId",
61
+ });
62
+ sportsbook_1.default.hasMany(ComplianceRuleSportsbook, {
63
+ foreignKey: "sportsbookId",
64
+ sourceKey: "id",
65
+ onDelete: "NO ACTION",
66
+ constraints: false,
67
+ });
68
+ ComplianceRuleSportsbook.belongsTo(sportsbook_1.default, {
69
+ foreignKey: "sportsbookId",
70
+ });
71
+ exports.default = ComplianceRuleSportsbook;
72
+ //# sourceMappingURL=compliance-rule-sportsbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-rule-sportsbook.js","sourceRoot":"","sources":["../../typed-model/compliance-rule-sportsbook.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,wCAAkD;AAClD,wEAA+C;AAC/C,8DAAsC;AAEtC,mEAAmE;AACnE,MAAM,wBAAyB,SAAQ,iBAGtC;CASA;AAED,wBAAwB,CAAC,IAAI,CAC3B;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,gBAAgB,EAAE;QAChB,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,yBAAc;YACrB,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,oBAAoB;KAC5B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,oBAAU;YACjB,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,2BAA2B;KACrC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;QAC1D,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACnB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,6BAA6B;IACxC,OAAO,EACL,oEAAoE;IACtE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,uBAAuB;AACvB,yBAAc,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAC/C,UAAU,EAAE,kBAAkB;IAC9B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,SAAS;CACpB,CAAC,CAAC;AAEH,wBAAwB,CAAC,SAAS,CAAC,yBAAc,EAAE;IACjD,UAAU,EAAE,kBAAkB;CAC/B,CAAC,CAAC;AAEH,oBAAU,CAAC,OAAO,CAAC,wBAAwB,EAAE;IAC3C,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,wBAAwB,CAAC,SAAS,CAAC,oBAAU,EAAE;IAC7C,UAAU,EAAE,cAAc;CAC3B,CAAC,CAAC;AAEH,kBAAe,wBAAwB,CAAC"}
@@ -0,0 +1,49 @@
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 ComplianceRule extends sequelize_1.Model {
10
+ }
11
+ ComplianceRule.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
+ country: {
19
+ type: sequelize_1.DataTypes.STRING(2),
20
+ allowNull: false,
21
+ comment: "ISO country code (US, UK, CA, etc.)",
22
+ },
23
+ state: {
24
+ type: sequelize_1.DataTypes.STRING(10),
25
+ allowNull: true,
26
+ comment: "State/province code (NY, CA, ON, etc.)",
27
+ },
28
+ requiresOnshore: {
29
+ type: sequelize_1.DataTypes.BOOLEAN,
30
+ allowNull: false,
31
+ defaultValue: false,
32
+ field: "requires_onshore",
33
+ },
34
+ isActive: {
35
+ type: sequelize_1.DataTypes.BOOLEAN,
36
+ allowNull: false,
37
+ defaultValue: true,
38
+ field: "is_active",
39
+ },
40
+ createdAt: sequelize_1.DataTypes.DATE,
41
+ updatedAt: sequelize_1.DataTypes.DATE,
42
+ }, {
43
+ // Other model options go here
44
+ tableName: "compliance_rules",
45
+ comment: "Geography-based compliance rules for sportsbook access",
46
+ sequelize: pb_sequelize_1.default,
47
+ });
48
+ exports.default = ComplianceRule;
49
+ //# sourceMappingURL=compliance-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-rule.js","sourceRoot":"","sources":["../../typed-model/compliance-rule.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,cAAe,SAAQ,iBAG5B;CAUA;AAED,cAAc,CAAC,IAAI,CACjB;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,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,qCAAqC;KAC/C;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,wCAAwC;KAClD;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,kBAAkB;KAC1B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE,WAAW;KACnB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,wDAAwD;IACjE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,46 @@
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 DefaultCompliancePolicy extends sequelize_1.Model {
10
+ }
11
+ DefaultCompliancePolicy.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
+ country: {
19
+ type: sequelize_1.DataTypes.STRING(2),
20
+ allowNull: false,
21
+ unique: true,
22
+ comment: "ISO country code",
23
+ },
24
+ allowByDefault: {
25
+ type: sequelize_1.DataTypes.BOOLEAN,
26
+ allowNull: false,
27
+ defaultValue: false,
28
+ field: "allow_by_default",
29
+ comment: "Whether to allow unlisted sportsbooks",
30
+ },
31
+ isActive: {
32
+ type: sequelize_1.DataTypes.BOOLEAN,
33
+ allowNull: false,
34
+ defaultValue: true,
35
+ field: "is_active",
36
+ },
37
+ createdAt: sequelize_1.DataTypes.DATE,
38
+ updatedAt: sequelize_1.DataTypes.DATE,
39
+ }, {
40
+ // Other model options go here
41
+ tableName: "default_compliance_policies",
42
+ comment: "Default compliance behavior by country",
43
+ sequelize: pb_sequelize_1.default,
44
+ });
45
+ exports.default = DefaultCompliancePolicy;
46
+ //# sourceMappingURL=default-compliance-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-compliance-policy.js","sourceRoot":"","sources":["../../typed-model/default-compliance-policy.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,uBAAwB,SAAQ,iBAGrC;CASA;AAED,uBAAuB,CAAC,IAAI,CAC1B;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,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,kBAAkB;KAC5B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE,uCAAuC;KACjD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE,WAAW;KACnB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,8BAA8B;IAC9B,SAAS,EAAE,6BAA6B;IACxC,OAAO,EAAE,wCAAwC;IACjD,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}