mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
21 lines
687 B
TypeScript
21 lines
687 B
TypeScript
import { Decimal } from 'decimal.js-light'
|
|
|
|
import { getLastTransaction } from './getLastTransaction'
|
|
import { calculateDecay } from './decay'
|
|
import { Decay } from '../api/1_0/model/Decay'
|
|
|
|
export async function calculateRecipientBalance(
|
|
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 }
|
|
}
|