<?php

declare(strict_types=1);

namespace App\Domain\Media;

use function move_uploaded_file;

final readonly class SaveImageFile
{
    public function __invoke(Image $image, string $tempFileName): bool
    {
        $directory = $image->path->toString();
        if (! is_dir($directory)) {
            mkdir($directory, 0755, true);
        }

        $fullPath = $image->path->join($image->filename)->toString();

        return move_uploaded_file($tempFileName, $fullPath);
    }
}
