private function estimate_time($type)
 {
     // clear history
     $history = $this->client->getHistory();
     $history->clear();
     unset($history);
     //
     $remaining_records = 0;
     if (empty($this->start_time)) {
         $this->start_time = time();
     }
     if (empty($this->expected_records)) {
         $this->expected_records = KsProfile::count();
     }
     switch ($type) {
         case 'counties':
             $total_counties = KsCounty::count();
             $counties_crawled = KsCounty::where('status', '!=', '0')->count();
             $remaining_records = $total_counties - $counties_crawled;
             break;
         case 'profiles':
             $this->records_crawled = KsProfile::where('status', '=', '1')->count();
             $this->state->records_crawled = $this->records_crawled;
             if ($this->records_crawled) {
                 $remaining_records = $this->expected_records - $this->records_crawled;
             }
             break;
     }
     $record_time = time() - $this->start_time;
     $expected_time = round($record_time * $remaining_records);
     $this->state->expected_time = Carbon::now()->addSeconds($expected_time);
     $this->state->save();
     // Check Crawl State
     $this->check_state();
 }
 public function run()
 {
     DB::table('ks_counties')->delete();
     KsCounty::create(["county_id" => "01", "name" => "Absentee Shawnee"]);
     KsCounty::create(["county_id" => "02", "name" => "Apache Tribe "]);
     KsCounty::create(["county_id" => "03", "name" => "Caddo Tribe "]);
     KsCounty::create(["county_id" => "04", "name" => "Cheyenne & Arapa"]);
     KsCounty::create(["county_id" => "05", "name" => "Citizen Potawatomi"]);
     KsCounty::create(["county_id" => "06", "name" => "Comanche Nation "]);
     KsCounty::create(["county_id" => "07", "name" => "Devil's Lake Sioux T"]);
     KsCounty::create(["county_id" => "08", "name" => "Fond du Lac "]);
     KsCounty::create(["county_id" => "09", "name" => "Iowa Tribe "]);
     KsCounty::create(["county_id" => "10", "name" => "Kickapoo Tribe "]);
     KsCounty::create(["county_id" => "11", "name" => "Kiowa "]);
     KsCounty::create(["county_id" => "12", "name" => "Lac du Flambeau - Ba"]);
     KsCounty::create(["county_id" => "13", "name" => "Leech Lake Band of C"]);
     KsCounty::create(["county_id" => "14", "name" => "Menominee "]);
     KsCounty::create(["county_id" => "15", "name" => "Miami Tribe "]);
     KsCounty::create(["county_id" => "16", "name" => "Mille Lacs LC Musco"]);
     KsCounty::create(["county_id" => "17", "name" => "Oglala Sioux "]);
     KsCounty::create(["county_id" => "18", "name" => "Oneida Tribe of Indi"]);
     KsCounty::create(["county_id" => "19", "name" => "Osage Nation "]);
     KsCounty::create(["county_id" => "20", "name" => "Otoe-Missouria Tribe"]);
     KsCounty::create(["county_id" => "21", "name" => "Pawnee Tribe "]);
     KsCounty::create(["county_id" => "22", "name" => "Ponca Tribe "]);
     KsCounty::create(["county_id" => "23", "name" => "Red Lake "]);
     KsCounty::create(["county_id" => "24", "name" => "Sac & Fox "]);
     KsCounty::create(["county_id" => "25", "name" => "Seminole Nation "]);
     KsCounty::create(["county_id" => "26", "name" => "Seneca-Cayuga Tribes"]);
     KsCounty::create(["county_id" => "27", "name" => "Shakopee "]);
     KsCounty::create(["county_id" => "28", "name" => "Turtle Mountain Band"]);
     KsCounty::create(["county_id" => "29", "name" => "White Earth "]);
     KsCounty::create(["county_id" => "30", "name" => "Wichita Tribe "]);
     KsCounty::create(["county_id" => "31", "name" => "Wyandotte Tribe "]);
     KsCounty::create(["county_id" => "32", "name" => "Prairie Potawatomi"]);
     KsCounty::create(["county_id" => "XX", "name" => "Unknown"]);
     KsCounty::create(["county_id" => "AL", "name" => "Allen"]);
     KsCounty::create(["county_id" => "AN", "name" => "Anderson"]);
     KsCounty::create(["county_id" => "AT", "name" => "Atchison"]);
     KsCounty::create(["county_id" => "BA", "name" => "Barber"]);
     KsCounty::create(["county_id" => "BB", "name" => "Bourbon"]);
     KsCounty::create(["county_id" => "BR", "name" => "Brown"]);
     KsCounty::create(["county_id" => "BT", "name" => "Barton"]);
     KsCounty::create(["county_id" => "CA", "name" => "Clark"]);
     KsCounty::create(["county_id" => "CD", "name" => "Cloud"]);
     KsCounty::create(["county_id" => "CF", "name" => "Coffey"]);
     KsCounty::create(["county_id" => "CK", "name" => "Cherokee"]);
     KsCounty::create(["county_id" => "CM", "name" => "Comanche"]);
     KsCounty::create(["county_id" => "CN", "name" => "Cheyenne"]);
     KsCounty::create(["county_id" => "CQ", "name" => "Chautauqua"]);
     KsCounty::create(["county_id" => "CR", "name" => "Crawford"]);
     KsCounty::create(["county_id" => "CS", "name" => "Chase"]);
     KsCounty::create(["county_id" => "CY", "name" => "Clay"]);
     KsCounty::create(["county_id" => "DC", "name" => "Decatur"]);
     KsCounty::create(["county_id" => "DG", "name" => "Douglas"]);
     KsCounty::create(["county_id" => "DK", "name" => "Dickinson"]);
     KsCounty::create(["county_id" => "DP", "name" => "Doniphan"]);
     KsCounty::create(["county_id" => "ED", "name" => "Edwards"]);
     KsCounty::create(["county_id" => "EK", "name" => "Elk"]);
     KsCounty::create(["county_id" => "EL", "name" => "Ellis"]);
     KsCounty::create(["county_id" => "FI", "name" => "Finney"]);
     KsCounty::create(["county_id" => "FO", "name" => "Ford"]);
     KsCounty::create(["county_id" => "FR", "name" => "Franklin"]);
     KsCounty::create(["county_id" => "GE", "name" => "Geary"]);
     KsCounty::create(["county_id" => "GH", "name" => "Graham"]);
     KsCounty::create(["county_id" => "GL", "name" => "Greeley"]);
     KsCounty::create(["county_id" => "GO", "name" => "Gove"]);
     KsCounty::create(["county_id" => "GT", "name" => "Grant"]);
     KsCounty::create(["county_id" => "GW", "name" => "Greenwood"]);
     KsCounty::create(["county_id" => "GY", "name" => "Gray"]);
     KsCounty::create(["county_id" => "HG", "name" => "Hodgeman"]);
     KsCounty::create(["county_id" => "HM", "name" => "Hamilton"]);
     KsCounty::create(["county_id" => "HP", "name" => "Harper"]);
     KsCounty::create(["county_id" => "HS", "name" => "Haskell"]);
     KsCounty::create(["county_id" => "HV", "name" => "Harvey"]);
     KsCounty::create(["county_id" => "JA", "name" => "Jackson"]);
     KsCounty::create(["county_id" => "JF", "name" => "Jefferson"]);
     KsCounty::create(["county_id" => "JW", "name" => "Jewell"]);
     KsCounty::create(["county_id" => "KE", "name" => "Kearny"]);
     KsCounty::create(["county_id" => "KM", "name" => "Kingman"]);
     KsCounty::create(["county_id" => "KW", "name" => "Kiowa"]);
     KsCounty::create(["county_id" => "LB", "name" => "Labette"]);
     KsCounty::create(["county_id" => "LC", "name" => "Lincoln"]);
     KsCounty::create(["county_id" => "LE", "name" => "Lane"]);
     KsCounty::create(["county_id" => "LG", "name" => "Logan"]);
     KsCounty::create(["county_id" => "LN", "name" => "Linn"]);
     KsCounty::create(["county_id" => "LY", "name" => "Lyon"]);
     KsCounty::create(["county_id" => "MC", "name" => "Mitchell"]);
     KsCounty::create(["county_id" => "ME", "name" => "Meade"]);
     KsCounty::create(["county_id" => "MG", "name" => "Montgomery"]);
     KsCounty::create(["county_id" => "MI", "name" => "Miami"]);
     KsCounty::create(["county_id" => "MN", "name" => "Marion"]);
     KsCounty::create(["county_id" => "MP", "name" => "McPherson"]);
     KsCounty::create(["county_id" => "MR", "name" => "Morris"]);
     KsCounty::create(["county_id" => "MS", "name" => "Marshall"]);
     KsCounty::create(["county_id" => "MT", "name" => "Morton"]);
     KsCounty::create(["county_id" => "NM", "name" => "Nemaha"]);
     KsCounty::create(["county_id" => "NO", "name" => "Neosho"]);
     KsCounty::create(["county_id" => "NS", "name" => "Ness"]);
     KsCounty::create(["county_id" => "NT", "name" => "Norton"]);
     KsCounty::create(["county_id" => "OB", "name" => "Osborne"]);
     KsCounty::create(["county_id" => "OS", "name" => "Osage"]);
     KsCounty::create(["county_id" => "OT", "name" => "Ottawa"]);
     KsCounty::create(["county_id" => "PL", "name" => "Phillips"]);
     KsCounty::create(["county_id" => "PN", "name" => "Pawnee"]);
     KsCounty::create(["county_id" => "PR", "name" => "Pratt"]);
     KsCounty::create(["county_id" => "PT", "name" => "Pottawatomie"]);
     KsCounty::create(["county_id" => "RA", "name" => "Rawlins"]);
     KsCounty::create(["county_id" => "RC", "name" => "Rice"]);
     KsCounty::create(["county_id" => "RH", "name" => "Rush"]);
     KsCounty::create(["county_id" => "RL", "name" => "Riley"]);
     KsCounty::create(["county_id" => "RO", "name" => "Rooks"]);
     KsCounty::create(["county_id" => "RP", "name" => "Republic"]);
     KsCounty::create(["county_id" => "RS", "name" => "Russell"]);
     KsCounty::create(["county_id" => "SA", "name" => "Saline"]);
     KsCounty::create(["county_id" => "SC", "name" => "Scott"]);
     KsCounty::create(["county_id" => "SD", "name" => "Sheridan"]);
     KsCounty::create(["county_id" => "SF", "name" => "Stafford"]);
     KsCounty::create(["county_id" => "SH", "name" => "Sherman"]);
     KsCounty::create(["county_id" => "SM", "name" => "Smith"]);
     KsCounty::create(["county_id" => "ST", "name" => "Stanton"]);
     KsCounty::create(["county_id" => "SU", "name" => "Sumner"]);
     KsCounty::create(["county_id" => "SV", "name" => "Stevens"]);
     KsCounty::create(["county_id" => "SW", "name" => "Seward"]);
     KsCounty::create(["county_id" => "TH", "name" => "Thomas"]);
     KsCounty::create(["county_id" => "TR", "name" => "Trego"]);
     KsCounty::create(["county_id" => "WA", "name" => "Wallace"]);
     KsCounty::create(["county_id" => "WB", "name" => "Wabaunsee"]);
     KsCounty::create(["county_id" => "WH", "name" => "Wichita"]);
     KsCounty::create(["county_id" => "WL", "name" => "Wilson"]);
     KsCounty::create(["county_id" => "WO", "name" => "Woodson"]);
     KsCounty::create(["county_id" => "WS", "name" => "Washington"]);
     KsCounty::create(["county_id" => "BU", "name" => "Butler"]);
     KsCounty::create(["county_id" => "CL", "name" => "Cowley"]);
     KsCounty::create(["county_id" => "EW", "name" => "Ellsworth"]);
     KsCounty::create(["county_id" => "JO", "name" => "Johnson"]);
     KsCounty::create(["county_id" => "LV", "name" => "Leavenworth"]);
     KsCounty::create(["county_id" => "RN", "name" => "Reno"]);
     KsCounty::create(["county_id" => "SG", "name" => "Sedgwick"]);
     KsCounty::create(["county_id" => "SN", "name" => "Shawnee"]);
     KsCounty::create(["county_id" => "WY", "name" => "Wyandotte"]);
 }