/**
  * @inheritdoc
  */
 public function process(EloquentModel $model, Config $config)
 {
     $schemaManager = $this->databaseManager->connection()->getDoctrineSchemaManager();
     $prefix = $this->databaseManager->connection()->getTablePrefix();
     $tableDetails = $schemaManager->listTableDetails($prefix . $model->getTableName());
     $primaryColumnNames = $tableDetails->getPrimaryKey()->getColumns();
     $columnNames = [];
     foreach ($tableDetails->getColumns() as $column) {
         $model->addProperty(new VirtualPropertyModel($column->getName(), $this->typeRegistry->resolveType($column->getType()->getName())));
         if (!in_array($column->getName(), $primaryColumnNames)) {
             $columnNames[] = $column->getName();
         }
     }
     $fillableProperty = new PropertyModel('fillable');
     $fillableProperty->setAccess('protected')->setValue($columnNames)->setDocBlock(new DocBlockModel('@var array'));
     $model->addProperty($fillableProperty);
     return $this;
 }
 /**
  * @param EloquentModel $model
  * @return $this
  */
 protected function setFields(EloquentModel $model)
 {
     $tableDetails = $this->manager->listTableDetails($model->getTableName());
     $primaryColumnNames = $tableDetails->getPrimaryKey()->getColumns();
     $columnNames = [];
     foreach ($tableDetails->getColumns() as $column) {
         $model->addProperty(new VirtualPropertyModel($column->getName(), $this->resolveType($column->getType()->getName())));
         if (!in_array($column->getName(), $primaryColumnNames)) {
             $columnNames[] = $column->getName();
         }
     }
     $fillableProperty = new PropertyModel('fillable');
     $fillableProperty->setAccess('protected')->setValue($columnNames)->setDocBlock(new DocBlockModel('@var array'));
     $model->addProperty($fillableProperty);
     return $this;
 }