overtime-live-trading-utils 2.1.44 → 2.1.45

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/.circleci/config.yml +32 -32
  2. package/.prettierrc +9 -9
  3. package/CLAUDE.md +84 -0
  4. package/codecov.yml +20 -20
  5. package/index.ts +26 -26
  6. package/jest.config.ts +16 -16
  7. package/main.js +1 -1
  8. package/package.json +30 -30
  9. package/resolution_live_markets.md +356 -0
  10. package/src/constants/common.ts +7 -7
  11. package/src/constants/errors.ts +6 -6
  12. package/src/constants/sports.ts +78 -78
  13. package/src/enums/sports.ts +109 -109
  14. package/src/tests/mock/MockLeagueMap.ts +170 -170
  15. package/src/tests/mock/MockOpticOddsEvents.ts +662 -662
  16. package/src/tests/mock/MockOpticSoccer.ts +9378 -9378
  17. package/src/tests/mock/MockSoccerRedis.ts +2308 -2308
  18. package/src/tests/unit/bookmakers.test.ts +79 -79
  19. package/src/tests/unit/markets.test.ts +156 -156
  20. package/src/tests/unit/odds.test.ts +92 -92
  21. package/src/tests/unit/resolution.test.ts +1489 -1489
  22. package/src/tests/unit/sports.test.ts +58 -58
  23. package/src/tests/unit/spread.test.ts +131 -131
  24. package/src/types/missing-types.d.ts +2 -2
  25. package/src/types/odds.ts +61 -61
  26. package/src/types/resolution.ts +660 -656
  27. package/src/types/sports.ts +19 -19
  28. package/src/utils/bookmakers.ts +159 -159
  29. package/src/utils/constraints.ts +210 -210
  30. package/src/utils/gameMatching.ts +81 -81
  31. package/src/utils/markets.ts +119 -119
  32. package/src/utils/odds.ts +918 -918
  33. package/src/utils/opticOdds.ts +71 -71
  34. package/src/utils/resolution.ts +319 -319
  35. package/src/utils/sportPeriodMapping.ts +36 -36
  36. package/src/utils/sports.ts +51 -51
  37. package/src/utils/spread.ts +97 -97
  38. package/tsconfig.json +16 -16
  39. package/webpack.config.js +24 -24
