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
+311
View File
@@ -0,0 +1,311 @@
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function inspectDatabase() {
console.log('\n========================================');
console.log('📊 VERİTABANI İNCELEME RAPORU');
console.log('========================================\n');
// 1. Countries
console.log('🌍 ÜLKELER (Countries)');
console.log('----------------------------------------');
const countries = await prisma.country.findMany({ take: 20 });
console.log(`Toplam: ${await prisma.country.count()} kayıt`);
console.table(countries);
// 2. Leagues
console.log('\n🏆 LİGLER (Leagues)');
console.log('----------------------------------------');
const leagues = await prisma.league.findMany({
take: 20,
include: { country: true },
});
console.log(`Toplam: ${await prisma.league.count()} kayıt`);
console.table(
leagues.map((l) => ({
id: l.id,
name: l.name,
sport: l.sport,
country: l.country?.name || 'N/A',
code: l.code,
})),
);
// 3. Teams
console.log('\n👥 TAKIMLAR (Teams)');
console.log('----------------------------------------');
const teams = await prisma.team.findMany({ take: 30 });
console.log(`Toplam: ${await prisma.team.count()} kayıt`);
console.table(teams);
// 4. Players
console.log('\n🏃 OYUNCULAR (Players)');
console.log('----------------------------------------');
const players = await prisma.player.findMany({ take: 20 });
console.log(`Toplam: ${await prisma.player.count()} kayıt`);
console.table(players);
// 5. Matches
console.log('\n⚽ MAÇLAR (Matches)');
console.log('----------------------------------------');
const matchCount = await prisma.match.count();
console.log(`Toplam: ${matchCount} kayıt`);
const matches = await prisma.match.findMany({
take: 15,
orderBy: { mstUtc: 'desc' },
include: {
homeTeam: true,
awayTeam: true,
league: true,
},
});
console.table(
matches.map((m) => ({
id: m.id,
homeTeam: m.homeTeam?.name || 'N/A',
awayTeam: m.awayTeam?.name || 'N/A',
score: `${m.scoreHome}-${m.scoreAway}`,
status: m.status,
state: m.state,
sport: m.sport,
iddaaCode: m.iddaaCode,
mstUtc: new Date(Number(m.mstUtc)).toISOString(),
})),
);
// 6. Live Matches
console.log('\n🔴 CANLI MAÇLAR (Live Matches)');
console.log('----------------------------------------');
const liveMatchCount = await prisma.liveMatch.count();
console.log(`Toplam: ${liveMatchCount} kayıt`);
const liveMatches = await prisma.liveMatch.findMany({
take: 10,
include: {
homeTeam: true,
awayTeam: true,
league: true,
},
});
console.table(
liveMatches.map((m) => ({
id: m.id,
homeTeam: m.homeTeam?.name || 'N/A',
awayTeam: m.awayTeam?.name || 'N/A',
score: `${m.scoreHome}-${m.scoreAway}`,
state: m.state,
status: m.status,
})),
);
// 7. Match AI Features
console.log('\n🤖 MAÇ AI ÖZELLİKLERİ (MatchAiFeatures)');
console.log('----------------------------------------');
const aiFeaturesCount = await prisma.matchAiFeature.count();
console.log(`Toplam: ${aiFeaturesCount} kayıt`);
const aiFeatures = await prisma.matchAiFeature.findMany({ take: 10 });
console.table(aiFeatures);
// 8. Odd Categories
console.log('\n📊 ORAN KATEGORİLERİ (OddCategories)');
console.log('----------------------------------------');
const oddCategoriesCount = await prisma.oddCategory.count();
console.log(`Toplam: ${oddCategoriesCount} kayıt`);
const oddCategories = await prisma.oddCategory.findMany({
take: 10,
include: { match: true },
});
console.table(
oddCategories.map((oc) => ({
id: oc.dbId,
matchId: oc.matchId,
name: oc.name,
})),
);
// 9. Odd Selections
console.log('\n🎯 ORAN SEÇENEKLERİ (OddSelections)');
console.log('----------------------------------------');
const oddSelectionsCount = await prisma.oddSelection.count();
console.log(`Toplam: ${oddSelectionsCount} kayıt`);
const oddSelections = await prisma.oddSelection.findMany({ take: 15 });
console.table(oddSelections);
// 10. Predictions
console.log('\n🔮 TAHMİNLER (Predictions)');
console.log('----------------------------------------');
const predictionsCount = await prisma.prediction.count();
console.log(`Toplam: ${predictionsCount} kayıt`);
const predictions = await prisma.prediction.findMany({
take: 5,
include: { match: true },
});
predictions.forEach((p, i) => {
console.log(`\nPrediction ${i + 1}:`);
console.log(` Match: ${p.match?.matchName || p.matchId}`);
console.log(
` JSON:`,
JSON.stringify(p.predictionJson, null, 2).substring(0, 500) + '...',
);
});
// 11. AI Predictions Log
console.log('\n📝 AI TAHMİN LOGARI (AiPredictionsLog)');
console.log('----------------------------------------');
const aiLogCount = await prisma.aiPredictionsLog.count();
console.log(`Toplam: ${aiLogCount} kayıt`);
const aiLogs = await prisma.aiPredictionsLog.findMany({
take: 10,
orderBy: { createdAt: 'desc' },
});
console.table(
aiLogs.map((log) => ({
id: log.id,
matchId: log.matchId,
modelVersion: log.modelVersion,
confidence: log.confidenceScore,
isResolved: log.isResolved,
isCorrect: log.isCorrect,
createdAt: log.createdAt,
})),
);
// 12. Users
console.log('\n👤 KULLANICILAR (Users)');
console.log('----------------------------------------');
const usersCount = await prisma.user.count();
console.log(`Toplam: ${usersCount} kayıt`);
const users = await prisma.user.findMany({
select: {
id: true,
email: true,
firstName: true,
lastName: true,
role: true,
subscriptionStatus: true,
isActive: true,
createdAt: true,
},
});
console.table(users);
// 13. User Coupons
console.log('\n🎫 KULLANICI KUPONLARI (UserCoupons)');
console.log('----------------------------------------');
const couponsCount = await prisma.userCoupon.count();
console.log(`Toplam: ${couponsCount} kayıt`);
const coupons = await prisma.userCoupon.findMany({
take: 10,
include: { user: true },
});
console.table(
coupons.map((c) => ({
id: c.id,
user: c.user.email,
strategy: c.strategy,
totalOdds: c.totalOdds,
status: c.status,
isPublic: c.isPublic,
})),
);
// 14. Match Team Stats
console.log('\n📈 MAÇ TAKIM İSTATİSTİKLERİ (MatchTeamStats)');
console.log('----------------------------------------');
const teamStatsCount = await prisma.matchTeamStats.count();
console.log(`Toplam: ${teamStatsCount} kayıt`);
const teamStats = await prisma.matchTeamStats.findMany({ take: 5 });
console.table(teamStats);
// 15. Match Player Stats
console.log('\n🏀 MAÇ OYUNCU İSTATİSTİKLERİ (MatchPlayerStats)');
console.log('----------------------------------------');
const playerStatsCount = await prisma.matchPlayerStats.count();
console.log(`Toplam: ${playerStatsCount} kayıt`);
const playerStats = await prisma.matchPlayerStats.findMany({ take: 5 });
console.table(playerStats);
// 16. Match Player Events
console.log('\n⚡ MAÇ OLAYLARI (MatchPlayerEvents)');
console.log('----------------------------------------');
const eventsCount = await prisma.matchPlayerEvents.count();
console.log(`Toplam: ${eventsCount} kayıt`);
const events = await prisma.matchPlayerEvents.findMany({ take: 10 });
console.table(events);
// 17. Official Roles
console.log('\n👔 HAKEM ROLLERİ (OfficialRoles)');
console.log('----------------------------------------');
const officialRoles = await prisma.officialRole.findMany();
console.log(`Toplam: ${officialRoles.length} kayıt`);
console.table(officialRoles);
// 18. Match Officials
console.log('\n🚨 MAÇ HAKEMLERİ (MatchOfficials)');
console.log('----------------------------------------');
const officialsCount = await prisma.matchOfficial.count();
console.log(`Toplam: ${officialsCount} kayıt`);
const officials = await prisma.matchOfficial.findMany({ take: 10 });
console.table(officials);
// 19. App Settings
console.log('\n⚙️ UYGULAMA AYARLARI (AppSettings)');
console.log('----------------------------------------');
const settings = await prisma.appSetting.findMany();
console.log(`Toplam: ${settings.length} kayıt`);
console.table(settings);
// 20. Translations
console.log('\n🌐 ÇEVRİLER (Translations)');
console.log('----------------------------------------');
const translationsCount = await prisma.translation.count();
console.log(`Toplam: ${translationsCount} kayıt`);
const translations = await prisma.translation.findMany({ take: 10 });
console.table(translations);
// Summary
console.log('\n========================================');
console.log('📊 ÖZET');
console.log('========================================');
console.log(`Ülkeler: ${await prisma.country.count()}`);
console.log(`Ligler: ${await prisma.league.count()}`);
console.log(`Takımlar: ${await prisma.team.count()}`);
console.log(`Oyuncular: ${await prisma.player.count()}`);
console.log(`Maçlar: ${await prisma.match.count()}`);
console.log(`Canlı Maçlar: ${await prisma.liveMatch.count()}`);
console.log(`AI Özellikleri: ${await prisma.matchAiFeature.count()}`);
console.log(`Oran Kategorileri: ${await prisma.oddCategory.count()}`);
console.log(`Oran Seçenekleri: ${await prisma.oddSelection.count()}`);
console.log(`Tahminler: ${await prisma.prediction.count()}`);
console.log(`AI Log: ${await prisma.aiPredictionsLog.count()}`);
console.log(`Kullanıcılar: ${await prisma.user.count()}`);
console.log(`Kuponlar: ${await prisma.userCoupon.count()}`);
console.log(`Takım İstatistikleri: ${await prisma.matchTeamStats.count()}`);
console.log(
`Oyuncu İstatistikleri: ${await prisma.matchPlayerStats.count()}`,
);
console.log(`Olaylar: ${await prisma.matchPlayerEvents.count()}`);
console.log(`Hakemler: ${await prisma.matchOfficial.count()}`);
console.log(`Çeviriler: ${await prisma.translation.count()}`);
console.log('========================================\n');
await prisma.$disconnect();
}
inspectDatabase().catch((e) => {
console.error('Hata:', e);
process.exit(1);
});