# frozen_string_literal: true

# track of all transactions payed using the given wallet
class WalletTransaction < ApplicationRecord
  include AmountConcern

  belongs_to :invoicing_profile
  belongs_to :wallet
  belongs_to :reservation
  belongs_to :transactable, polymorphic: true
  has_one :invoice
  has_one :payment_schedule

  validates_inclusion_of :transaction_type, in: %w[credit debit]
  validates :invoicing_profile, :wallet, presence: true

  def user
    invoicing_profile.user
  end
end
