<?php

namespace App\Packages\Capsule\Services;

use App\Packages\Capsule\Models\CapsulePreview;

/**
 * Class ImageResizeService
 * @package App\Packages\Capsule\Services
 */
class PreviewFactoryService
{
    /**
     * @param string $fileContent
     * @param float $width
     * @param float $height
     * @param string $size
     *
     * @return CapsulePreview
     */
    public function createFileData($fileContent,  $width, $height, $size)
    {
        $capsulePreview = new CapsulePreview();
        $capsulePreview->hash = md5($fileContent);
        $capsulePreview->ext = ImageResizeService::IMAGE_EXT;
        $capsulePreview->mime_type = ImageResizeService::IMAGE_MIME;
        $capsulePreview->size = $size;
        $capsulePreview->width = $width;
        $capsulePreview->height = $height;
        $capsulePreview->save();

        $capsulePreview->fileContent = $fileContent;

        return $capsulePreview;
    }

    /**
     * @param string $fileContent
     *
     * @return CapsulePreview
     */
    public function creteThumbData($fileContent)
    {
        $capsuleThumb = $this->createFileData(
            $fileContent,
            ImageResizeService::THUMB_WIDTH,
            ImageResizeService::THUMB_HEIGHT,
            strlen($fileContent)
        );

        return $capsuleThumb;
    }
}
