denyUnlessSuperAdmin($request)) { return $denied; } $class = $this->resolveModel($request); if ($class instanceof Response) { return $class; } /** @var Model $model */ $model = new $class; $table = $model->getTable(); $columns = collect(Schema::getColumns($table))->map(fn (array $column): array => [ 'name' => $column['name'], 'type' => $column['type_name'] ?? $column['type'] ?? null, 'nullable' => $column['nullable'] ?? null, 'default' => $column['default'] ?? null, ])->values(); return Response::json([ 'model' => class_basename($class), 'class' => $class, 'table' => $table, 'primary_key' => $model->getKeyName(), 'columns' => $columns, 'casts' => $model->getCasts(), ]); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'model' => $this->modelParameter($schema), ]; } }