public function canHave(Users $user)
{
$ids = [];
$noBountyCategories = $this->getNoBountyCategories();
$conditions = 'categories_id NOT IN (' . join(', ', $noBountyCategories) . ') AND
(IF(votes_up IS NULL, 0, votes_up) - IF(votes_down IS NULL, 0, votes_down)) >= 5';
$posts = $user->getPosts([$conditions, 'columns' => 'id', 'order' => 'created_at DESC']);
foreach ($posts as $post) {
$have = UsersBadges::count(['users_id = ?0 AND badge = ?1 AND type = "P" AND code1 = ?2', 'bind' => [$user->id, $this->getName(), $post->id]]);
if (!$have) {
$ids[] = $post->id;
}
}
return $ids;
}