3 namespace BookStack\Users\Queries;
5 use BookStack\Entities\Models\Book;
6 use BookStack\Entities\Models\Bookshelf;
7 use BookStack\Entities\Models\Chapter;
8 use BookStack\Entities\Models\Page;
9 use BookStack\Users\Models\User;
10 use Illuminate\Database\Eloquent\Builder;
11 use Illuminate\Database\Eloquent\Collection;
14 * Get the recently created content for the provided user.
16 class UserRecentlyCreatedContent
19 * @return array{pages: Collection, chapters: Collection, books: Collection, shelves: Collection}
21 public function run(User $user, int $count): array
23 $query = function (Builder $query) use ($user, $count) {
24 return $query->orderBy('created_at', 'desc')
25 ->where('created_by', '=', $user->id)
31 'pages' => $query(Page::visible()->where('draft', '=', false)),
32 'chapters' => $query(Chapter::visible()),
33 'books' => $query(Book::visible()),
34 'shelves' => $query(Bookshelf::visible()),