3 namespace BookStack\Entities\Queries;
5 use BookStack\Entities\Models\Page;
6 use Illuminate\Database\Eloquent\Builder;
8 class PageQueries implements ProvidesEntityQueries
10 public function start(): Builder
15 public function findVisibleById(int $id): ?Page
17 return $this->start()->scopes('visible')->find($id);
20 public function visibleForList(): Builder
23 ->select(array_merge(Page::$listAttributes, ['book_slug' => function ($builder) {
24 $builder->select('slug')
26 ->whereColumn('books.id', '=', 'pages.book_id');
30 public function currentUserDraftsForList(): Builder
32 return $this->visibleForList()
33 ->where('draft', '=', true)
34 ->where('created_by', '=', user()->id);