2024-06-20 08:38:59 -04:00
|
|
|
class Merchant < ApplicationRecord
|
2024-06-24 11:58:39 -04:00
|
|
|
has_many :transactions, dependent: :nullify, class_name: "Account::Transaction"
|
2024-04-29 21:17:28 +02:00
|
|
|
|
2025-04-02 17:48:34 -04:00
|
|
|
validates :name, presence: true, uniqueness: true
|
2024-04-29 21:17:28 +02:00
|
|
|
|
|
|
|
scope :alphabetically, -> { order(:name) }
|
|
|
|
|
2025-04-02 17:48:34 -04:00
|
|
|
before_save :normalize_name
|
|
|
|
|
|
|
|
class << self
|
|
|
|
def normalize_name(name)
|
|
|
|
name.downcase.strip.titleize
|
|
|
|
end
|
|
|
|
|
|
|
|
def find_or_create_by_normalized_name!(name)
|
|
|
|
find_or_create_by!(name: normalize_name(name))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
def normalize_name
|
|
|
|
self.name = self.class.normalize_name(name)
|
|
|
|
end
|
2024-04-29 21:17:28 +02:00
|
|
|
end
|