From 0c87ead245726839a9d2576ed893a338a3d6270a Mon Sep 17 00:00:00 2001 From: shni Date: Sun, 5 Oct 2025 20:27:11 -0500 Subject: [PATCH] feat(stats): streamline updateStats function to handle updates more efficiently --- src/game/stats/service.ts | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/game/stats/service.ts b/src/game/stats/service.ts index 9b21d8c..2a7efe7 100644 --- a/src/game/stats/service.ts +++ b/src/game/stats/service.ts @@ -30,26 +30,16 @@ export async function updateStats( try { await getOrCreatePlayerStats(userId, guildId); - // Convertir incrementos a operaciones atómicas - const incrementData: any = {}; - const setData: any = {}; + const updateData: Prisma.PlayerStatsUpdateInput = {}; for (const [key, value] of Object.entries(updates)) { - if (typeof value === 'number') { - // Si es un número, incrementar - incrementData[key] = value; - } else { - // Si no, establecer valor - setData[key] = value; - } - } + if (value === undefined || value === null) continue; - const updateData: any = {}; - if (Object.keys(incrementData).length > 0) { - updateData.increment = incrementData; - } - if (Object.keys(setData).length > 0) { - Object.assign(updateData, setData); + if (typeof value === 'number') { + (updateData as Record)[key] = { increment: value }; + } else { + (updateData as Record)[key] = value; + } } const stats = await prisma.playerStats.update({