Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | /**
* Type definitions for games and odds
*/
export interface Sport {
id: string;
key: string;
name: string;
active: boolean;
}
export interface Team {
id: string;
name: string;
abbreviation?: string;
logo?: string;
}
export interface GameOdds {
spread?: {
line: number;
odds: number;
};
total?: {
line: number;
odds: number;
};
moneyline?: number;
}
export interface Game {
id: string;
sportKey: string;
sportName: string;
awayTeamName: string;
homeTeamName: string;
commenceTime: string;
venue?: string;
weather?: string;
status: 'scheduled' | 'in_progress' | 'completed' | 'postponed' | 'cancelled';
awayScore?: number;
homeScore?: number;
awayOdds?: GameOdds;
homeOdds?: GameOdds;
createdAt: string;
updatedAt: string;
}
export interface BetSelection {
gameId: string;
selectionType: 'moneyline' | 'spread' | 'total';
selection: 'home' | 'away' | 'over' | 'under';
odds: number;
line?: number;
gameName: string;
teamName?: string;
}
export interface BetLeg {
id?: string;
gameId: string;
selectionType: 'moneyline' | 'spread' | 'total';
selection: 'home' | 'away' | 'over' | 'under';
odds: number;
line?: number;
teamName?: string;
status?: 'pending' | 'won' | 'lost' | 'push';
game?: Game;
sgpGroupId?: string | null;
userAdjustedOdds?: number;
}
export interface FutureLeg {
id?: string;
futureId: string;
futureTitle: string;
outcome: string;
odds: number;
status?: 'pending' | 'won' | 'lost' | 'push';
sportKey?: string;
userAdjustedOdds?: number;
}
export interface Bet {
id: string;
name: string;
betType: 'single' | 'parlay' | 'teaser';
status: 'pending' | 'won' | 'lost' | 'push' | 'cancelled';
stake: number;
oddsAtPlacement: number;
potentialPayout?: number;
actualPayout?: number;
placedAt: string;
settledAt?: string;
legs: BetLeg[];
futureLegs?: FutureLeg[];
}
export interface BetStats {
totalBets: number;
wonBets: number;
lostBets: number;
pushBets: number;
winRate: number;
totalStaked: number;
totalReturn: number;
netProfit: number;
roi: number;
}
|