featureProducerRepository = $this->loadService(FeatureProducerRepository::class); } public function instanciateFeatureProducer( Feature $feature, bool $status = null ): FeatureProducer { $featureProducer = new FeatureProducer(); $featureProducer->populateFeature($feature); $featureProducer->populateProducer($this->getProducerContext()); $featureProducer->status = $status; return $featureProducer; } public function createFeatureProducer( Feature $feature, bool $status = null ): FeatureProducer { $featureProducer = $this->featureProducerRepository->findOneFeatureProducer($feature); if(!$featureProducer) { $featureProducer = $this->instanciateFeatureProducer($feature, $status); $this->create($featureProducer); } return $featureProducer; } public function updateStatus(FeatureProducer $featureProducer, bool $status = null) { $featureProducer->status = $status; $this->update($featureProducer); } public function updateStatusByFeature(Feature $feature, bool $status = null) { $featureProducer = $this->createFeatureProducer($feature, $status); $this->updateStatus($featureProducer, $status); } }