]> BookStack Code Mirror - bookstack/blobdiff - app/Entities/Models/Deletion.php
Applied StyleCI changes, added php/larastan to attribution
[bookstack] / app / Entities / Models / Deletion.php
index dab44d4ad31e94841ec83b9c9d4aea4a843c9771..dab89ce37427e82d372ced42cc5bcd2090322e89 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack\Entities;
+<?php
+
+namespace BookStack\Entities\Models;
 
 use BookStack\Auth\User;
 use BookStack\Interfaces\Loggable;
@@ -6,9 +8,11 @@ use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
 use Illuminate\Database\Eloquent\Relations\MorphTo;
 
+/**
+ * @property Model deletable
+ */
 class Deletion extends Model implements Loggable
 {
-
     /**
      * Get the related deletable record.
      */
@@ -28,20 +32,30 @@ class Deletion extends Model implements Loggable
     /**
      * Create a new deletion record for the provided entity.
      */
-    public static function createForEntity(Entity $entity): Deletion
+    public static function createForEntity(Entity $entity): self
     {
         $record = (new self())->forceFill([
-            'deleted_by' => user()->id,
+            'deleted_by'     => user()->id,
             'deletable_type' => $entity->getMorphClass(),
-            'deletable_id' => $entity->id,
+            'deletable_id'   => $entity->id,
         ]);
         $record->save();
+
         return $record;
     }
 
     public function logDescriptor(): string
     {
         $deletable = $this->deletable()->first();
+
         return "Deletion ({$this->id}) for {$deletable->getType()} ({$deletable->id}) {$deletable->name}";
     }
+
+    /**
+     * Get a URL for this specific deletion.
+     */
+    public function getUrl($path): string
+    {
+        return url("/settings/recycle-bin/{$this->id}/" . ltrim($path, '/'));
+    }
 }