/**
  * Execute the command.
  *
  * @return void
  */
 public function handle()
 {
     parent::handle();
     if (!$this->commandData->skipMigration) {
         $migrationGenerator = new MigrationGenerator($this->commandData);
         $migrationGenerator->generate();
     }
     $modelGenerator = new ModelGenerator($this->commandData);
     $modelGenerator->generate();
     $requestGenerator = new RequestGenerator($this->commandData);
     $requestGenerator->generate();
     $repositoryGenerator = new ServiceGenerator($this->commandData);
     $repositoryGenerator->generate();
     $repoControllerGenerator = new APIControllerGenerator($this->commandData);
     $repoControllerGenerator->generate();
     $viewsGenerator = new ViewGenerator($this->commandData);
     $viewsGenerator->generate();
     $repoControllerGenerator = new ViewControllerGenerator($this->commandData);
     $repoControllerGenerator->generate();
     $routeGenerator = new RoutesGenerator($this->commandData);
     $routeGenerator->generate();
     if ($this->confirm("\nDo you want to migrate database? [y|N]", false)) {
         $this->call('migrate');
     }
 }