1
0
Fork 0
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
lpr-partynest/app/models/passport.rb

45 lines
956 B
Ruby
Raw Normal View History

2018-11-30 06:19:38 +05:00
# frozen_string_literal: true
class Passport < ApplicationRecord
2018-11-30 14:23:46 +05:00
REQUIRED_CONFIRMATIONS = 3
belongs_to :person, optional: true
2018-12-01 15:15:27 +05:00
has_many_attached :images
2018-11-30 08:02:04 +05:00
2018-12-03 01:29:39 +05:00
has_many :passport_maps, dependent: :restrict_with_exception
2018-12-02 19:16:16 +05:00
2018-11-30 13:28:40 +05:00
has_many :passport_confirmations, dependent: :restrict_with_exception
accepts_nested_attributes_for :passport_maps, reject_if: :blank_passport_map?
2018-12-02 19:41:48 +05:00
2018-12-01 22:18:37 +05:00
validates :confirmed,
inclusion: { in: [false], unless: :enough_confirmations? }
2018-12-03 01:29:39 +05:00
def passport_map
passport_maps.order(created_at: :asc).last
end
2018-12-01 15:23:58 +05:00
def image
2018-12-03 01:29:39 +05:00
images.order(created_at: :asc).last
2018-12-01 15:23:58 +05:00
end
def can_have_confirmations?
passport_map && image
end
2018-12-01 05:40:34 +05:00
def enough_confirmations?
passport_confirmations.count >= REQUIRED_CONFIRMATIONS
2018-11-30 14:23:46 +05:00
end
private
def blank_passport_map?(passport_map_attributes)
passport_map_attributes.all? do |key, value|
next true if key.start_with? 'date_'
value.blank?
end
end
2018-11-30 06:19:38 +05:00
end