getArrayPlaceholders($timezones); $params = \array_merge($params, [ ':daily' => \Type\UnreviewedItemsReminderFrequencyType::Daily, ':weekly' => \Type\UnreviewedItemsReminderFrequencyType::Weekly, ':off' => \Type\UnreviewedItemsReminderFrequencyType::Off, ]); $query = \sprintf('SELECT * FROM dshb_operators WHERE timezone IN (%s) AND unreviewed_items_reminder_freq != :off AND review_queue_cnt > 0 AND (last_unreviewed_items_reminder IS NULL OR (unreviewed_items_reminder_freq = :daily AND last_unreviewed_items_reminder <= NOW() - \'1 day\'::interval) OR (unreviewed_items_reminder_freq = :weekly AND last_unreviewed_items_reminder <= NOW() - \'7 day\'::interval) ); ', $placeHolders); return $this->execQuery($query, $params); } /** * @param int[] $operatorsIds */ public function updateLastUnreviewedItemsReminder(array $operatorsIds): void { [$params, $placeHolders] = $this->getArrayPlaceholders($operatorsIds); $query = \sprintf('UPDATE dshb_operators SET last_unreviewed_items_reminder = NOW() WHERE "id" IN (%s); ', $placeHolders); $this->execQuery($query, $params); } }