protected function addFieldProperties(&$properties, array $fields, $withoutTimestamps, $withSoftDelete)
    {
        $primaryField = $this->getPrimaryField($fields);

        foreach ($fields as $field) {

            if ($field instanceof Field && $field != $primaryField) {
                if (!$withoutTimestamps && $field->isAutoManagedOnUpdate()) {
                    continue;
                }
                if ($withSoftDelete && $field->isAutoManagedOnDelete()) {
                    continue;
                }

                $this->addFieldType($properties, $field)
                    ->addFieldComment($properties, $field)
                    ->addFieldUnsigned($properties, $field)
                    ->addFieldNullable($properties, $field)
                    ->addFieldIndex($properties, $field)
                    ->addFieldUnique($properties, $field)
                    ->addFieldPropertyClousure($properties);
            }
        }

        return $this;
    }