@winible/winible-typed 2.70.4 → 2.71.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.
Files changed (48) 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 +24 -1
  4. package/dist/src/types.js.map +1 -1
  5. package/dist/typed-model/affiliate-link.js +79 -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/index.js +24 -6
  12. package/dist/typed-model/index.js.map +1 -1
  13. package/dist/typed-model/league.js +38 -5
  14. package/dist/typed-model/league.js.map +1 -1
  15. package/dist/typed-model/market-on-bet-sport.js +58 -0
  16. package/dist/typed-model/market-on-bet-sport.js.map +1 -0
  17. package/dist/typed-model/market.js +37 -0
  18. package/dist/typed-model/market.js.map +1 -0
  19. package/dist/typed-model/odd.js +129 -0
  20. package/dist/typed-model/odd.js.map +1 -0
  21. package/dist/typed-model/odds-on-bets.js +53 -0
  22. package/dist/typed-model/odds-on-bets.js.map +1 -0
  23. package/dist/typed-model/odds-on-parlays.js +53 -0
  24. package/dist/typed-model/odds-on-parlays.js.map +1 -0
  25. package/dist/typed-model/parlay.js +55 -0
  26. package/dist/typed-model/parlay.js.map +1 -0
  27. package/dist/typed-model/parlays-on-bets.js +53 -0
  28. package/dist/typed-model/parlays-on-bets.js.map +1 -0
  29. package/dist/typed-model/sportsbook.js +56 -0
  30. package/dist/typed-model/sportsbook.js.map +1 -0
  31. package/dist/typed-model/user.js +1 -1
  32. package/package.json +1 -1
  33. package/src/types.ts +46 -0
  34. package/typed-model/affiliate-link.ts +104 -0
  35. package/typed-model/bet-sport.ts +61 -0
  36. package/typed-model/bet.ts +10 -89
  37. package/typed-model/index.ts +11 -2
  38. package/typed-model/league.ts +46 -7
  39. package/typed-model/market-on-bet-sport.ts +76 -0
  40. package/typed-model/market.ts +55 -0
  41. package/typed-model/odd.ts +158 -0
  42. package/typed-model/odds-on-bets.ts +68 -0
  43. package/typed-model/odds-on-parlays.ts +68 -0
  44. package/typed-model/parlay.ts +74 -0
  45. package/typed-model/parlays-on-bets.ts +69 -0
  46. package/typed-model/sportsbook.ts +78 -0
  47. package/typed-model/user.ts +1 -1
  48. package/typed-model/league-on-users.ts +0 -81
