Added customer composite key
This commit is contained in:
@@ -1,11 +1,28 @@
|
||||
class Reservation < ApplicationRecord
|
||||
belongs_to :company
|
||||
belongs_to :customer
|
||||
belongs_to :customer,
|
||||
primary_key: %i[first_name surname original_phone],
|
||||
query_constraints: %i[customer_first_name customer_surname customer_original_phone]
|
||||
belongs_to :team
|
||||
|
||||
validates :company_id, presence: true
|
||||
validates :customer_id, presence: true
|
||||
validates :team_id, presence: true
|
||||
|
||||
# Remove customer_id validation since we're using composite key
|
||||
validates :customer_first_name, :customer_surname, :customer_original_phone, presence: true
|
||||
|
||||
# Add validation to ensure customer exists
|
||||
validate :customer_must_exist
|
||||
|
||||
private
|
||||
|
||||
def customer_must_exist
|
||||
unless Customer.exists?(first_name: customer_first_name,
|
||||
surname: customer_surname,
|
||||
original_phone: customer_original_phone)
|
||||
errors.add(:base, "Selected customer does not exist")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ReservationSerializer < ActiveModel::Serializer
|
||||
|
||||
Reference in New Issue
Block a user