- // Remove all update drafts for this user & page.
- $this->userUpdatePageDraftsQuery($page, $userId)->delete();
+ /**
+ * Get a page by its old slug but checking the revisions table
+ * for the last revision that matched the given page and book slug.
+ */
+ public function getByOldSlug(string $bookSlug, string $pageSlug): ?Page
+ {
+ $revision = PageRevision::query()
+ ->whereHas('page', function (Builder $query) {
+ $query->visible();
+ })
+ ->where('slug', '=', $pageSlug)
+ ->where('type', '=', 'version')
+ ->where('book_slug', '=', $bookSlug)
+ ->orderBy('created_at', 'desc')
+ ->with('page')
+ ->first();
+ return $revision ? $revision->page : null;
+ }