v28
This commit is contained in:
@@ -10,6 +10,7 @@ import type {
|
||||
TeamSearchParams,
|
||||
HeadToHeadParams,
|
||||
TeamMatchesParams,
|
||||
PaginatedMatchesResponse,
|
||||
} from "./types";
|
||||
|
||||
/**
|
||||
@@ -59,7 +60,7 @@ const getTeamById = (id: string) => {
|
||||
};
|
||||
|
||||
const getTeamMatches = (id: string, params?: TeamMatchesParams) => {
|
||||
return apiRequest<ApiResponse<MatchResponseDto[]>>({
|
||||
return apiRequest<PaginatedMatchesResponse>({
|
||||
url: `/leagues/teams/${id}/matches`,
|
||||
client: "core",
|
||||
method: "get",
|
||||
|
||||
@@ -21,9 +21,18 @@ export interface HeadToHeadParams {
|
||||
}
|
||||
|
||||
export interface TeamMatchesParams {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
}
|
||||
|
||||
export interface PaginatedMatchesResponse {
|
||||
data: import("@/lib/api/matches/types").MatchResponseDto[];
|
||||
total: number;
|
||||
page: number;
|
||||
limit: number;
|
||||
totalPages: number;
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Response DTOs
|
||||
// ========================
|
||||
|
||||
@@ -141,6 +141,93 @@ export interface MarketBoardEntryDto {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
// ========================
|
||||
// V28 Odds-Band Engine DTOs
|
||||
// ========================
|
||||
|
||||
export interface OddsBandEntryDto {
|
||||
win_rate?: number;
|
||||
draw_rate?: number;
|
||||
lose_rate?: number;
|
||||
over_rate?: number;
|
||||
under_rate?: number;
|
||||
yes_rate?: number;
|
||||
no_rate?: number;
|
||||
odd_rate?: number;
|
||||
even_rate?: number;
|
||||
"1x_rate"?: number;
|
||||
"x2_rate"?: number;
|
||||
"12_rate"?: number;
|
||||
"1x_sample"?: number;
|
||||
"x2_sample"?: number;
|
||||
"12_sample"?: number;
|
||||
sample: number;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface OddsBandCardsDto {
|
||||
referee_avg: number;
|
||||
referee_over_rate: number;
|
||||
referee_sample: number;
|
||||
team_avg: number;
|
||||
team_over_rate: number;
|
||||
team_sample: number;
|
||||
combined_over_rate: number;
|
||||
sample: number;
|
||||
}
|
||||
|
||||
export interface OddsBandHtftComboDto {
|
||||
rate: number;
|
||||
sample: number;
|
||||
}
|
||||
|
||||
export interface TripleValueEntryDto {
|
||||
v27_prob?: number;
|
||||
band_rate: number;
|
||||
implied_prob: number;
|
||||
combined_prob?: number;
|
||||
edge: number;
|
||||
band_sample: number;
|
||||
confirmations?: number;
|
||||
is_value: boolean;
|
||||
}
|
||||
|
||||
export type HtftComboKey =
|
||||
| "11" | "1x" | "12"
|
||||
| "x1" | "xx" | "x2"
|
||||
| "21" | "2x" | "22";
|
||||
|
||||
export interface V27EngineDto {
|
||||
version: string;
|
||||
approach?: string;
|
||||
consensus?: "AGREE" | "DISAGREE";
|
||||
predictions?: Record<string, Record<string, number>>;
|
||||
divergence?: Record<string, Record<string, number>>;
|
||||
value_edge?: Record<string, Record<string, unknown>>;
|
||||
odds_band?: {
|
||||
ms_home?: OddsBandEntryDto;
|
||||
ms_away?: OddsBandEntryDto;
|
||||
ou25?: OddsBandEntryDto;
|
||||
ou15?: OddsBandEntryDto;
|
||||
ou35?: OddsBandEntryDto;
|
||||
btts?: OddsBandEntryDto;
|
||||
dc?: OddsBandEntryDto;
|
||||
ht_home?: OddsBandEntryDto;
|
||||
ht_away?: OddsBandEntryDto;
|
||||
ht_ou05?: OddsBandEntryDto;
|
||||
ht_ou15?: OddsBandEntryDto;
|
||||
oe?: OddsBandEntryDto;
|
||||
cards?: OddsBandCardsDto;
|
||||
htft?: Record<HtftComboKey, OddsBandHtftComboDto>;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
triple_value?: Record<string, TripleValueEntryDto>;
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Main Prediction DTOs
|
||||
// ========================
|
||||
|
||||
export interface MatchPredictionDto {
|
||||
model_version: string;
|
||||
match_info: MatchInfoDto;
|
||||
@@ -157,6 +244,7 @@ export interface MatchPredictionDto {
|
||||
market_board: Record<string, MarketBoardEntryDto>;
|
||||
reasoning_factors: string[];
|
||||
ai_commentary?: string | null;
|
||||
v27_engine?: V27EngineDto;
|
||||
}
|
||||
|
||||
export interface ValueBetDto {
|
||||
|
||||
Reference in New Issue
Block a user