public function getTable(): TableStructure
    {
        if ($this->_table === null) {
            $indexes = $this->getTableIndexes();

            $this->_table = new TableStructure([
                'name' => $this->tableName,
                'schema' => get_class($this->db->schema),
                'generalSchema' => $this->generalSchema,
                'usePrefix' => $this->useTablePrefix,
                'dbPrefix' => $this->db->tablePrefix,
                'primaryKey' => $this->getTablePrimaryKey(),
                'foreignKeys' => $this->getTableForeignKeys(),
                'indexes' => $indexes,
                'tableOptionsInit' => $this->tableOptionsInit,
                'tableOptions' => $this->tableOptions,
            ]);

            $this->_table->columns = $this->getTableColumns($indexes, $this->_table->schema);
        }

        return $this->_table;
    }