User => Player

This commit is contained in:
2024-12-08 13:41:37 +01:00
parent c6da328023
commit 65576fc5b1
39 changed files with 193 additions and 240 deletions

View File

@ -1,19 +1,19 @@
import { Injectable } from '@nestjs/common'
import { PrismaClient, } from '@prisma/client'
async function updateUserMoney(prisma: PrismaClient): Promise<void> {
// On calcule le solde par utilisateur⋅rice pour mettre à jour l'objet User
const moneyPerUser = await prisma.moneyUpdate.groupBy({
by: 'userId',
async function updatePlayerMoney(prisma: PrismaClient): Promise<void> {
// On calcule le solde par joueur⋅se pour mettre à jour l'objet Player
const moneyPerPlayer = await prisma.moneyUpdate.groupBy({
by: 'playerId',
_sum: {
amount: true,
}
})
for (const { userId, _sum } of moneyPerUser) {
for (const { playerId, _sum } of moneyPerPlayer) {
const { amount } = _sum
await prisma.user.update({
await prisma.player.update({
where: {
id: userId,
id: playerId,
},
data: {
money: amount
@ -21,7 +21,7 @@ async function updateUserMoney(prisma: PrismaClient): Promise<void> {
})
}
// On réinitialise le solde s'il n'y a plus aucun MoneyUpdate
await prisma.user.updateMany({
await prisma.player.updateMany({
where: {
moneyUpdates: { none: {} }
},
@ -39,7 +39,7 @@ function extendPrismaClient() {
$allOperations({ model, operation, args, query }) {
const result = query(args)
if (!operation.startsWith("find") && !['aggregate', 'count', 'groupBy'].includes(operation))
result.then(() => updateUserMoney(prisma))
result.then(() => updatePlayerMoney(prisma))
return result
}
}