
const db = require('../../../../models/migration')
const Balance = db.Balance

async function updateBalance(user_id, type, amount, t) {
    if (!['income', 'expanse', 'debt', 'receivable'].includes(type)) return;

    const [balance, created] = await Balance.findOrCreate({
        where: { user_id, type },
        defaults: { amount: 0 },
        transaction: t,
    });

    const operation = type === 'expanse' ? -1 : 1;

    await balance.increment('amount', {
        by: amount * operation,
        transaction: t
    });

    await balance.reload({ transaction: t });
}
