import type { MongoClient } from 'mongodb' import { connectToDatabase, fetchLatestPatch, getAvailablePlatforms } from '../utils/mongo' interface StatsDocument { patch: string total: number platforms: Record updatedAt: Date } async function fetchGameCount(client: MongoClient, patch: string) { const database = client.db('matches') const statsCollection = database.collection('stats') // Try to get stats from the pre-computed stats collection const stats = await statsCollection.findOne({ patch }) if (stats) { return { total: stats.total, platforms: stats.platforms } } // Fallback: compute stats from collections if stats document doesn't exist // This handles the migration case where stats weren't pre-computed const platforms = await getAvailablePlatforms(client, patch) if (platforms.length > 0) { let totalCount = 0 const platformCounts: Record = {} for (const platform of platforms) { const collection = database.collection(`${patch}_${platform}`) const count = await collection.countDocuments() platformCounts[platform] = count totalCount += count } return { total: totalCount, platforms: platformCounts } } // Fall back to old format (single collection) const matches = database.collection(patch) const count = await matches.countDocuments() return { total: count, platforms: {} } } export default defineEventHandler(async _ => { const client = await connectToDatabase() const latestPatch = await fetchLatestPatch(client) const gameCountData = await fetchGameCount(client, latestPatch) await client.close() return { patch: latestPatch, count: gameCountData.total, platformCounts: gameCountData.platforms } })