@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.
- package/dist/scripts/testModels.js +55 -45
- package/dist/scripts/testModels.js.map +1 -1
- package/dist/src/types.js +24 -1
- package/dist/src/types.js.map +1 -1
- package/dist/typed-model/affiliate-link.js +79 -0
- package/dist/typed-model/affiliate-link.js.map +1 -0
- package/dist/typed-model/bet-sport.js +42 -0
- package/dist/typed-model/bet-sport.js.map +1 -0
- package/dist/typed-model/bet.js +8 -66
- package/dist/typed-model/bet.js.map +1 -1
- package/dist/typed-model/index.js +24 -6
- package/dist/typed-model/index.js.map +1 -1
- package/dist/typed-model/league.js +38 -5
- package/dist/typed-model/league.js.map +1 -1
- package/dist/typed-model/market-on-bet-sport.js +58 -0
- package/dist/typed-model/market-on-bet-sport.js.map +1 -0
- package/dist/typed-model/market.js +37 -0
- package/dist/typed-model/market.js.map +1 -0
- package/dist/typed-model/odd.js +129 -0
- package/dist/typed-model/odd.js.map +1 -0
- package/dist/typed-model/odds-on-bets.js +53 -0
- package/dist/typed-model/odds-on-bets.js.map +1 -0
- package/dist/typed-model/odds-on-parlays.js +53 -0
- package/dist/typed-model/odds-on-parlays.js.map +1 -0
- package/dist/typed-model/parlay.js +55 -0
- package/dist/typed-model/parlay.js.map +1 -0
- package/dist/typed-model/parlays-on-bets.js +53 -0
- package/dist/typed-model/parlays-on-bets.js.map +1 -0
- package/dist/typed-model/sportsbook.js +56 -0
- package/dist/typed-model/sportsbook.js.map +1 -0
- package/dist/typed-model/user.js +1 -1
- package/package.json +1 -1
- package/src/types.ts +46 -0
- package/typed-model/affiliate-link.ts +104 -0
- package/typed-model/bet-sport.ts +61 -0
- package/typed-model/bet.ts +10 -89
- package/typed-model/index.ts +11 -2
- package/typed-model/league.ts +46 -7
- package/typed-model/market-on-bet-sport.ts +76 -0
- package/typed-model/market.ts +55 -0
- package/typed-model/odd.ts +158 -0
- package/typed-model/odds-on-bets.ts +68 -0
- package/typed-model/odds-on-parlays.ts +68 -0
- package/typed-model/parlay.ts +74 -0
- package/typed-model/parlays-on-bets.ts +69 -0
- package/typed-model/sportsbook.ts +78 -0
- package/typed-model/user.ts +1 -1
- 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"}
|
package/dist/typed-model/user.js
CHANGED
package/package.json
CHANGED
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;
|