Files
iddaai-be/src/modules/social-poster/dto/prediction-card.dto.ts
T
fahricansecer 182f4aae16
Deploy Iddaai Backend / build-and-deploy (push) Successful in 33s
first (part 3: src directory)
2026-04-16 15:12:27 +03:00

61 lines
1.4 KiB
TypeScript

/**
* Prediction Card DTO
*
* Typed data structure for rendering match prediction cards
* and generating social media captions.
*/
export interface TopPick {
/** Market name in Turkish, e.g. "Üst 2.5 Gol" */
market: string;
/** Market name in English, e.g. "Over 2.5" */
marketEn: string;
/** Pick label, e.g. "Üst" */
pick: string;
/** Confidence 0-100 */
confidence: number;
/** Odds value */
odds: number;
}
export interface PredictionCardDto {
// ─── Match Info ───
matchId: string;
homeTeam: string;
awayTeam: string;
homeLogo: string;
awayLogo: string;
leagueName: string;
leagueLogo?: string;
/** Formatted date, e.g. "01 Mar 2026 - 21:00" */
matchDate: string;
// ─── Score Predictions ───
/** HT score, e.g. "1-0" */
htScore: string;
/** FT score, e.g. "2-1" */
ftScore: string;
/** Overall confidence 0-100 */
scoreConfidence: number;
// ─── Top 3 Best Bets ───
topPicks: TopPick[];
// ─── Risk ───
riskLevel: 'LOW' | 'MEDIUM' | 'HIGH' | 'EXTREME';
// ─── Raw prediction JSON (for Gemini caption) ───
rawPrediction?: Record<string, any>;
}
export interface SocialPostResult {
matchId: string;
imagePath: string;
caption: string;
twitterPostId?: string;
facebookPostId?: string;
instagramPostId?: string;
postedAt: Date;
errors?: string[];
}