public function findAll(int $limit, int $offset = 0) : array
{
$qb = $this->connection->createQueryBuilder();
$qb->select('*')->from('dumplie_inventory_product')->setFirstResult($offset)->setMaxResults($limit);
$results = $this->connection->fetchAll($qb->getSQL(), $qb->getParameters());
return array_map(function ($data) {
return new Product($data['sku'], $data['price_amount'] / $data['price_precision'], $data['price_currency'], (bool) $data['is_in_stock'], $this->mao->getBy([Metadata::FIELD_SKU => $data['sku']]));
}, $results);
}