public function findOrCreateRow($tableName, $uniqueKeys, $data, $timestamps = true)
{
if (!is_array($data)) {
dd($tableName, $uniqueKeys, $data);
}
// merge in created_at and updated_at timestamps
$data = $timestamps ? array_merge(['created_at' => new DateTime(), 'updated_at' => new DateTime()], $data) : $data;
$object = $this->findRow($tableName, $uniqueKeys, $data);
if (!$object) {
DB::table($tableName)->insert($data);
$object = $this->findRow($tableName, $uniqueKeys, $data);
}
return $object;
}