<?php

namespace App\Services;
use Illuminate\Support\Facades\Storage;

class ImageService
{
    public function resize($image, $width, $path){
        $newImage = \Image::make($image);
        //$newImage->orientate();
        //$newImage->resize($width, $height)->save($path);
        $newImage->resize($width, null, function ($constraint) {
            $constraint->aspectRatio();
            $constraint->upsize();
        })->save($path);
    }

    public function resizeVerticalFloor($image, $fileName){
        $company_id = auth()->user()->company_id;
        $folder = storage_path('app/public/company_'.$company_id.'/floor');
        $this->checkDirExists();
        $this->resize($image, 800, $folder.'/800/'. $fileName);
        $this->resize($image, 350, $folder.'/350/'. $fileName);
    }

    public function checkDirExists(){
        $company_id = auth()->user()->company_id;
        if(!Storage::exists('public/company_'.$company_id.'/floor/1200')){
            Storage::makeDirectory('public/company_'.$company_id.'/floor/1200');
        }
        if(!Storage::exists('public/company_'.$company_id.'/floor/800')){
            Storage::makeDirectory('public/company_'.$company_id.'/floor/800');
        }
        if(!Storage::exists('public/company_'.$company_id.'/floor/350')){
            Storage::makeDirectory('public/company_'.$company_id.'/floor/350');
        }
    }

    public function resizeHorizontalFloor($image, $fileName){
        $company_id = auth()->user()->company_id;
        $folder = storage_path('app/public/company_'.$company_id.'/floor');
        $this->checkDirExists();
        $this->resize($image, 1200, $folder.'/1200/'. $fileName);
        $this->resize($image, 800, $folder.'/800/'. $fileName);
        $this->resize($image, 350, $folder.'/350/'. $fileName);
    }
}
