[ 'type' => Schema::DT_VARCHAR128, 'nullable' => false, 'default' => '' ], 'description' => [ 'type' => Schema::DT_TEXT ], 'constellations' => [ 'has-many' => ['Exodus4D\Pathfinder\Model\Universe\ConstellationModel', 'regionId'] ], 'systemNeighbours' => [ 'has-many' => ['Exodus4D\Pathfinder\Model\Universe\SystemNeighbourModel', 'regionId'] ] ]; /** * get data * @return \stdClass */ public function getData(){ $regionData = (object) []; $regionData->id = $this->_id; $regionData->name = $this->name; return $regionData; } /** * @param int $id * @param string $accessToken * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ $data = self::getF3()->ccpClient()->send('getUniverseRegion', $id); if(!empty($data)){ $this->copyfrom($data, ['id', 'name', 'description']); $this->save(); } } /** * load constellations data for this region */ public function loadConstellationsData(){ if( !$this->dry() ){ $data = self::getF3()->ccpClient()->send('getUniverseRegion', $this->_id); if(!empty($data)){ foreach((array)$data['constellations'] as $constellationsId){ /** * @var $constellation ConstellationModel */ $constellation = $this->rel('constellations'); $constellation->loadById($constellationsId); $constellation->reset(); } } } } }