userId = $userId; $this->userFlagsRepository = ContainerWrapper::getInstance()->get(UserFlagsRepository::class); } public function withDefaultFlags() { $this->withEditorTutorialSeen(); } public function withEditorTutorialSeen() { $this->withFlag('editor_tutorial_seen', 1); return $this; } public function withFlag($name, $value) { $userFlag = $this->userFlagsRepository->findOneBy([ 'userId' => $this->userId, 'name' => $name, ]); if (!$userFlag) { $userFlag = new UserFlagEntity(); $userFlag->setUserId($this->userId); $userFlag->setName($name); $this->userFlagsRepository->persist($userFlag); } $userFlag->setValue($value); $this->userFlagsRepository->persist($userFlag); $this->userFlagsRepository->flush(); return $this; } }