From 5b50afdcafd150186ea5c7b0e1cad98065590b35 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 28 Aug 2026 18:44:28 +0000
Subject: [PATCH] =A few more phpStorm suggestions, mainly in PHPDocs

---
 inc/managers/ImageGenerator.php |  104 ++++++++++++++++++++++-----------------------------
 1 files changed, 45 insertions(+), 59 deletions(-)

diff --git a/inc/managers/ImageGenerator.php b/inc/managers/ImageGenerator.php
index 1a808a2..2807753 100644
--- a/inc/managers/ImageGenerator.php
+++ b/inc/managers/ImageGenerator.php
@@ -1,7 +1,6 @@
 <?php
 namespace JVBase\managers;
 
-use JVBase\managers\UploadManager;
 use WP_Error;
 use Imagick;
 use ImagickPixel;
@@ -21,6 +20,7 @@
  *
  * Generates artist feature cards as webp images with artist information
  * Uses Imagick with GD fallback and leverages FileUploadManager storage
+ * TODO: Integrate better with UploadManager.php
  */
 class ImageGenerator
 {
@@ -97,9 +97,11 @@
     /**
      * Generate the artist card
      */
-    /**
-     * @return array
-     */
+	/**
+	 * @return array
+	 * @throws Exception
+	 * @throws Exception
+	 */
     public function generate():array
     {
         // Generate appropriate filename
@@ -132,12 +134,14 @@
         ];
     }
 
-    /**
-     * Create WordPress attachment from generated image
-     * @param string $file_path
-     *
-     * @return int|WP_Error
-     */
+	/**
+	 * Create WordPress attachment from generated image
+	 * @param string $file_path
+	 *
+	 * @return int|WP_Error
+	 * @throws Exception
+	 * @throws Exception
+	 */
     protected function createAttachment(string $file_path):int|WP_Error
     {
         // Get upload directory based on user/content structure
@@ -146,7 +150,7 @@
 
         // Get directory structure from FileUploadManager if available
         if ($this->fileManager) {
-            $user_dir = $this->fileManager->getUploadDirectory();
+            $user_dir = $this->fileManager->generateDirectory('image', $this->data);
             $relative_dir = str_replace($base_dir, '', dirname($file_path));
             $destination_dir = $base_dir . '/' . $relative_dir;
         } else {
@@ -183,13 +187,10 @@
         $artist_name = $this->data['display_name'];
         $city = $this->data['city'];
 
-        switch ($this->type) {
-            case 'shop':
-                $title = 'Featured Shop Image';
-                break;
-            default:
-                $title = 'Featured Artist Image';
-        }
+		$title = match ($this->type) {
+		    'shop' => 'Featured Shop Image',
+		    default => 'Featured Artist Image',
+	    };
 
         $attachment = [
             'post_mime_type' => 'image/webp',
@@ -212,14 +213,10 @@
         require_once(ABSPATH . 'wp-admin/includes/media.php');
 
 
-        switch ($this->type) {
-            case 'shop':
-                $type = 'Tattoo Studio';
-                break;
-            default:
-                $type = $this->data['type'];
-                break;
-        }
+		$type = match ($this->type) {
+		    'shop' => 'Tattoo Studio',
+		    default => $this->data['type'],
+	    };
         // Set alt text
         $alt_text = sprintf(
             'Featured image for %s - %sin %s',
@@ -239,20 +236,16 @@
     protected function generateFilename():void
     {
         if ($this->fileManager) {
-            switch ($this->type) {
-                case 'shop':
-                    $title = 'tattoo-shop';
-                    break;
-                default:
-                    $title = 'artist';
-                    break;
-            }
+			$title = match ($this->type) {
+		        'shop' => 'tattoo-shop',
+		        default => 'artist',
+	        };
             // Use FileUploadManager to generate a filename
 
             $user_data = get_userdata($this->data['user_id']);
             $this->outputFilename = $this->fileManager->generateFilename(
                 $title.'.webp',
-                $user_data
+                $this->data
             );
         } else {
             // Fallback filename generation
@@ -571,13 +564,15 @@
         }
     }
 
-    /**
-     * Create gradient background with Imagick
-     * @param Imagick $canvas
-     * @param string $color Center color
-     * @return void
-     */
-    protected function createGradientBackgroundImagick(Imagick &$canvas, string $color): void
+	/**
+	 * Create gradient background with Imagick
+	 * @param Imagick $canvas
+	 * @param string $color Center color
+	 * @return void
+	 * @throws ImagickException
+	 * @throws ImagickException
+	 */
+    protected function createGradientBackgroundImagick(Imagick $canvas, string $color): void
     {
         $width = $canvas->getImageWidth();
         $height = $canvas->getImageHeight();
@@ -958,7 +953,7 @@
      * @param string $color Center color
      * @return void
      */
-    protected function createGradientBackgroundGD(GdImage &$canvas, string $color):void
+    protected function createGradientBackgroundGD(GdImage $canvas, string $color):void
     {
         $width   = imagesx($canvas);
         $height  = imagesy($canvas);
@@ -1016,22 +1011,13 @@
         $imageInfo = getimagesize($imagePath);
 
         // Create image from source based on file type
-        switch ($imageInfo[2]) {
-            case IMAGETYPE_JPEG:
-                $sourceImage = imagecreatefromjpeg($imagePath);
-                break;
-            case IMAGETYPE_PNG:
-                $sourceImage = imagecreatefrompng($imagePath);
-                break;
-            case IMAGETYPE_GIF:
-                $sourceImage = imagecreatefromgif($imagePath);
-                break;
-            case IMAGETYPE_WEBP:
-                $sourceImage = imagecreatefromwebp($imagePath);
-                break;
-            default:
-                throw new Exception("Unsupported image type");
-        }
+		$sourceImage = match ($imageInfo[2]) {
+		    IMAGETYPE_JPEG => imagecreatefromjpeg($imagePath),
+		    IMAGETYPE_PNG => imagecreatefrompng($imagePath),
+		    IMAGETYPE_GIF => imagecreatefromgif($imagePath),
+		    IMAGETYPE_WEBP => imagecreatefromwebp($imagePath),
+		    default => throw new Exception("Unsupported image type"),
+	    };
 
         // Calculate dimensions while maintaining aspect ratio
         $sourceWidth = imagesx($sourceImage);

--
Gitblit v1.10.0