2019-07-30 23:29:24 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-06-12 15:03:43 -05:00
|
|
|
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
|
|
|
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
2019-02-01 13:40:24 -06:00
|
|
|
class Refund < ApplicationRecord
|
2019-07-30 23:29:24 +02:00
|
|
|
Reasons = %i[duplicate fraudulent requested_by_customer].freeze
|
2019-08-06 16:08:51 +02:00
|
|
|
# :amount, # int
|
|
|
|
# :comment, # text
|
|
|
|
# :reason, # str ('duplicate', 'fraudulent', or 'requested_by_customer')
|
|
|
|
# :stripe_refund_id,
|
|
|
|
# :disbursed, # boolean (whether this refund has been counted in a payout)
|
|
|
|
# :failure_message, # str (accessor for storing the Stripe error message)
|
|
|
|
# :user_id, :user, # user who made this refund
|
|
|
|
# :payment_id, :payment, # negative payment that records this refund
|
|
|
|
# :charge_id, :charge
|
2018-03-25 13:30:42 -04:00
|
|
|
|
2019-07-30 23:29:24 +02:00
|
|
|
attr_accessor :failure_message
|
2018-03-25 13:30:42 -04:00
|
|
|
|
2019-07-30 23:29:24 +02:00
|
|
|
belongs_to :charge
|
|
|
|
belongs_to :payment
|
2018-03-25 13:30:42 -04:00
|
|
|
|
2019-07-30 23:29:24 +02:00
|
|
|
scope :not_disbursed, -> { where(disbursed: [nil, false]) }
|
|
|
|
scope :disbursed, -> { where(disbursed: [true]) }
|
2018-03-25 13:30:42 -04:00
|
|
|
end
|