/**
  *
  * @param TypeDoc $type
  * @param $version
  */
 public static function createRecord($type, $version)
 {
     /** @var SearchApiType $model */
     $model = new static();
     $model->version = $version;
     $model->name = $type->name;
     $model->namespace = $type->namespace;
     $model->shortDescription = $type->shortDescription;
     $model->description = $type->description;
     $model->since = $type->since;
     $model->deprecatedSince = $type->deprecatedSince;
     $model->deprecatedReason = $type->deprecatedReason;
     if ($type instanceof ClassDoc) {
         $model->type = 'class';
     } elseif ($type instanceof InterfaceDoc) {
         $model->type = 'interface';
     } elseif ($type instanceof TraitDoc) {
         $model->type = 'trait';
     }
     $model->insert(false);
     if ($type->methods !== null) {
         foreach ($type->methods as $method) {
             if ($method->visibility === 'private') {
                 continue;
             }
             SearchApiPrimitive::createRecord($model, $method, $version);
         }
     }
     if ($type->properties !== null) {
         foreach ($type->properties as $property) {
             if ($property->visibility === 'private') {
                 continue;
             }
             SearchApiPrimitive::createRecord($model, $property, $version);
         }
     }
     if ($type instanceof ClassDoc) {
         foreach ($type->constants as $const) {
             SearchApiPrimitive::createRecord($model, $const, $version);
         }
         foreach ($type->events as $event) {
             SearchApiPrimitive::createRecord($model, $event, $version);
         }
     }
 }