class Donation < ApplicationRecord
  # Relations
  belongs_to :user

  # Validations
  validates_presence_of :user
  validates_presence_of :donation_method,
    inclusion: { in: %w[ custom btcpay lndhub ] }
  validates_presence_of :payment_status, allow_nil: true,
    inclusion: { in: %w[ processing settled ] }
  validates_presence_of :paid_at, allow_nil: true
  validates_presence_of :amount_sats, allow_nil: true
  validates_presence_of :fiat_amount, allow_nil: true
  validates_presence_of :fiat_currency, allow_nil: true,
    inclusion: { in: %w[ EUR USD ] }

  #Scopes
  scope :processing, -> { where(payment_status: "processing") }
  scope :completed, -> { where(payment_status: "settled") }

  def processing?
    payment_status == "processing"
  end

  def completed?
    payment_status == "settled"
  end
end
