get('name')->value() ?: readline('Entity name : '); if ( empty($name)) { throw new \InvalidArgumentException("An entity name must be provided"); } $applicationList = array_reverse(array_map(fn($e) => $e->name, $this->lean->applications)); $app = $options->get('application')->value() ?? Terminal::proposeListChoice("Select an application : ", $applicationList); $entityGenerate = new Action\Console\EntityGenerate( application: $this->lean->getApplication($applicationList[$app]), name: $name, overwrite: $options->get('overwrite')->value() ?? false, default: $options->get('default-answers')->value() ?? false, ); if ("" === ( $entityGenerate->namespace = $options->get('namespace')->value() ?: "" )) { $entityGenerate->readNamespace(); } $entityGenerate->readEntity(); if ($options->get('saveForm')->value() ?? Terminal::proposeListChoice("Add a save form ?", [ true => 'Yes', false => 'No', ])) { $entityGenerate->readSaveForm(); $hasFactory = true; } if ($options->get('deleteForm')->value() ?? Terminal::proposeListChoice("Add a delete form ?", [ true => 'Yes', false => 'No', ])) { $entityGenerate->readDeleteForm(); $hasFactory = true; } if (isset($hasFactory) && ( $options->get('factory')->value() ?? Terminal::proposeListChoice("Add to form factory ?", [ true => 'Yes', false => 'No', ])) ) { $entityGenerate->readFactory(); } if ($options->get('web')->value() ?? Terminal::proposeListChoice("Add a Web controller ?", [ true => 'Yes', false => 'No', ])) { $entityGenerate->readWeb(); } if ($options->get('api')->value() ?? Terminal::proposeListChoice("Add an API controller ?", [ true => 'Yes', false => 'No', ])) { $entityGenerate->readApi(); if ($options->get('api-docs')->value() ?? Terminal::proposeListChoice("Provides documentation for this route ?", [ true => 'Yes', false => 'No', ])) { $entityGenerate->includeDocs = true; } } $entityGenerate->generate(); if ($options->get('write')->value() ?? Terminal::proposeListChoice("Write to disc or output results only ?", [ true => 'Write to disc', false => 'Output results only', ])) { $entityGenerate->writeToDisc(); } else { $entityGenerate->outputResults(); } return $this->renderCLI($request, "done"); } }