src/Jobs/Universe/Structures.php
private function getCharacterAssetLocations(): array
    {

        $assets = CharacterAsset::where('character_id', $this->getCharacterId())
            ->where('location_flag', 'Hangar')
            ->where('location_type', 'other')
            // Asset Safety
            ->where('location_id', '<>', self::ASSET_SAFETY)
            // Solar Systems
            ->whereNotBetween('location_id', self::SOLAR_SYSTEMS_RANGE)
            // Bugged Assets
            ->whereNotBetween('location_id', self::BUGGED_ASSETS_RANGE)
            // Station / Outpost
            ->whereNotBetween('location_id', self::UPWELL_STRUCTURES_RANGE)
            // stuffs
            ->whereNotIn('location_id', function ($query) {
                $query->select('item_id')
                    ->from((new CharacterAsset)->getTable())
                    ->where('character_id', $this->getCharacterId())
                    ->distinct();
            })
            // Remove structures that already have a name resolved
            // within the last week.
            ->whereNotIn('location_id', function ($query) {

                $query->select('structure_id')
                    ->from((new UniverseStructure)->getTable())
                    ->where('name', '<>', 'Unknown Structure')
                    ->where('updated_at', '<', carbon('now')->subWeek());
            })
            ->select('location_id')->distinct()
            // Until CCP can sort out this endpoint, pick 30 random locations
            // and try to get those names. We hard cap it at 30 otherwise we
            // will quickly kill the error limit, resulting in a ban.
            ->inRandomOrder()
            ->limit(15)
            ->get();

        return $assets->map(function ($asset) {

            return $asset->location_id;

        })->all();
    }
private function getCharacterAssetLocations(): array
    {

        $assets = CharacterAsset::where('character_id', $this->getCharacterId())
            ->where('location_flag', 'Hangar')
            ->where('location_type', 'other')
            // Asset Safety
            ->where('location_id', '<>', self::ASSET_SAFETY)
            // Solar Systems
            ->whereNotBetween('location_id', self::SOLAR_SYSTEMS_RANGE)
            // Bugged Assets
            ->whereNotBetween('location_id', self::BUGGED_ASSETS_RANGE)
            // Station / Outpost
            ->whereNotBetween('location_id', self::UPWELL_STRUCTURES_RANGE)
            // stuffs
            ->whereNotIn('location_id', function ($query) {
                $query->select('item_id')
                    ->from((new CharacterAsset)->getTable())
                    ->where('character_id', $this->getCharacterId())
                    ->distinct();
            })
            // Remove structures that already have a name resolved
            // within the last week.
            ->whereNotIn('location_id', function ($query) {

                $query->select('structure_id')
                    ->from((new UniverseStructure)->getTable())
                    ->where('name', '<>', 'Unknown Structure')
                    ->where('updated_at', '<', carbon('now')->subWeek());
            })
            ->select('location_id')->distinct()
            // Until CCP can sort out this endpoint, pick 30 random locations
            // and try to get those names. We hard cap it at 30 otherwise we
            // will quickly kill the error limit, resulting in a ban.
            ->inRandomOrder()
            ->limit(15)
            ->get();

        return $assets->map(function ($asset) {

            return $asset->location_id;

        })->all();
    }
private function getCharacterAssetLocations ( ) : array { $ assets = CharacterAsset :: where ( 'character_id' , $ this -> getCharacterId ( ) ) -> where ( 'location_flag' , 'Hangar' ) -> where ( 'location_type' , 'other' ) // Asset Safety -> where ( 'location_id' , '<>' , self :: ASSET_SAFETY ) // Solar Systems -> whereNotBetween ( 'location_id' , self :: SOLAR_SYSTEMS_RANGE ) // Bugged Assets -> whereNotBetween ( 'location_id' , self :: BUGGED_ASSETS_RANGE ) // Station / Outpost -> whereNotBetween ( 'location_id' , self :: UPWELL_STRUCTURES_RANGE ) // stuffs -> whereNotIn ( 'location_id' , function ( $ query ) { $ query -> select ( 'item_id' ) -> from ( ( new CharacterAsset ) -> getTable ( ) ) -> where ( 'character_id' , $ this -> getCharacterId ( ) ) -> distinct ( ) ; } ) // Remove structures that already have a name resolved // within the last week. -> whereNotIn ( 'location_id' , function ( $ query ) { $ query -> select ( 'structure_id' ) -> from ( ( new UniverseStructure ) -> getTable ( ) ) -> where ( 'name' , '<>' , 'Unknown Structure' ) -> where ( 'updated_at' , '<' , carbon ( 'now' ) -> subWeek ( ) ) ; } ) -> select ( 'location_id' ) -> distinct ( ) // Until CCP can sort out this endpoint, pick 30 random locations // and try to get those names. We hard cap it at 30 otherwise we // will quickly kill the error limit, resulting in a ban. -> inRandomOrder ( ) -> limit ( 15 ) -> get ( ) ; return $ assets -> map ( function ( $ asset ) { return $ asset -> location_id ; } ) -> all ( ) ; }
Gets the current characters asset locations.

@return array
@throws \Exception
Gets the current characters asset locations .