@@ -1,109 +1,109 @@
1
- export const enum TennisSubLeague {
2
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15611,
3
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15612,
4
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15613,
5
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15614,
6
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15615,
7
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15616,
8
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15617,
9
- TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15618,
10
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15211,
11
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15212,
12
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15213,
13
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15214,
14
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15215,
15
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15216,
16
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15217,
17
- TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15218,
18
- TENNIS_MASTERS_LIVE_MAPPING_V2_1 = 15622,
19
- TENNIS_MASTERS_LIVE_MAPPING_V2_2 = 15623,
20
- TENNIS_MASTERS_LIVE_MAPPING_V2_3 = 15624,
21
- TENNIS_MASTERS_LIVE_MAPPING_V2_4 = 15625,
22
- TENNIS_MASTERS_LIVE_MAPPING_V2_5 = 15626,
23
- TENNIS_MASTERS_LIVE_MAPPING_V2_6 = 15627,
24
- TENNIS_MASTERS_LIVE_MAPPING_V2_7 = 15628,
25
- TENNIS_MASTERS_LIVE_MAPPING_V2_8 = 15632,
26
- TENNIS_MASTERS_LIVE_MAPPING_V2_9 = 15633,
27
- TENNIS_MASTERS_LIVE_MAPPING_V2_10 = 15634,
28
- TENNIS_MASTERS_LIVE_MAPPING_V2_11 = 15635,
29
- TENNIS_MASTERS_LIVE_MAPPING_V2_12 = 15636,
30
- TENNIS_MASTERS_LIVE_MAPPING_V2_13 = 15637,
31
- TENNIS_MASTERS_LIVE_MAPPING_V2_14 = 15638,
32
- TENNIS_MASTERS_LIVE_MAPPING_V2_15 = 15641,
33
- TENNIS_MASTERS_LIVE_MAPPING_V2_16 = 15642,
34
- TENNIS_MASTERS_LIVE_MAPPING_V2_17 = 15643,
35
- TENNIS_MASTERS_LIVE_MAPPING_V2_18 = 15644,
36
- TENNIS_MASTERS_LIVE_MAPPING_V2_19 = 15645,
37
- TENNIS_MASTERS_LIVE_MAPPING_V2_20 = 15646,
38
- TENNIS_MASTERS_LIVE_MAPPING_V2_21 = 15647,
39
- TENNIS_MASTERS_LIVE_MAPPING_V2_22 = 15648,
40
- TENNIS_WTA_LIVE_MAPPING_V2_1 = 15222,
41
- TENNIS_WTA_LIVE_MAPPING_V2_2 = 15223,
42
- TENNIS_WTA_LIVE_MAPPING_V2_3 = 15224,
43
- TENNIS_WTA_LIVE_MAPPING_V2_4 = 15225,
44
- TENNIS_WTA_LIVE_MAPPING_V2_5 = 15226,
45
- TENNIS_WTA_LIVE_MAPPING_V2_6 = 15227,
46
- TENNIS_WTA_LIVE_MAPPING_V2_7 = 15228,
47
- TENNIS_WTA_LIVE_MAPPING_V2_8 = 15231, // Tennis WTA 500 unknown round
48
- TENNIS_WTA_LIVE_MAPPING_V2_9 = 15232, // Tennis WTA 500 1st round
49
- TENNIS_WTA_LIVE_MAPPING_V2_10 = 15233, // Tennis WTA 500 2nd round
50
- TENNIS_WTA_LIVE_MAPPING_V2_11 = 15234, // Tennis WTA 500 3rd round
51
- TENNIS_WTA_LIVE_MAPPING_V2_12 = 15235, // Tennis WTA 500 4th round
52
- TENNIS_WTA_LIVE_MAPPING_V2_13 = 15236, // Tennis WTA 500 quarterfinals
53
- TENNIS_WTA_LIVE_MAPPING_V2_14 = 15237, // Tennis WTA 500 semifinals
54
- TENNIS_WTA_LIVE_MAPPING_V2_15 = 15238, // Tennis WTA 500 finals
55
- TENNIS_WTA_LIVE_MAPPING_V2_16 = 15241, // Tennis WTA 250 unknown round
56
- TENNIS_WTA_LIVE_MAPPING_V2_17 = 15242, // Tennis WTA 250 1st round
57
- TENNIS_WTA_LIVE_MAPPING_V2_18 = 15243, // Tennis WTA 250 2nd round
58
- TENNIS_WTA_LIVE_MAPPING_V2_19 = 15244, // Tennis WTA 250 3rd round
59
- TENNIS_WTA_LIVE_MAPPING_V2_20 = 15245, // Tennis WTA 250 4th round
60
- TENNIS_WTA_LIVE_MAPPING_V2_21 = 15246, // Tennis WTA 250 quarterfinals
61
- TENNIS_WTA_LIVE_MAPPING_V2_22 = 15247, // Tennis WTA 250 semifinals
62
- TENNIS_WTA_LIVE_MAPPING_V2_23 = 15248, // Tennis WTA 250 finals
63
- }
64
-
65
- export enum MoneylineTypes {
66
- MONEYLINE = 'Moneyline',
67
- }
68
-
69
- export enum SpreadTypes {
70
- ASIAN_HANDICAP = 'Asian Handicap',
71
- GAME_SPREAD = 'Game Spread',
72
- POINT_SPREAD = 'Point Spread',
73
- GOAL_SPREAD = 'Goal Spread',
74
- RUN_LINE = 'Run Line',
75
- PUCK_LINE = 'Puck Line',
76
- }
77
-
78
- export enum TotalTypes {
79
- TOTAL_GAMES = 'Total Games',
80
- TOTAL_GOALS = 'Total Goals',
81
- TOTAL_POINTS = 'Total Points',
82
- TOTAL_RUNS = 'Total Runs',
83
- }
84
-
85
- export enum ScoringType {
86
- POINTS = 'points',
87
- GOALS = 'goals',
88
- ROUNDS = 'rounds',
89
- SETS = 'sets',
90
- MAPS = 'maps',
91
- EMPTY = '',
92
- }
93
-
94
- export enum MatchResolveType {
95
- OVERTIME = 'overtime',
96
- REGULAR = 'regular',
97
- EMPTY = '',
98
- }
99
-
100
- export enum PeriodType {
101
- QUARTER = 'quarter',
102
- HALF = 'half',
103
- PERIOD = 'period',
104
- ROUND = 'round',
105
- INNING = 'inning',
106
- SET = 'set',
107
- MAP = 'map',
108
- EMPTY = '',
109
- }
1
+ export const enum TennisSubLeague {
2
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15611,
3
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15612,
4
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15613,
5
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15614,
6
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15615,
7
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15616,
8
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15617,
9
+ TENNIS_ATP_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15618,
10
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_0 = 15211,
11
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15212,
12
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_2 = 15213,
13
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_3 = 15214,
14
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_4 = 15215,
15
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_5 = 15216,
16
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_6 = 15217,
17
+ TENNIS_WTA_GRAND_SLAM_LIVE_MAPPING_V2_7 = 15218,
18
+ TENNIS_MASTERS_LIVE_MAPPING_V2_1 = 15622,
19
+ TENNIS_MASTERS_LIVE_MAPPING_V2_2 = 15623,
20
+ TENNIS_MASTERS_LIVE_MAPPING_V2_3 = 15624,
21
+ TENNIS_MASTERS_LIVE_MAPPING_V2_4 = 15625,
22
+ TENNIS_MASTERS_LIVE_MAPPING_V2_5 = 15626,
23
+ TENNIS_MASTERS_LIVE_MAPPING_V2_6 = 15627,
24
+ TENNIS_MASTERS_LIVE_MAPPING_V2_7 = 15628,
25
+ TENNIS_MASTERS_LIVE_MAPPING_V2_8 = 15632,
26
+ TENNIS_MASTERS_LIVE_MAPPING_V2_9 = 15633,
27
+ TENNIS_MASTERS_LIVE_MAPPING_V2_10 = 15634,
28
+ TENNIS_MASTERS_LIVE_MAPPING_V2_11 = 15635,
29
+ TENNIS_MASTERS_LIVE_MAPPING_V2_12 = 15636,
30
+ TENNIS_MASTERS_LIVE_MAPPING_V2_13 = 15637,
31
+ TENNIS_MASTERS_LIVE_MAPPING_V2_14 = 15638,
32
+ TENNIS_MASTERS_LIVE_MAPPING_V2_15 = 15641,
33
+ TENNIS_MASTERS_LIVE_MAPPING_V2_16 = 15642,
34
+ TENNIS_MASTERS_LIVE_MAPPING_V2_17 = 15643,
35
+ TENNIS_MASTERS_LIVE_MAPPING_V2_18 = 15644,
36
+ TENNIS_MASTERS_LIVE_MAPPING_V2_19 = 15645,
37
+ TENNIS_MASTERS_LIVE_MAPPING_V2_20 = 15646,
38
+ TENNIS_MASTERS_LIVE_MAPPING_V2_21 = 15647,
39
+ TENNIS_MASTERS_LIVE_MAPPING_V2_22 = 15648,
40
+ TENNIS_WTA_LIVE_MAPPING_V2_1 = 15222,
41
+ TENNIS_WTA_LIVE_MAPPING_V2_2 = 15223,
42
+ TENNIS_WTA_LIVE_MAPPING_V2_3 = 15224,
43
+ TENNIS_WTA_LIVE_MAPPING_V2_4 = 15225,
44
+ TENNIS_WTA_LIVE_MAPPING_V2_5 = 15226,
45
+ TENNIS_WTA_LIVE_MAPPING_V2_6 = 15227,
46
+ TENNIS_WTA_LIVE_MAPPING_V2_7 = 15228,
47
+ TENNIS_WTA_LIVE_MAPPING_V2_8 = 15231, // Tennis WTA 500 unknown round
48
+ TENNIS_WTA_LIVE_MAPPING_V2_9 = 15232, // Tennis WTA 500 1st round
49
+ TENNIS_WTA_LIVE_MAPPING_V2_10 = 15233, // Tennis WTA 500 2nd round
50
+ TENNIS_WTA_LIVE_MAPPING_V2_11 = 15234, // Tennis WTA 500 3rd round
51
+ TENNIS_WTA_LIVE_MAPPING_V2_12 = 15235, // Tennis WTA 500 4th round
52
+ TENNIS_WTA_LIVE_MAPPING_V2_13 = 15236, // Tennis WTA 500 quarterfinals
53
+ TENNIS_WTA_LIVE_MAPPING_V2_14 = 15237, // Tennis WTA 500 semifinals
54
+ TENNIS_WTA_LIVE_MAPPING_V2_15 = 15238, // Tennis WTA 500 finals
55
+ TENNIS_WTA_LIVE_MAPPING_V2_16 = 15241, // Tennis WTA 250 unknown round
56
+ TENNIS_WTA_LIVE_MAPPING_V2_17 = 15242, // Tennis WTA 250 1st round
57
+ TENNIS_WTA_LIVE_MAPPING_V2_18 = 15243, // Tennis WTA 250 2nd round
58
+ TENNIS_WTA_LIVE_MAPPING_V2_19 = 15244, // Tennis WTA 250 3rd round
59
+ TENNIS_WTA_LIVE_MAPPING_V2_20 = 15245, // Tennis WTA 250 4th round
60
+ TENNIS_WTA_LIVE_MAPPING_V2_21 = 15246, // Tennis WTA 250 quarterfinals
61
+ TENNIS_WTA_LIVE_MAPPING_V2_22 = 15247, // Tennis WTA 250 semifinals
62
+ TENNIS_WTA_LIVE_MAPPING_V2_23 = 15248, // Tennis WTA 250 finals
63
+ }
64
+
65
+ export enum MoneylineTypes {
66
+ MONEYLINE = 'Moneyline',
67
+ }
68
+
69
+ export enum SpreadTypes {
70
+ ASIAN_HANDICAP = 'Asian Handicap',
71
+ GAME_SPREAD = 'Game Spread',
72
+ POINT_SPREAD = 'Point Spread',
73
+ GOAL_SPREAD = 'Goal Spread',
74
+ RUN_LINE = 'Run Line',
75
+ PUCK_LINE = 'Puck Line',
76
+ }
77
+
78
+ export enum TotalTypes {
79
+ TOTAL_GAMES = 'Total Games',
80
+ TOTAL_GOALS = 'Total Goals',
81
+ TOTAL_POINTS = 'Total Points',
82
+ TOTAL_RUNS = 'Total Runs',
83
+ }
84
+
85
+ export enum ScoringType {
86
+ POINTS = 'points',
87
+ GOALS = 'goals',
88
+ ROUNDS = 'rounds',
89
+ SETS = 'sets',
90
+ MAPS = 'maps',
91
+ EMPTY = '',
92
+ }
93
+
94
+ export enum MatchResolveType {
95
+ OVERTIME = 'overtime',
96
+ REGULAR = 'regular',
97
+ EMPTY = '',
98
+ }
99
+
100
+ export enum PeriodType {
101
+ QUARTER = 'quarter',
102
+ HALF = 'half',
103
+ PERIOD = 'period',
104
+ ROUND = 'round',
105
+ INNING = 'inning',
106
+ SET = 'set',
107
+ MAP = 'map',
108
+ EMPTY = '',
109
+ }
@@ -1,170 +1,170 @@
1
- import { LeagueConfigInfo } from '../../types/sports';
2
-
3
- const baseLeagueInfo: LeagueConfigInfo = {
4
- sportId: 9806,
5
- enabled: 'true',
6
- marketName: 'Moneyline',
7
- typeId: 0,
8
- type: 'moneyline',
9
- maxOdds: 0.25,
10
- minOdds: 0.75,
11
- };
12
-
13
- const spreadMock: LeagueConfigInfo = {
14
- sportId: 9806,
15
- enabled: 'true',
16
- marketName: 'Goal Spread',
17
- typeId: 10001,
18
- type: 'Spread',
19
- maxOdds: 0.25,
20
- minOdds: 0.75,
21
- };
22
-
23
- const totalMock: LeagueConfigInfo = {
24
- sportId: 9806,
25
- enabled: 'true',
26
- marketName: 'Total Goals',
27
- typeId: 10002,
28
- type: 'Total',
29
- maxOdds: 0.25,
30
- minOdds: 0.75,
31
- };
32
-
33
- const doubleChanceMock: LeagueConfigInfo = {
34
- sportId: 9806,
35
- enabled: 'true',
36
- marketName: 'Double Chance',
37
- typeId: 10003,
38
- type: 'Double Chance',
39
- maxOdds: 0.01,
40
- minOdds: 0.99,
41
- };
42
-
43
- const correctScoreMock: LeagueConfigInfo = {
44
- sportId: 9806,
45
- enabled: 'true',
46
- marketName: 'Correct Score',
47
- typeId: 10100,
48
- type: 'Correct Score',
49
- maxOdds: 0.25,
50
- minOdds: 0.75,
51
- };
52
-
53
- const childMoneylineMock: LeagueConfigInfo = {
54
- sportId: 9806,
55
- enabled: 'true',
56
- marketName: '1st Half Moneyline',
57
- typeId: 10022,
58
- type: 'Moneyline',
59
- maxOdds: 0.25,
60
- minOdds: 0.75,
61
- };
62
-
63
- const bothTeamsToScoreMock: LeagueConfigInfo = {
64
- sportId: 9806,
65
- enabled: 'true',
66
- marketName: 'Both Teams To Score',
67
- typeId: 10009,
68
- type: 'Both Teams To Score',
69
- maxOdds: 0.01,
70
- minOdds: 0.99,
71
- };
72
-
73
- const bothTeamsToScoreMock1stHalf: LeagueConfigInfo = {
74
- sportId: 9806,
75
- enabled: 'true',
76
- marketName: '1st Half Both Teams To Score',
77
- typeId: 10101,
78
- type: 'Both Teams To Score',
79
- maxOdds: 0.01,
80
- minOdds: 0.99,
81
- };
82
-
83
- const bothTeamsToScoreMock2ndHalf: LeagueConfigInfo = {
84
- sportId: 9806,
85
- enabled: 'true',
86
- marketName: '2nd Half Both Teams To Score',
87
- typeId: 10102,
88
- type: 'Both Teams To Score',
89
- maxOdds: 0.01,
90
- minOdds: 0.99,
91
- };
92
-
93
- const drawNoBetMock: LeagueConfigInfo = {
94
- sportId: 9806,
95
- enabled: 'true',
96
- marketName: 'Draw No Bet',
97
- typeId: 10010,
98
- type: 'Moneyline',
99
- maxOdds: 0.01,
100
- minOdds: 0.99,
101
- };
102
-
103
- const willThereBeOvertime: LeagueConfigInfo = {
104
- sportId: 9806,
105
- enabled: 'true',
106
- marketName: 'Will There Be Overtime',
107
- typeId: 10131,
108
- type: 'Both Teams To Score',
109
- maxOdds: 0.01,
110
- minOdds: 0.99,
111
- };
112
-
113
- const baseDiffSportId: LeagueConfigInfo = {
114
- ...baseLeagueInfo,
115
- sportId: 4,
116
- };
117
-
118
- // Mock Variants
119
- const leagueInfoOnlyParent: LeagueConfigInfo[] = [baseLeagueInfo];
120
- const leagueInfoOnlyParentWithSpreadAdded: LeagueConfigInfo[] = [{ ...baseLeagueInfo, addedSpread: 3 }];
121
- const leagueInfoOnlyParentDiffSportId: LeagueConfigInfo[] = [baseDiffSportId];
122
-
123
- const leagueInfoMockDisabledChilds: LeagueConfigInfo[] = [
124
- baseLeagueInfo,
125
- { ...spreadMock, enabled: 'false' },
126
- { ...totalMock, enabled: 'false' },
127
- { ...doubleChanceMock, enabled: 'false' },
128
- { ...correctScoreMock, enabled: 'false' },
129
- ];
130
-
131
- const leagueInfoEnabledSpreadDisabledTotals: LeagueConfigInfo[] = [
132
- baseLeagueInfo,
133
- spreadMock,
134
- { ...totalMock, enabled: 'false' },
135
- ];
136
-
137
- const leagueInfoDisabledCorrectScoreAndDoubleChance: LeagueConfigInfo[] = [
138
- baseLeagueInfo,
139
- spreadMock,
140
- totalMock,
141
- { ...doubleChanceMock, enabled: 'false' },
142
- { ...correctScoreMock, enabled: 'false' },
143
- ];
144
-
145
- const leagueInfoEnabledSpeadAndTotals: LeagueConfigInfo[] = [baseLeagueInfo, spreadMock, totalMock];
146
- const leagueInfoEnabledAll: LeagueConfigInfo[] = [
147
- baseLeagueInfo,
148
- spreadMock,
149
- totalMock,
150
- childMoneylineMock,
151
- doubleChanceMock,
152
- correctScoreMock,
153
- bothTeamsToScoreMock,
154
- bothTeamsToScoreMock1stHalf,
155
- bothTeamsToScoreMock2ndHalf,
156
- drawNoBetMock,
157
- willThereBeOvertime,
158
- ];
159
-
160
- // Grouped Exports
161
- export const LeagueMocks = {
162
- leagueInfoOnlyParent,
163
- leagueInfoOnlyParentWithSpreadAdded,
164
- leagueInfoOnlyParentDiffSportId,
165
- leagueInfoMockDisabledChilds,
166
- leagueInfoEnabledSpreadDisabledTotals,
167
- leagueInfoEnabledSpeadAndTotals,
168
- leagueInfoEnabledAll,
169
- leagueInfoDisabledCorrectScoreAndDoubleChance,
170
- };
1
+ import { LeagueConfigInfo } from '../../types/sports';
2
+
3
+ const baseLeagueInfo: LeagueConfigInfo = {
4
+ sportId: 9806,
5
+ enabled: 'true',
6
+ marketName: 'Moneyline',
7
+ typeId: 0,
8
+ type: 'moneyline',
9
+ maxOdds: 0.25,
10
+ minOdds: 0.75,
11
+ };
12
+
13
+ const spreadMock: LeagueConfigInfo = {
14
+ sportId: 9806,
15
+ enabled: 'true',
16
+ marketName: 'Goal Spread',
17
+ typeId: 10001,
18
+ type: 'Spread',
19
+ maxOdds: 0.25,
20
+ minOdds: 0.75,
21
+ };
22
+
23
+ const totalMock: LeagueConfigInfo = {
24
+ sportId: 9806,
25
+ enabled: 'true',
26
+ marketName: 'Total Goals',
27
+ typeId: 10002,
28
+ type: 'Total',
29
+ maxOdds: 0.25,
30
+ minOdds: 0.75,
31
+ };
32
+
33
+ const doubleChanceMock: LeagueConfigInfo = {
34
+ sportId: 9806,
35
+ enabled: 'true',
36
+ marketName: 'Double Chance',
37
+ typeId: 10003,
38
+ type: 'Double Chance',
39
+ maxOdds: 0.01,
40
+ minOdds: 0.99,
41
+ };
42
+
43
+ const correctScoreMock: LeagueConfigInfo = {
44
+ sportId: 9806,
45
+ enabled: 'true',
46
+ marketName: 'Correct Score',
47
+ typeId: 10100,
48
+ type: 'Correct Score',
49
+ maxOdds: 0.25,
50
+ minOdds: 0.75,
51
+ };
52
+
53
+ const childMoneylineMock: LeagueConfigInfo = {
54
+ sportId: 9806,
55
+ enabled: 'true',
56
+ marketName: '1st Half Moneyline',
57
+ typeId: 10022,
58
+ type: 'Moneyline',
59
+ maxOdds: 0.25,
60
+ minOdds: 0.75,
61
+ };
62
+
63
+ const bothTeamsToScoreMock: LeagueConfigInfo = {
64
+ sportId: 9806,
65
+ enabled: 'true',
66
+ marketName: 'Both Teams To Score',
67
+ typeId: 10009,
68
+ type: 'Both Teams To Score',
69
+ maxOdds: 0.01,
70
+ minOdds: 0.99,
71
+ };
72
+
73
+ const bothTeamsToScoreMock1stHalf: LeagueConfigInfo = {
74
+ sportId: 9806,
75
+ enabled: 'true',
76
+ marketName: '1st Half Both Teams To Score',
77
+ typeId: 10101,
78
+ type: 'Both Teams To Score',
79
+ maxOdds: 0.01,
80
+ minOdds: 0.99,
81
+ };
82
+
83
+ const bothTeamsToScoreMock2ndHalf: LeagueConfigInfo = {
84
+ sportId: 9806,
85
+ enabled: 'true',
86
+ marketName: '2nd Half Both Teams To Score',
87
+ typeId: 10102,
88
+ type: 'Both Teams To Score',
89
+ maxOdds: 0.01,
90
+ minOdds: 0.99,
91
+ };
92
+
93
+ const drawNoBetMock: LeagueConfigInfo = {
94
+ sportId: 9806,
95
+ enabled: 'true',
96
+ marketName: 'Draw No Bet',
97
+ typeId: 10010,
98
+ type: 'Moneyline',
99
+ maxOdds: 0.01,
100
+ minOdds: 0.99,
101
+ };
102
+
103
+ const willThereBeOvertime: LeagueConfigInfo = {
104
+ sportId: 9806,
105
+ enabled: 'true',
106
+ marketName: 'Will There Be Overtime',
107
+ typeId: 10131,
108
+ type: 'Both Teams To Score',
109
+ maxOdds: 0.01,
110
+ minOdds: 0.99,
111
+ };
112
+
113
+ const baseDiffSportId: LeagueConfigInfo = {
114
+ ...baseLeagueInfo,
115
+ sportId: 4,
116
+ };
117
+
118
+ // Mock Variants
119
+ const leagueInfoOnlyParent: LeagueConfigInfo[] = [baseLeagueInfo];
120
+ const leagueInfoOnlyParentWithSpreadAdded: LeagueConfigInfo[] = [{ ...baseLeagueInfo, addedSpread: 3 }];
121
+ const leagueInfoOnlyParentDiffSportId: LeagueConfigInfo[] = [baseDiffSportId];
122
+
123
+ const leagueInfoMockDisabledChilds: LeagueConfigInfo[] = [
124
+ baseLeagueInfo,
125
+ { ...spreadMock, enabled: 'false' },
126
+ { ...totalMock, enabled: 'false' },
127
+ { ...doubleChanceMock, enabled: 'false' },
128
+ { ...correctScoreMock, enabled: 'false' },
129
+ ];
130
+
131
+ const leagueInfoEnabledSpreadDisabledTotals: LeagueConfigInfo[] = [
132
+ baseLeagueInfo,
133
+ spreadMock,
134
+ { ...totalMock, enabled: 'false' },
135
+ ];
136
+
137
+ const leagueInfoDisabledCorrectScoreAndDoubleChance: LeagueConfigInfo[] = [
138
+ baseLeagueInfo,
139
+ spreadMock,
140
+ totalMock,
141
+ { ...doubleChanceMock, enabled: 'false' },
142
+ { ...correctScoreMock, enabled: 'false' },
143
+ ];
144
+
145
+ const leagueInfoEnabledSpeadAndTotals: LeagueConfigInfo[] = [baseLeagueInfo, spreadMock, totalMock];
146
+ const leagueInfoEnabledAll: LeagueConfigInfo[] = [
147
+ baseLeagueInfo,
148
+ spreadMock,
149
+ totalMock,
150
+ childMoneylineMock,
151
+ doubleChanceMock,
152
+ correctScoreMock,
153
+ bothTeamsToScoreMock,
154
+ bothTeamsToScoreMock1stHalf,
155
+ bothTeamsToScoreMock2ndHalf,
156
+ drawNoBetMock,
157
+ willThereBeOvertime,
158
+ ];
159
+
160
+ // Grouped Exports
161
+ export const LeagueMocks = {
162
+ leagueInfoOnlyParent,
163
+ leagueInfoOnlyParentWithSpreadAdded,
164
+ leagueInfoOnlyParentDiffSportId,
165
+ leagueInfoMockDisabledChilds,
166
+ leagueInfoEnabledSpreadDisabledTotals,
167
+ leagueInfoEnabledSpeadAndTotals,
168
+ leagueInfoEnabledAll,
169
+ leagueInfoDisabledCorrectScoreAndDoubleChance,
170
+ };