@@ -0,0 +1,37 @@
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 Market extends sequelize_1.Model {
10
+ }
11
+ Market.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
+ name: {
19
+ type: sequelize_1.DataTypes.STRING,
20
+ allowNull: false,
21
+ },
22
+ numericalId: {
23
+ type: sequelize_1.DataTypes.INTEGER,
24
+ allowNull: false,
25
+ comment: "Numerical ID provided by Odds Jam",
26
+ field: "numerical_id",
27
+ },
28
+ createdAt: sequelize_1.DataTypes.DATE,
29
+ updatedAt: sequelize_1.DataTypes.DATE,
30
+ }, {
31
+ // Other model options go here
32
+ tableName: "markets",
33
+ comment: "Markets synched from Odds Jam",
34
+ sequelize: pb_sequelize_1.default,
35
+ });
36
+ exports.default = Market;
37
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../typed-model/market.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AAEvC,mEAAmE;AACnE,MAAM,MAAO,SAAQ,iBAGpB;CAQA;AAED,MAAM,CAAC,IAAI,CACT;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,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,SAAS;IACpB,OAAO,EAAE,+BAA+B;IACxC,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,129 @@
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 sportsbook_1 = __importDefault(require("./sportsbook"));
9
+ const market_1 = __importDefault(require("./market"));
10
+ const league_1 = __importDefault(require("./league"));
11
+ // order of InferAttributes & InferCreationAttributes is important.
12
+ class Odd extends sequelize_1.Model {
13
+ }
14
+ Odd.init({
15
+ id: {
16
+ type: sequelize_1.DataTypes.STRING,
17
+ primaryKey: true,
18
+ allowNull: false,
19
+ },
20
+ sportsbookId: {
21
+ type: sequelize_1.DataTypes.STRING,
22
+ allowNull: false,
23
+ field: "sportsbook_id",
24
+ references: {
25
+ model: sportsbook_1.default,
26
+ key: "id",
27
+ },
28
+ },
29
+ marketId: {
30
+ type: sequelize_1.DataTypes.STRING,
31
+ allowNull: false,
32
+ field: "market_id",
33
+ references: {
34
+ model: market_1.default,
35
+ key: "id",
36
+ },
37
+ },
38
+ leagueId: {
39
+ type: sequelize_1.DataTypes.STRING,
40
+ allowNull: false,
41
+ field: "league_id",
42
+ references: {
43
+ model: league_1.default,
44
+ key: "id",
45
+ },
46
+ },
47
+ name: {
48
+ type: sequelize_1.DataTypes.STRING,
49
+ allowNull: false,
50
+ },
51
+ isMain: {
52
+ type: sequelize_1.DataTypes.BOOLEAN,
53
+ allowNull: false,
54
+ field: "is_main",
55
+ },
56
+ playerId: {
57
+ type: sequelize_1.DataTypes.STRING,
58
+ allowNull: false,
59
+ field: "player_id",
60
+ },
61
+ teamId: {
62
+ type: sequelize_1.DataTypes.STRING,
63
+ allowNull: false,
64
+ field: "team_id",
65
+ },
66
+ price: {
67
+ type: sequelize_1.DataTypes.STRING,
68
+ allowNull: false,
69
+ },
70
+ status: {
71
+ type: sequelize_1.DataTypes.STRING,
72
+ allowNull: false,
73
+ },
74
+ groupingKey: {
75
+ type: sequelize_1.DataTypes.STRING,
76
+ allowNull: false,
77
+ field: "grouping_key",
78
+ },
79
+ assets: {
80
+ type: sequelize_1.DataTypes.JSON,
81
+ allowNull: false,
82
+ field: "assets",
83
+ },
84
+ deepLink: {
85
+ type: sequelize_1.DataTypes.JSON,
86
+ allowNull: false,
87
+ field: "deep_link",
88
+ },
89
+ rawResponse: {
90
+ type: sequelize_1.DataTypes.JSON,
91
+ allowNull: false,
92
+ field: "raw_response",
93
+ },
94
+ lastPolledAt: {
95
+ type: sequelize_1.DataTypes.DATE,
96
+ allowNull: false,
97
+ field: "last_polled_at",
98
+ },
99
+ settlesAt: {
100
+ type: sequelize_1.DataTypes.DATE,
101
+ allowNull: true,
102
+ },
103
+ createdAt: sequelize_1.DataTypes.DATE,
104
+ updatedAt: sequelize_1.DataTypes.DATE,
105
+ }, {
106
+ tableName: "odds",
107
+ comment: "Odds table, belongs to a bet",
108
+ sequelize: pb_sequelize_1.default,
109
+ });
110
+ sportsbook_1.default.hasMany(Odd, {
111
+ foreignKey: "sportsbookId",
112
+ sourceKey: "id",
113
+ onDelete: "NO ACTION",
114
+ constraints: false,
115
+ });
116
+ market_1.default.hasMany(Odd, {
117
+ foreignKey: "marketId",
118
+ sourceKey: "id",
119
+ onDelete: "NO ACTION",
120
+ constraints: false,
121
+ });
122
+ league_1.default.hasMany(Odd, {
123
+ foreignKey: "leagueId",
124
+ sourceKey: "id",
125
+ onDelete: "NO ACTION",
126
+ constraints: false,
127
+ });
128
+ exports.default = Odd;
129
+ //# sourceMappingURL=odd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odd.js","sourceRoot":"","sources":["../../typed-model/odd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
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 bet_1 = __importDefault(require("./bet"));
9
+ const odd_1 = __importDefault(require("./odd"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class OddsOnBets extends sequelize_1.Model {
12
+ }
13
+ OddsOnBets.init({
14
+ betId: {
15
+ type: sequelize_1.DataTypes.BIGINT,
16
+ allowNull: false,
17
+ references: {
18
+ model: bet_1.default,
19
+ key: "id",
20
+ },
21
+ field: "bet_id",
22
+ },
23
+ oddId: {
24
+ type: sequelize_1.DataTypes.BIGINT,
25
+ allowNull: false,
26
+ references: {
27
+ model: odd_1.default,
28
+ key: "id",
29
+ },
30
+ field: "odd_id",
31
+ },
32
+ }, {
33
+ tableName: "odds_on_bets",
34
+ comment: "Junction table that relates a odd to a type=straight bet",
35
+ timestamps: false,
36
+ sequelize: pb_sequelize_1.default,
37
+ });
38
+ bet_1.default.belongsToMany(odd_1.default, {
39
+ through: OddsOnBets,
40
+ foreignKey: "betId",
41
+ sourceKey: "id",
42
+ onDelete: "NO ACTION",
43
+ constraints: false,
44
+ });
45
+ odd_1.default.belongsToMany(bet_1.default, {
46
+ through: OddsOnBets,
47
+ foreignKey: "oddId",
48
+ sourceKey: "id",
49
+ onDelete: "NO ACTION",
50
+ constraints: false,
51
+ });
52
+ exports.default = OddsOnBets;
53
+ //# sourceMappingURL=odds-on-bets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odds-on-bets.js","sourceRoot":"","sources":["../../typed-model/odds-on-bets.ts"],"names":[],"mappings":";;;;;AAAA,yCAKmB;AAEnB,kEAAuC;AACvC,gDAAwB;AACxB,gDAAwB;AAExB,mEAAmE;AACnE,MAAM,UAAW,SAAQ,iBAGxB;CAKA;AAED,UAAU,CAAC,IAAI,CACb;IACE,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;CACF,EACD;IACE,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,0DAA0D;IACnE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,aAAG,CAAC,aAAa,CAAC,aAAG,EAAE;IACrB,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,aAAG,CAAC,aAAa,CAAC,aAAG,EAAE;IACrB,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,53 @@
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 odd_1 = __importDefault(require("./odd"));
9
+ const parlay_1 = __importDefault(require("./parlay"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class OddsOnParlays extends sequelize_1.Model {
12
+ }
13
+ OddsOnParlays.init({
14
+ parlayId: {
15
+ type: sequelize_1.DataTypes.BIGINT,
16
+ allowNull: false,
17
+ references: {
18
+ model: parlay_1.default,
19
+ key: "id",
20
+ },
21
+ field: "parlay_id",
22
+ },
23
+ oddId: {
24
+ type: sequelize_1.DataTypes.BIGINT,
25
+ allowNull: false,
26
+ references: {
27
+ model: odd_1.default,
28
+ key: "id",
29
+ },
30
+ field: "odd_id",
31
+ },
32
+ }, {
33
+ tableName: "odds_on_parlays",
34
+ comment: "Junction table that relates odds to a parlay",
35
+ timestamps: false,
36
+ sequelize: pb_sequelize_1.default,
37
+ });
38
+ parlay_1.default.belongsToMany(odd_1.default, {
39
+ through: OddsOnParlays,
40
+ foreignKey: "parlayId",
41
+ sourceKey: "id",
42
+ onDelete: "NO ACTION",
43
+ constraints: false,
44
+ });
45
+ odd_1.default.belongsToMany(parlay_1.default, {
46
+ through: OddsOnParlays,
47
+ foreignKey: "oddId",
48
+ sourceKey: "id",
49
+ onDelete: "NO ACTION",
50
+ constraints: false,
51
+ });
52
+ exports.default = OddsOnParlays;
53
+ //# sourceMappingURL=odds-on-parlays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odds-on-parlays.js","sourceRoot":"","sources":["../../typed-model/odds-on-parlays.ts"],"names":[],"mappings":";;;;;AAAA,yCAKmB;AAEnB,kEAAuC;AACvC,gDAAwB;AACxB,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,aAAc,SAAQ,iBAG3B;CAKA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,gBAAM;YACb,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,WAAW;KACnB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;CACF,EACD;IACE,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,8CAA8C;IACvD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,gBAAM,CAAC,aAAa,CAAC,aAAG,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,aAAG,CAAC,aAAa,CAAC,gBAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,55 @@
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 sportsbook_1 = __importDefault(require("./sportsbook"));
9
+ // order of InferAttributes & InferCreationAttributes is important.
10
+ class Parlay extends sequelize_1.Model {
11
+ }
12
+ Parlay.init({
13
+ id: {
14
+ type: sequelize_1.DataTypes.STRING,
15
+ primaryKey: true,
16
+ allowNull: false,
17
+ },
18
+ sportsbookId: {
19
+ type: sequelize_1.DataTypes.STRING,
20
+ allowNull: false,
21
+ field: "sportsbook_id",
22
+ references: {
23
+ model: sportsbook_1.default,
24
+ key: "id",
25
+ },
26
+ },
27
+ price: {
28
+ type: sequelize_1.DataTypes.STRING,
29
+ allowNull: false,
30
+ },
31
+ deepLink: {
32
+ type: sequelize_1.DataTypes.JSON,
33
+ allowNull: false,
34
+ field: "deep_link",
35
+ },
36
+ rawResponse: {
37
+ type: sequelize_1.DataTypes.JSON,
38
+ allowNull: false,
39
+ field: "raw_response",
40
+ },
41
+ createdAt: sequelize_1.DataTypes.DATE,
42
+ updatedAt: sequelize_1.DataTypes.DATE,
43
+ }, {
44
+ tableName: "parlays",
45
+ comment: "Parlays table, belongs to a bet and holds the deep_link to the parlay",
46
+ sequelize: pb_sequelize_1.default,
47
+ });
48
+ sportsbook_1.default.hasMany(Parlay, {
49
+ foreignKey: "sportsbookId",
50
+ sourceKey: "id",
51
+ onDelete: "NO ACTION",
52
+ constraints: false,
53
+ });
54
+ exports.default = Parlay;
55
+ //# sourceMappingURL=parlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parlay.js","sourceRoot":"","sources":["../../typed-model/parlay.ts"],"names":[],"mappings":";;;;;AAAA,yCAMmB;AAEnB,kEAAuC;AACvC,8DAAsC;AAEtC,mEAAmE;AACnE,MAAM,MAAO,SAAQ,iBAGpB;CAQA;AAED,MAAM,CAAC,IAAI,CACT;IACE,EAAE,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,KAAK;KACjB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE;YACV,KAAK,EAAE,oBAAU;YACjB,GAAG,EAAE,IAAI;SACV;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACnB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACtB;IACD,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;CAC1B,EACD;IACE,SAAS,EAAE,SAAS;IACpB,OAAO,EACL,uEAAuE;IACzE,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,oBAAU,CAAC,OAAO,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,53 @@
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 bet_1 = __importDefault(require("./bet"));
9
+ const parlay_1 = __importDefault(require("./parlay"));
10
+ // order of InferAttributes & InferCreationAttributes is important.
11
+ class ParlaysOnBets extends sequelize_1.Model {
12
+ }
13
+ ParlaysOnBets.init({
14
+ betId: {
15
+ type: sequelize_1.DataTypes.BIGINT,
16
+ allowNull: false,
17
+ references: {
18
+ model: bet_1.default,
19
+ key: "id",
20
+ },
21
+ field: "bet_id",
22
+ },
23
+ parlayId: {
24
+ type: sequelize_1.DataTypes.BIGINT,
25
+ allowNull: false,
26
+ references: {
27
+ model: parlay_1.default,
28
+ key: "id",
29
+ },
30
+ field: "parlay_id",
31
+ },
32
+ }, {
33
+ tableName: "parlays_on_bets",
34
+ comment: "Junction table that relates a parlay to a type=parlay bet",
35
+ timestamps: false,
36
+ sequelize: pb_sequelize_1.default,
37
+ });
38
+ bet_1.default.belongsToMany(parlay_1.default, {
39
+ through: ParlaysOnBets,
40
+ foreignKey: "betId",
41
+ sourceKey: "id",
42
+ onDelete: "NO ACTION",
43
+ constraints: false,
44
+ });
45
+ parlay_1.default.belongsToMany(bet_1.default, {
46
+ through: ParlaysOnBets,
47
+ foreignKey: "parlayId",
48
+ sourceKey: "id",
49
+ onDelete: "NO ACTION",
50
+ constraints: false,
51
+ });
52
+ exports.default = ParlaysOnBets;
53
+ //# sourceMappingURL=parlays-on-bets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parlays-on-bets.js","sourceRoot":"","sources":["../../typed-model/parlays-on-bets.ts"],"names":[],"mappings":";;;;;AAAA,yCAKmB;AAEnB,kEAAuC;AACvC,gDAAwB;AAExB,sDAA8B;AAE9B,mEAAmE;AACnE,MAAM,aAAc,SAAQ,iBAG3B;CAKA;AAED,aAAa,CAAC,IAAI,CAChB;IACE,KAAK,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,aAAG;YACV,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,QAAQ;KAChB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE;YACV,KAAK,EAAE,gBAAM;YACb,GAAG,EAAE,IAAI;SACV;QACD,KAAK,EAAE,WAAW;KACnB;CACF,EACD;IACE,SAAS,EAAE,iBAAiB;IAC5B,OAAO,EAAE,2DAA2D;IACpE,UAAU,EAAE,KAAK;IACjB,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,aAAG,CAAC,aAAa,CAAC,gBAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAM,CAAC,aAAa,CAAC,aAAG,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,56 @@
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 Sportsbook extends sequelize_1.Model {
11
+ }
12
+ Sportsbook.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
+ logo: {
34
+ type: sequelize_1.DataTypes.STRING,
35
+ allowNull: false,
36
+ },
37
+ isOnshore: {
38
+ type: sequelize_1.DataTypes.BOOLEAN,
39
+ allowNull: false,
40
+ field: "is_onshore",
41
+ },
42
+ isOffshore: {
43
+ type: sequelize_1.DataTypes.BOOLEAN,
44
+ allowNull: false,
45
+ field: "is_offshore",
46
+ },
47
+ createdAt: sequelize_1.DataTypes.DATE,
48
+ updatedAt: sequelize_1.DataTypes.DATE,
49
+ }, {
50
+ // Other model options go here
51
+ tableName: "sportsbooks",
52
+ comment: "Sportsbooks synched from Odds Jam",
53
+ sequelize: pb_sequelize_1.default,
54
+ });
55
+ exports.default = Sportsbook;
56
+ //# sourceMappingURL=sportsbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sportsbook.js","sourceRoot":"","sources":["../../typed-model/sportsbook.ts"],"names":[],"mappings":";;;;;AAAA,yCAOmB;AAEnB,kEAAuC;AACvC,wCAA0C;AAE1C,mEAAmE;AACnE,MAAM,UAAW,SAAQ,iBAGxB;CAYA;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,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,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM;QACtB,SAAS,EAAE,KAAK;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACpB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,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,aAAa;IACxB,OAAO,EAAE,mCAAmC;IAC5C,SAAS,EAAT,sBAAS;CACV,CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -133,7 +133,7 @@ User.init({
133
133
  platformFee: {
134
134
  type: sequelize_1.DataTypes.INTEGER,
135
135
  field: "platform_fee",
136
- defaultValue: 20,
136
+ defaultValue: 15,
137
137
  },
138
138
  profileViews: {
139
139
  type: sequelize_1.DataTypes.INTEGER,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winible/winible-typed",
3
- "version": "2.70.4",
3
+ "version": "2.71.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/types.ts CHANGED
@@ -164,3 +164,49 @@ export interface TemplatePrompt {
164
164
  export interface ComplianceStatus {
165
165
  [key: string]: any;
166
166
  }
167
+
168
+ export enum StatusType {
169
+ ACTIVE = "active",
170
+ INACTIVE = "inactive",
171
+ }
172
+
173
+ export enum BetType {
174
+ STRAIGHT = "straight",
175
+ PARLAY = "parlay",
176
+ }
177
+
178
+ export enum BetStatusType {
179
+ WON = "won",
180
+ LOST = "lost",
181
+ OPEN = "open",
182
+ VOID = "void",
183
+ }
184
+
185
+ export enum AffiliateLinkLinkTypes {
186
+ WINIBLE = "winible",
187
+ CREATOR = "creator",
188
+ WINIBLE_CREATOR = "winible_creator",
189
+ }
190
+
191
+ export type OddDeepLinkType = {
192
+ ios?: string;
193
+ android?: string;
194
+ desktop?: string;
195
+ };
196
+
197
+ export type OddAssetsType = {
198
+ home_competitor?: {
199
+ name: string;
200
+ abbreviation: string;
201
+ logo: string;
202
+ };
203
+ away_competitor?: {
204
+ name: string;
205
+ abbreviation: string;
206
+ logo: string;
207
+ };
208
+ player?: {
209
+ name: string;
210
+ logo: string;
211
+ };
212
+ };
@@ -0,0 +1,104 @@
1
+ import {
2
+ Model,
3
+ InferAttributes,
4
+ InferCreationAttributes,
5
+ CreationOptional,
6
+ DataTypes,
7
+ fn,
8
+ } from "sequelize";
9
+
10
+ import sequelize from "./pb-sequelize";
11
+ import { AffiliateLinkLinkTypes, StatusType } from "../src/types";
12
+ import User from "./user";
13
+ import Sportsbook from "./sportsbook";
14
+
15
+ // order of InferAttributes & InferCreationAttributes is important.
16
+ class AffiliateLinks extends Model<
17
+ InferAttributes<AffiliateLinks>,
18
+ InferCreationAttributes<AffiliateLinks>
19
+ > {
20
+ // 'CreationOptional' is a special type that marks the field as optional
21
+ // when creating an instance of the model (such as using Model.create()).
22
+ declare id: CreationOptional<string>;
23
+ declare creatorId: string;
24
+ declare sportsbookId: string;
25
+ declare type: AffiliateLinkLinkTypes;
26
+ declare cta: string;
27
+ declare affiliateCode: string;
28
+ declare affiliateLink: string;
29
+ declare createdAt: CreationOptional<Date>;
30
+ declare updatedAt: CreationOptional<Date>;
31
+ }
32
+
33
+ AffiliateLinks.init(
34
+ {
35
+ id: {
36
+ type: DataTypes.BIGINT,
37
+ primaryKey: true,
38
+ allowNull: false,
39
+ defaultValue: sequelize.fn("next_id"),
40
+ },
41
+ creatorId: {
42
+ type: DataTypes.BIGINT,
43
+ allowNull: false,
44
+ references: {
45
+ model: User,
46
+ key: "id",
47
+ },
48
+ field: "creator_id",
49
+ },
50
+ sportsbookId: {
51
+ type: DataTypes.BIGINT,
52
+ allowNull: false,
53
+ references: {
54
+ model: Sportsbook,
55
+ key: "id",
56
+ },
57
+ field: "sportsbook_id",
58
+ },
59
+ type: {
60
+ type: DataTypes.ENUM(...Object.values(AffiliateLinkLinkTypes)),
61
+ allowNull: false,
62
+ },
63
+ cta: {
64
+ type: DataTypes.STRING,
65
+ allowNull: false,
66
+ },
67
+ affiliateCode: {
68
+ type: DataTypes.STRING,
69
+ allowNull: false,
70
+ field: "affiliate_code",
71
+ },
72
+ affiliateLink: {
73
+ type: DataTypes.STRING,
74
+ allowNull: false,
75
+ field: "affiliate_link",
76
+ },
77
+ createdAt: DataTypes.DATE,
78
+ updatedAt: DataTypes.DATE,
79
+ },
80
+ {
81
+ // Other model options go here
82
+ tableName: "affiliate_links",
83
+ comment: "Affiliate Links table, belongs to a user (creator_id)",
84
+ sequelize,
85
+ }
86
+ );
87
+
88
+ User.hasMany(AffiliateLinks, {
89
+ foreignKey: "creatorId",
90
+ sourceKey: "id",
91
+ onDelete: "NO ACTION",
92
+ constraints: false,
93
+ });
94
+
95
+ AffiliateLinks.belongsTo(User, { foreignKey: "creatorId" });
96
+
97
+ Sportsbook.hasMany(AffiliateLinks, {
98
+ foreignKey: "sportsbookId",
99
+ sourceKey: "id",
100
+ onDelete: "NO ACTION",
101
+ constraints: false,
102
+ });
103
+
104
+ export default AffiliateLinks;