Files
fahricansecer 2f0b85a0c7
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s
first (part 2: other directories)
2026-04-16 15:11:25 +03:00

312 lines
10 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
});