mirror of
https://github.com/IT4Change/gradido.git
synced 2026-03-29 05:35:41 +00:00
24 lines
707 B
TypeScript
24 lines
707 B
TypeScript
import { Decimal } from 'decimal.js-light'
|
|
|
|
import { Decay } from '@model/Decay'
|
|
|
|
import { getLastTransaction } from '@/graphql/resolver/util/getLastTransaction'
|
|
|
|
import { calculateDecay } from './decay'
|
|
|
|
export async function calculateSenderBalance(
|
|
userId: number,
|
|
amount: Decimal,
|
|
time: Date,
|
|
): Promise<{ balance: Decimal; decay: Decay; lastTransactionId: number } | null> {
|
|
const lastTransaction = await getLastTransaction(userId)
|
|
if (!lastTransaction) {
|
|
return null
|
|
}
|
|
|
|
const decay = calculateDecay(lastTransaction.balance, lastTransaction.balanceDate, time)
|
|
|
|
const balance = decay.balance.add(amount.toString())
|
|
return { balance, lastTransactionId: lastTransaction.id, decay }
|
|
}
|