Class: SaasPlatform::Wallet
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- SaasPlatform::Wallet
- Defined in:
- app/models/saas_platform/wallet.rb
Instance Method Summary collapse
- #credit!(amount, category: nil, reference: nil, metadata: {}) ⇒ Object
- #debit!(amount, category: nil, reference: nil, metadata: {}) ⇒ Object
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 |