class Customer < ApplicationRecord # Use Rails 7.1's native composite primary key self.primary_key = %i[first_name surname original_phone] belongs_to :company validates :first_name, presence: true validates :surname, presence: true validates :phone, presence: true validates :original_phone, presence: true validates :company_id, presence: true 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 end