first (part 2: other directories)
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s

This commit is contained in:
2026-04-16 15:11:25 +03:00
parent 7814e0bc6b
commit 2f0b85a0c7
203 changed files with 59989 additions and 0 deletions
+214
View File
@@ -0,0 +1,214 @@
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function findUpcomingMatch() {
// 1 gün sonraki maçları bul (4-5 Mart 2026)
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
tomorrow.setHours(0, 0, 0, 0);
const dayAfter = new Date(tomorrow);
dayAfter.setDate(dayAfter.getDate() + 1);
console.log('\n========================================');
console.log('📅 1 GÜN SONRAKİ MAÇLAR');
console.log('========================================\n');
// Timestamp'e çevir
const startTs = BigInt(tomorrow.getTime());
const endTs = BigInt(dayAfter.getTime());
const matches = await prisma.match.findMany({
where: {
sport: 'football',
mstUtc: {
gte: startTs,
lt: endTs,
},
},
include: {
homeTeam: true,
awayTeam: true,
league: true,
oddCategories: {
include: {
selections: true,
},
},
prediction: true,
aiFeatures: true,
},
take: 5,
orderBy: { mstUtc: 'asc' },
});
console.log(`Bulunan maç sayısı: ${matches.length}`);
for (const match of matches) {
console.log('\n----------------------------------------');
console.log(
`${match.homeTeam?.name || 'N/A'} vs ${match.awayTeam?.name || 'N/A'}`,
);
console.log(`🏆 Lig: ${match.league?.name || 'N/A'}`);
console.log(`📅 Tarih: ${new Date(Number(match.mstUtc)).toISOString()}`);
console.log(`🔢 İddaa Kodu: ${match.iddaaCode || 'N/A'}`);
console.log(`🏟️ Durum: ${match.state} / ${match.status}`);
// Oranlar
console.log('\n📊 ORANLAR:');
for (const cat of match.oddCategories.slice(0, 5)) {
console.log(` ${cat.name}:`);
for (const sel of cat.selections.slice(0, 5)) {
console.log(` - ${sel.name}: ${sel.oddValue}`);
}
}
// AI Features
if (match.aiFeatures) {
console.log('\n🤖 AI ÖZELLİKLER:');
console.log(` Home ELO: ${match.aiFeatures.homeElo}`);
console.log(` Away ELO: ${match.aiFeatures.awayElo}`);
console.log(` Home Form: ${match.aiFeatures.homeFormScore}`);
console.log(` Away Form: ${match.aiFeatures.awayFormScore}`);
}
// Tahmin
if (match.prediction) {
console.log('\n🔮 MEVCUT TAHMİN:');
console.log(
JSON.stringify(match.prediction.predictionJson, null, 2).substring(
0,
500,
),
);
}
}
// Detaylı analiz için ilk maçı seç
if (matches.length > 0) {
const selectedMatch = matches[0];
console.log('\n\n========================================');
console.log('🎯 SEÇİLEN MAÇ DETAY ANALİZİ');
console.log('========================================');
console.log(`Maç ID: ${selectedMatch.id}`);
// Bu maç için ne kadar verimiz var?
console.log('\n📈 VERİ KALİTESİ ANALİZİ:');
console.log(
` - Oran Kategorisi: ${selectedMatch.oddCategories.length} adet`,
);
let totalSelections = 0;
for (const cat of selectedMatch.oddCategories) {
totalSelections += cat.selections.length;
}
console.log(` - Toplam Oran Seçeneği: ${totalSelections} adet`);
console.log(` - AI Features: ${selectedMatch.aiFeatures ? 'VAR' : 'YOK'}`);
console.log(` - Prediction: ${selectedMatch.prediction ? 'VAR' : 'YOK'}`);
// Bu takımların geçmiş maçları
console.log('\n📚 TAKIM GEÇMİŞİ:');
// Ev sahibi takımın son maçları
const homeTeamMatches = await prisma.match.findMany({
where: {
OR: [
{ homeTeamId: selectedMatch.homeTeamId },
{ awayTeamId: selectedMatch.homeTeamId },
],
sport: 'football',
state: 'postGame',
},
include: {
homeTeam: true,
awayTeam: true,
},
take: 5,
orderBy: { mstUtc: 'desc' },
});
console.log(`\n ${selectedMatch.homeTeam?.name} Son 5 Maç:`);
for (const m of homeTeamMatches) {
const isHome = m.homeTeamId === selectedMatch.homeTeamId;
const goalsFor = isHome ? m.scoreHome : m.scoreAway;
const goalsAgainst = isHome ? m.scoreAway : m.scoreHome;
const result =
goalsFor > goalsAgainst ? 'W' : goalsFor < goalsAgainst ? 'L' : 'D';
console.log(
` ${result} ${m.homeTeam?.name} ${m.scoreHome}-${m.scoreAway} ${m.awayTeam?.name}`,
);
}
// Deplasman takımının son maçları
const awayTeamMatches = await prisma.match.findMany({
where: {
OR: [
{ homeTeamId: selectedMatch.awayTeamId },
{ awayTeamId: selectedMatch.awayTeamId },
],
sport: 'football',
state: 'postGame',
},
include: {
homeTeam: true,
awayTeam: true,
},
take: 5,
orderBy: { mstUtc: 'desc' },
});
console.log(`\n ${selectedMatch.awayTeam?.name} Son 5 Maç:`);
for (const m of awayTeamMatches) {
const isHome = m.homeTeamId === selectedMatch.awayTeamId;
const goalsFor = isHome ? m.scoreHome : m.scoreAway;
const goalsAgainst = isHome ? m.scoreAway : m.scoreHome;
const result =
goalsFor > goalsAgainst ? 'W' : goalsFor < goalsAgainst ? 'L' : 'D';
console.log(
` ${result} ${m.homeTeam?.name} ${m.scoreHome}-${m.scoreAway} ${m.awayTeam?.name}`,
);
}
// Head-to-Head
console.log('\n🔄 HEAD-TO-HEAD (Karşılıklı):');
const h2hMatches = await prisma.match.findMany({
where: {
OR: [
{
homeTeamId: selectedMatch.homeTeamId,
awayTeamId: selectedMatch.awayTeamId,
},
{
homeTeamId: selectedMatch.awayTeamId,
awayTeamId: selectedMatch.homeTeamId,
},
],
sport: 'football',
state: 'postGame',
},
include: {
homeTeam: true,
awayTeam: true,
},
take: 5,
orderBy: { mstUtc: 'desc' },
});
if (h2hMatches.length > 0) {
for (const m of h2hMatches) {
console.log(
` ${m.homeTeam?.name} ${m.scoreHome}-${m.scoreAway} ${m.awayTeam?.name}`,
);
}
} else {
console.log(' Karşılıklı maç bulunamadı');
}
}
await prisma.$disconnect();
}
findUpcomingMatch().catch((e) => {
console.error('Hata:', e);
process.exit(1);
});