3 namespace BookStack\Entities\Queries;
5 use BookStack\Entities\Models\PageRevision;
6 use Illuminate\Database\Eloquent\Builder;
8 class PageRevisionQueries
10 public function start(): Builder
12 return PageRevision::query();
15 public function findLatestVersionBySlugs(string $bookSlug, string $pageSlug): ?PageRevision
17 return PageRevision::query()
18 ->whereHas('page', function (Builder $query) {
19 $query->scopes('visible');
21 ->where('slug', '=', $pageSlug)
22 ->where('type', '=', 'version')
23 ->where('book_slug', '=', $bookSlug)
24 ->orderBy('created_at', 'desc')
28 public function findLatestCurrentUserDraftsForPageId(int $pageId): ?PageRevision
30 /** @var ?PageRevision $revision */
31 $revision = $this->latestCurrentUserDraftsForPageId($pageId)->first();
36 public function latestCurrentUserDraftsForPageId(int $pageId): Builder
39 ->where('created_by', '=', user()->id)
40 ->where('type', 'update_draft')
41 ->where('page_id', '=', $pageId)
42 ->orderBy('created_at', 'desc');