30 lines
669 B
Ruby
30 lines
669 B
Ruby
class Captain::PixCharge < ApplicationRecord
|
|
self.table_name = 'captain_pix_charges'
|
|
|
|
EXPIRATION_SECONDS = 3600
|
|
|
|
belongs_to :reservation, class_name: 'Captain::Reservation'
|
|
belongs_to :unit, class_name: 'Captain::Unit'
|
|
|
|
enum status: { active: 'active', paid: 'paid', expired: 'expired', failed: 'failed' }
|
|
|
|
validates :txid, presence: true, uniqueness: true
|
|
validates :unit_id, presence: true
|
|
|
|
def expires_at
|
|
return nil unless created_at
|
|
|
|
created_at + EXPIRATION_SECONDS
|
|
end
|
|
|
|
def expired_by_time?(now = Time.current)
|
|
return false unless created_at
|
|
|
|
now > expires_at
|
|
end
|
|
|
|
def original_value
|
|
reservation&.total_amount
|
|
end
|
|
end
|