[ 'belongs-to-one' => 'Model\UserModel' ], 'userCharacters' => [ 'has-many' => ['Model\UserCharacterModel', 'apiId'] ] ]; /** * get all data for this api * @return object */ public function getData(){ $apiData = (object) []; $apiData->keyId = $this->keyId; $apiData->vCode = $this->vCode; return $apiData; } /** * @return int */ public function updateCharacters(){ $apiController = new Controller\CcpApiController(); return $apiController->updateCharacters($this); } /** * get all characters for this API * @return array|mixed */ public function getUserCharacters(){ $this->filter('userCharacters', ['active = ?', 1]); $userCharacters = []; if($this->userCharacters){ $userCharacters = $this->userCharacters; } return $userCharacters; } /** * search for a user character model by a characterId * @param $characterId * @return null */ public function getUserCharacterById($characterId){ $userCharacters = $this->getUserCharacters(); $returnUserCharacter = null; foreach($userCharacters as $userCharacter){ if($userCharacter->characterId->id == $characterId){ $returnUserCharacter = $userCharacter; break; } } return $returnUserCharacter; } /** * check if this api model has a main character * @return bool */ public function hasMainCharacter(){ $hasMain = false; $characters = $this->getCharacters(); foreach($characters as $character){ if($character->isMain()){ $hasMain = true; break; } } return $hasMain; } /** * get the user object for this model * @return mixed */ public function getUser(){ return $this->userId; } /** * delete this api model */ public function delete(){ // check if this api model had a main character $user = $this->userId; $setNewMain = false; if($this->hasMainCharacter()){ $setNewMain = true; } $this->erase(); if($setNewMain){ $user->setMainCharacterId(); } } }