use App\Models\Link;
use Illuminate\View\View;
use App\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Builder;
class ListLinksController extends Controller
{
public function __invoke() : View
{
$distinctUsersQuery = Link::query()
->select('user_id')
->distinct('user_id')
->whereRelation('user', function (Builder $query) {
$query
->whereNotIn('email', [
])
->whereNotNull('avatar');
});
return view('links.index', [
'distinctUserAvatars' => $distinctUsersQuery
->with('user')
->approved()
->inRandomOrder()
->limit(10)
->get()
->map(fn (Link $link) => $link->user->avatar),
'distinctUsersCount' => $distinctUsersQuery->count(),
'links' => Link::query()
->with('user')
->approved()
->latest('is_approved')
->paginate(12),
]);
}
}