/** * Run the Update * * @return mixed|void */ public function call() { $pheal = $this->setScope('corp')->setCorporationID()->getPheal(); $result = $pheal->MemberTracking(['extended' => 1]); foreach ($result->members as $member) { $member_info = MemberTrackingModel::firstOrNew(['corporationID' => $this->corporationID, 'characterID' => $member->characterID]); $member_info->fill(['name' => $member->name, 'startDateTime' => $member->startDateTime, 'baseID' => $member->baseID, 'base' => $member->base, 'title' => $member->title, 'logonDateTime' => $member->logonDateTime, 'logoffDateTime' => $member->logoffDateTime, 'locationID' => $member->locationID, 'location' => $member->location, 'shipTypeID' => $member->shipTypeID, 'shipType' => $member->shipType, 'roles' => $member->roles, 'grantableRoles' => $member->grantableRoles]); $member_info->save(); } // Cleanup members no longer in this corporation MemberTrackingModel::where('corporationID', $this->corporationID)->whereNotIn('characterID', array_map(function ($member) { return $member->characterID; }, (array) $result->members))->delete(); return; }
/** * The required method to handle the Alert. * * @return mixed */ protected function getData() : Collection { return MemberTracking::where('logoffDateTime', '<', DB::raw('date_sub(NOW(), INTERVAL 3 MONTH)'))->get(); }