public function updateZone(Zone $zone): void
    {
        $query = $this->connection->createQueryBuilder();
        $query
            ->update('ngbm_zone')
            ->set('root_block_id', ':root_block_id')
            ->set('linked_layout_id', ':linked_layout_id')
            ->set('linked_zone_identifier', ':linked_zone_identifier')
            ->where(
                $query->expr()->andX(
                    $query->expr()->eq('layout_id', ':layout_id'),
                    $query->expr()->eq('identifier', ':identifier')
                )
            )
            ->setParameter('layout_id', $zone->layoutId, Type::INTEGER)
            ->setParameter('identifier', $zone->identifier, Type::STRING)
            ->setParameter('root_block_id', $zone->rootBlockId, Type::INTEGER)
            ->setParameter('linked_layout_id', $zone->linkedLayoutId, Type::INTEGER)
            ->setParameter('linked_zone_identifier', $zone->linkedZoneIdentifier, Type::STRING);

        $this->applyStatusCondition($query, $zone->status);

        $query->execute();
    }