class Client < ApplicationRecord has_many :client_subprojects, class_name: 'Subproject', foreign_key: 'client_id' has_many :owner_subprojects, class_name: 'Subproject', foreign_key: 'owner_id' has_many :builder_subprojects, class_name: 'Subproject', foreign_key: 'builder_id' validates :company_name, :firstname, :lastname, :email, presence: true validates :email, uniqueness: true def referenced_count owner_subprojects.count + builder_subprojects.count + client_subprojects.count end def editable? referenced_count <= 1 end end