feat(stats): streamline updateStats function to handle updates more efficiently

This commit is contained in:
2025-10-05 20:27:11 -05:00
parent 5bbc14a0cc
commit 0c87ead245

View File

@@ -30,26 +30,16 @@ export async function updateStats(
try { try {
await getOrCreatePlayerStats(userId, guildId); await getOrCreatePlayerStats(userId, guildId);
// Convertir incrementos a operaciones atómicas const updateData: Prisma.PlayerStatsUpdateInput = {};
const incrementData: any = {};
const setData: any = {};
for (const [key, value] of Object.entries(updates)) { for (const [key, value] of Object.entries(updates)) {
if (typeof value === 'number') { if (value === undefined || value === null) continue;
// Si es un número, incrementar
incrementData[key] = value;
} else {
// Si no, establecer valor
setData[key] = value;
}
}
const updateData: any = {}; if (typeof value === 'number') {
if (Object.keys(incrementData).length > 0) { (updateData as Record<string, any>)[key] = { increment: value };
updateData.increment = incrementData; } else {
(updateData as Record<string, any>)[key] = value;
} }
if (Object.keys(setData).length > 0) {
Object.assign(updateData, setData);
} }
const stats = await prisma.playerStats.update({ const stats = await prisma.playerStats.update({