/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $this->info('Iniciando a requisição para o webservice');
     $this->info('Carregando a lista de estados');
     $estados = $this->makeRequest('estados');
     $this->info('Foram encontrados ' . count($estados) . ' estados');
     $this->info('Carregando a lista de cargos');
     $cargos = CandidateType::all()->lists('id', 'type');
     $this->info('Foram encontrados ' . count($cargos) . ' cargos');
     $this->info('Carregando a lista de partidos');
     $partidos = Party::all()->lists('id', 'abbreviation');
     $this->info('Foram encontrados ' . count($partidos) . ' partidos');
     foreach ($estados as $estado_id => $estado) {
         $this->info("Carregando os candidatos de {$estado->sigla} ({$estado_id}/" . count($estado) . ")");
         foreach ($cargos as $cargo_nome => $cargo_id) {
             $this->info('- Procurando por ' . $cargo_nome);
             $candidatos = $this->makeRequest('candidatos', ['estado' => $estado->sigla, 'cargo' => $cargo_id]);
             foreach ($candidatos as $candidato) {
                 $candidate = Candidate::where('full_name', $candidato->nome)->first();
                 if (!$candidate) {
                     $this->info('-- Processando ' . $candidato->nome . '/' . $candidato->apelido);
                     $picture_hash = Str::random(90) . ".jpg";
                     file_put_contents(app_path() . '/../www/uploads/' . $picture_hash, file_get_contents($candidato->foto));
                     Candidate::create(['party_id' => $partidos[$candidato->partido], 'candidate_type_id' => $cargos[ucfirst(strtolower(str_replace('º', '', (string) $candidato->cargo)))], 'nickname' => $candidato->apelido, 'full_name' => $candidato->nome, 'picture' => $picture_hash]);
                 }
             }
             //$this->info('Foram encontrados ' . count($candidatos) . ' candidatos');
         }
     }
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     $this->info('Iniciando a requisição para o webservice');
     $cargos = $this->makeRequest('cargos');
     $this->info('Foram encontrados ' . count($cargos) . ' cargos.');
     foreach ($cargos as $cargo) {
         CandidateType::create(['type' => ucfirst(strtolower(str_replace('º', '', (string) $cargo->nome)))]);
     }
     $this->info('Procedimento concluido com sucesso');
 }