]> BookStack Code Mirror - bookstack/blobdiff - app/Uploads/Image.php
Updated minimum php version from 7.3 to 7.4
[bookstack] / app / Uploads / Image.php
index df6d9fb0d151ef00cd8c579bdccc3891e3626974..bdf10f080fe99cd991f52bc0174e75cc4c5ac00f 100644 (file)
@@ -1,23 +1,46 @@
-<?php namespace BookStack\Uploads;
+<?php
 
-use BookStack\Ownable;
-use Images;
+namespace BookStack\Uploads;
 
-class Image extends Ownable
+use BookStack\Entities\Models\Page;
+use BookStack\Model;
+use BookStack\Traits\HasCreatorAndUpdater;
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+
+/**
+ * @property int    $id
+ * @property string $name
+ * @property string $url
+ * @property string $path
+ * @property string $type
+ * @property int    $uploaded_to
+ * @property int    $created_by
+ * @property int    $updated_by
+ */
+class Image extends Model
 {
+    use HasFactory;
+    use HasCreatorAndUpdater;
 
     protected $fillable = ['name'];
+    protected $hidden = [];
 
     /**
      * Get a thumbnail for this image.
-     * @param  int $width
-     * @param  int $height
-     * @param bool|false $keepRatio
-     * @return string
+     *
      * @throws \Exception
      */
-    public function getThumb($width, $height, $keepRatio = false)
+    public function getThumb(int $width, int $height, bool $keepRatio = false): string
+    {
+        return app()->make(ImageService::class)->getThumbnail($this, $width, $height, $keepRatio);
+    }
+
+    /**
+     * Get the page this image has been uploaded to.
+     * Only applicable to gallery or drawio image types.
+     */
+    public function getPage(): ?Page
     {
-        return Images::getThumbnail($this, $width, $height, $keepRatio);
+        return $this->belongsTo(Page::class, 'uploaded_to')->first();
     }
 }