private static function initModelProperties()
    {
        $currentModel = static::class;

        if (isset(self::$modelProperties[$currentModel])) {
            return;
        }

        $properties = [
            'connection'  => ConnectionFactory::build(static::$connection),
            'dateFields'  => static::$dates ?: [],
            'fields'      => static::$fields ?: [],
            'primaryKeys' => (array) static::$primaryKey,
            'table'       => static::$table,
            'timestamps'  => (bool) static::$timestamps,
        ];

        if ($properties['timestamps']) {
            $properties['fields'][] = 'created_at';
            $properties['fields'][] = 'updated_at';
            $properties['dateFields'][] = 'created_at';
            $properties['dateFields'][] = 'updated_at';
        }

        self::$modelProperties[$currentModel] = $properties;
    }