X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/968bc8cdf354d9cbe29b88abdc747a7845031fab..refs/pull/5405/head:/app/Entities/Models/Book.php diff --git a/app/Entities/Models/Book.php b/app/Entities/Models/Book.php index 8584e755e..c1644dcf5 100644 --- a/app/Entities/Models/Book.php +++ b/app/Entities/Models/Book.php @@ -15,20 +15,23 @@ use Illuminate\Support\Collection; * * @property string $description * @property int $image_id + * @property ?int $default_template_id * @property Image|null $cover * @property \Illuminate\Database\Eloquent\Collection $chapters * @property \Illuminate\Database\Eloquent\Collection $pages * @property \Illuminate\Database\Eloquent\Collection $directPages * @property \Illuminate\Database\Eloquent\Collection $shelves + * @property ?Page $defaultTemplate */ class Book extends Entity implements HasCoverImage { use HasFactory; + use HasHtmlDescription; - public $searchFactor = 1.2; + public float $searchFactor = 1.2; - protected $fillable = ['name', 'description', 'default_template']; - protected $hidden = ['pivot', 'image_id', 'deleted_at']; + protected $fillable = ['name']; + protected $hidden = ['pivot', 'image_id', 'deleted_at', 'description_html']; /** * Get the url for this book. @@ -76,7 +79,7 @@ class Book extends Entity implements HasCoverImage */ public function defaultTemplate(): BelongsTo { - return $this->belongsTo(Page::class, 'default_template'); + return $this->belongsTo(Page::class, 'default_template_id'); } /** @@ -114,20 +117,11 @@ class Book extends Entity implements HasCoverImage /** * Get the direct child items within this book. */ - public function getDirectChildren(): Collection + public function getDirectVisibleChildren(): Collection { $pages = $this->directPages()->scopes('visible')->get(); $chapters = $this->chapters()->scopes('visible')->get(); return $pages->concat($chapters)->sortBy('priority')->sortByDesc('draft'); } - - /** - * Get a visible book by its slug. - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public static function getBySlug(string $slug): self - { - return static::visible()->where('slug', '=', $slug)->firstOrFail(); - } }