Files
old-zsterminator/app/models/customer.rb

41 lines
1022 B
Ruby
Raw Normal View History

2024-08-06 14:16:40 +02:00
class Customer < ApplicationRecord
2025-02-27 07:45:54 +01:00
# Use Rails 7.1's native composite primary key
self.primary_key = %i[first_name surname original_phone]
2024-08-06 14:16:40 +02:00
belongs_to :company
2025-02-27 07:45:54 +01:00
validates :first_name, presence: true
validates :surname, presence: true
2024-08-06 14:16:40 +02:00
validates :phone, presence: true
2025-02-27 07:45:54 +01:00
validates :original_phone, presence: true
2024-08-06 14:16:40 +02:00
validates :company_id, presence: true
2025-02-27 07:45:54 +01:00
validates :first_name, uniqueness: {
scope: %i[surname original_phone company_id],
message: -> { I18n.t('customers.customer.already_exists') }
}
validates :birthyear, numericality: {
only_integer: true,
greater_than: 1900,
less_than_or_equal_to: -> { Time.current.year }
}, allow_nil: true
before_validation :set_original_phone, on: :create
def full_name
[first_name, surname].compact_blank.join(' ')
end
# Add method for URL generation
def to_param
[first_name, surname, original_phone].join('_')
end
private
def set_original_phone
self.original_phone = phone if original_phone.blank?
end
2024-08-06 14:16:40 +02:00
end