Best landing page yet, lost logged in links to lists of bets
This commit is contained in:
@ -10,6 +10,7 @@ export interface User {
|
||||
losses: number
|
||||
win_rate: number
|
||||
status: 'active' | 'suspended' | 'pending_verification'
|
||||
is_admin: boolean
|
||||
created_at: string
|
||||
}
|
||||
|
||||
|
||||
53
frontend/src/types/sport-event.ts
Normal file
53
frontend/src/types/sport-event.ts
Normal file
@ -0,0 +1,53 @@
|
||||
export enum SportType {
|
||||
FOOTBALL = "football",
|
||||
BASKETBALL = "basketball",
|
||||
BASEBALL = "baseball",
|
||||
HOCKEY = "hockey",
|
||||
SOCCER = "soccer",
|
||||
}
|
||||
|
||||
export enum EventStatus {
|
||||
UPCOMING = "upcoming",
|
||||
LIVE = "live",
|
||||
COMPLETED = "completed",
|
||||
CANCELLED = "cancelled",
|
||||
}
|
||||
|
||||
export interface SportEvent {
|
||||
id: number;
|
||||
sport: SportType;
|
||||
home_team: string;
|
||||
away_team: string;
|
||||
official_spread: number;
|
||||
game_time: string;
|
||||
venue: string | null;
|
||||
league: string | null;
|
||||
min_spread: number;
|
||||
max_spread: number;
|
||||
min_bet_amount: number;
|
||||
max_bet_amount: number;
|
||||
status: EventStatus;
|
||||
final_score_home: number | null;
|
||||
final_score_away: number | null;
|
||||
created_by: number;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface SpreadGridBet {
|
||||
bet_id: number;
|
||||
creator_id: number;
|
||||
creator_username: string;
|
||||
stake: number;
|
||||
status: string;
|
||||
team: string;
|
||||
can_take: boolean;
|
||||
}
|
||||
|
||||
export type SpreadGrid = {
|
||||
[spread: string]: SpreadGridBet[];
|
||||
};
|
||||
|
||||
export interface SportEventWithBets extends SportEvent {
|
||||
spread_grid: SpreadGrid;
|
||||
}
|
||||
45
frontend/src/types/spread-bet.ts
Normal file
45
frontend/src/types/spread-bet.ts
Normal file
@ -0,0 +1,45 @@
|
||||
export enum TeamSide {
|
||||
HOME = "home",
|
||||
AWAY = "away",
|
||||
}
|
||||
|
||||
export enum SpreadBetStatus {
|
||||
OPEN = "open",
|
||||
MATCHED = "matched",
|
||||
COMPLETED = "completed",
|
||||
CANCELLED = "cancelled",
|
||||
DISPUTED = "disputed",
|
||||
}
|
||||
|
||||
export interface SpreadBetCreate {
|
||||
event_id: number;
|
||||
spread: number;
|
||||
team: TeamSide;
|
||||
stake_amount: number;
|
||||
}
|
||||
|
||||
export interface SpreadBet {
|
||||
id: number;
|
||||
event_id: number;
|
||||
spread: number;
|
||||
team: TeamSide;
|
||||
creator_id: number;
|
||||
taker_id: number | null;
|
||||
stake_amount: number;
|
||||
house_commission_percent: number;
|
||||
status: SpreadBetStatus;
|
||||
payout_amount: number | null;
|
||||
winner_id: number | null;
|
||||
created_at: string;
|
||||
matched_at: string | null;
|
||||
completed_at: string | null;
|
||||
}
|
||||
|
||||
export interface SpreadBetDetail extends SpreadBet {
|
||||
creator_username: string;
|
||||
taker_username: string | null;
|
||||
event_home_team: string;
|
||||
event_away_team: string;
|
||||
event_official_spread: number;
|
||||
event_game_time: string;
|
||||
}
|
||||
Reference in New Issue
Block a user