use BookStack\Facades\Permissions;
use BookStack\Interfaces\Deletable;
use BookStack\Interfaces\Favouritable;
+use BookStack\Interfaces\Loggable;
use BookStack\Interfaces\Sluggable;
use BookStack\Interfaces\Viewable;
use BookStack\Model;
* @property string $slug
* @property Carbon $created_at
* @property Carbon $updated_at
+ * @property Carbon $deleted_at
* @property int $created_by
* @property int $updated_by
* @property bool $restricted
* @method static Builder withLastView()
* @method static Builder withViewCount()
*/
-abstract class Entity extends Model implements Sluggable, Favouritable, Viewable, Deletable
+abstract class Entity extends Model implements Sluggable, Favouritable, Viewable, Deletable, Loggable
{
use SoftDeletes;
use HasCreatorAndUpdater;
return true;
}
- if (($entity->isA('chapter') || $entity->isA('page')) && $this->isA('book')) {
+ if (($entity instanceof BookChild) && $this instanceof Book) {
return $entity->book_id === $this->id;
}
- if ($entity->isA('page') && $this->isA('chapter')) {
+ if ($entity instanceof Page && $this instanceof Chapter) {
return $entity->chapter_id === $this->id;
}
->where('user_id', '=', user()->id)
->exists();
}
+
+ /**
+ * {@inheritdoc}
+ */
+ public function logDescriptor(): string
+ {
+ return "({$this->id}) {$this->name}";
+ }
}