Files
baclight/app/models/id_card/field_exception_item.rb
T

28 lines
906 B
Ruby
Raw Normal View History

module IdCard
2026-03-20 10:46:53 -04:00
class FieldExceptionItem < ApplicationRecord
belongs_to :field_exception
belongs_to :network_logo, optional: true
belongs_to :provider_section, optional: true
2026-03-03 22:53:21 -05:00
validate :only_one_exception_field_present
2026-03-03 22:53:21 -05:00
FIELDS_TO_VALIDATE = [:field_value, :card_logo_file_id, :card_provider_id].freeze
2026-03-03 22:53:21 -05:00
VALID_FIELD_NAMES = ['network_logo', 'provider_section', 'effective_date']
2026-03-03 22:53:21 -05:00
validates :field_name, inclusion: { in: VALID_FIELD_NAMES,
message: "%{value} is not a valid Id Card Field Name" }
2026-03-03 22:53:21 -05:00
private
2026-03-03 22:53:21 -05:00
def only_one_exception_field_present
present_fields = FIELDS_TO_VALIDATE.count { |field| self[field].present? }
2026-03-03 22:53:21 -05:00
if present_fields != 1
errors.add(:base, "Only one exception field can be present at a time")
end
2026-03-03 22:53:21 -05:00
end
end
end