def searchable_attributes
      key_props = self.class.primary_key_attributes
      return key_props if key_searchable?(key_props)
      key_props = self.class.secondary_key_attributes
      return key_props if key_searchable?(key_props)
      key_props = self.class.alternate_key_attributes
      return key_props if key_searchable?(key_props)
    end
def searchable_attributes
      key_props = self.class.primary_key_attributes
      return key_props if key_searchable?(key_props)
      key_props = self.class.secondary_key_attributes
      return key_props if key_searchable?(key_props)
      key_props = self.class.alternate_key_attributes
      return key_props if key_searchable?(key_props)
    end
Returns the attributes to use for a search using this domain object as a template, determined
 as follows:
 * If this domain object has a non-nil primary key, then the primary key is the search criterion.
 * Otherwise, if this domain object has a secondary key and each key attribute value is not nil,
   then the secondary key is the search criterion.
 * Otherwise, if this domain object has an alternate key and each key attribute value is not nil,
   then the aklternate key is the search criterion.

 @return [<Symbol>] the attributes to use for a search on this domain object