Class: SaasPlatform::Wallet

Inherits:
ApplicationRecord show all
Defined in:
app/models/saas_platform/wallet.rb

Instance Method Summary collapse

Instance Method Details

#credit!(amount, category: nil, reference: nil, metadata: {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'app/models/saas_platform/wallet.rb', line 12

def credit!(amount, category: nil, reference: nil, metadata: {})
  transactions.create!(
    amount: amount,
    transaction_type: 'credit',
    category: category,
    reference: reference,
    metadata: ,
    status: 'completed'
  )
  update!(balance: balance + amount)
end

#debit!(amount, category: nil, reference: nil, metadata: {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/saas_platform/wallet.rb', line 24

def debit!(amount, category: nil, reference: nil, metadata: {})
  raise "Insufficient funds" if balance < amount
  
  transactions.create!(
    amount: amount,
    transaction_type: 'debit',
    category: category,
    reference: reference,
    metadata: ,
    status: 'completed'
  )
  update!(balance: balance - amount)
end