/**
  * @param int $idProduct
  * @param \Generated\Shared\Transfer\LocaleTransfer[] $localeCollection
  * @param bool $searchable
  *
  * @return void
  */
 protected function markProductSearchable($idProduct, array $localeCollection, $searchable)
 {
     foreach ($localeCollection as $code => $localeTransfer) {
         $searchableProduct = $this->productSearchQueryContainer->queryByProductAndLocale($idProduct, $localeTransfer->getIdLocale())->findOneOrCreate();
         $searchableProduct->setIsSearchable($searchable);
         $searchableProduct->save();
     }
 }
 /**
  * @param int $idProductAttributesMetadata
  *
  * @return void
  */
 protected function cleanProductSearchAttributeMap($idProductAttributesMetadata)
 {
     $this->productSearchQueryContainer->queryProductSearchAttributeMapByFkProductAttributesMetadata($idProductAttributesMetadata)->delete();
 }
 /**
  * @param \Spryker\Zed\Gui\Communication\Table\TableConfiguration $config
  *
  * @return \Orm\Zed\Product\Persistence\SpyProductAttributesMetadata[]
  */
 protected function getProductAttributesMetadata(TableConfiguration $config)
 {
     $query = $this->productSearchQueryContainer->querySearchPreferencesTable();
     $productAttributesMetadata = $this->runQuery($query, $config, true);
     return $productAttributesMetadata;
 }
 /**
  * @param int $idProductAttributesMetadata
  *
  * @return array
  */
 public function getData($idProductAttributesMetadata)
 {
     $productAttributesMetadataEntity = $this->productSearchQueryContainer->querySearchPreferencesTable()->filterByIdProductAttributesMetadata($idProductAttributesMetadata)->findOne();
     return [SearchPreferencesForm::FIELD_ATTRIBUTE_NAME => $productAttributesMetadataEntity->getKey(), SearchPreferencesForm::FIELD_ATTRIBUTE_TYPE => $productAttributesMetadataEntity->getSpyProductAttributeType()->getName(), SearchPreferencesForm::FIELD_FULL_TEXT => $productAttributesMetadataEntity->getVirtualColumn(SearchPreferencesForm::FIELD_FULL_TEXT), SearchPreferencesForm::FIELD_FULL_TEXT_BOOSTED => $productAttributesMetadataEntity->getVirtualColumn(SearchPreferencesForm::FIELD_FULL_TEXT_BOOSTED), SearchPreferencesForm::FIELD_SUGGESTION_TERMS => $productAttributesMetadataEntity->getVirtualColumn(SearchPreferencesForm::FIELD_SUGGESTION_TERMS), SearchPreferencesForm::FIELD_COMPLETION_TERMS => $productAttributesMetadataEntity->getVirtualColumn(SearchPreferencesForm::FIELD_COMPLETION_TERMS)];
 }
 /**
  * @return \Orm\Zed\ProductSearch\Persistence\SpyProductSearchAttributeMap[]|\Propel\Runtime\Collection\ObjectCollection
  */
 protected function getRawAttributeMap()
 {
     $attributeMap = $this->productSearchQueryContainer->queryProductSearchAttributeMap()->find();
     return $attributeMap;
 }