class BookQueries implements ProvidesEntityQueries
{
+ protected static array $listAttributes = [
+ 'id', 'slug', 'name', 'description',
+ 'created_at', 'updated_at', 'image_id', 'owned_by',
+ ];
+
public function start(): Builder
{
return Book::query();
return $this->start()->scopes('visible')->find($id);
}
+ public function findVisibleByIdOrFail(int $id): Book
+ {
+ return $this->start()->scopes('visible')->findOrFail($id);
+ }
+
public function findVisibleBySlugOrFail(string $slug): Book
{
/** @var ?Book $book */
public function visibleForList(): Builder
{
- return $this->start()->scopes('visible');
+ return $this->start()->scopes('visible')
+ ->select(static::$listAttributes);
}
public function visibleForListWithCover(): Builder