Files
animethemes-server/app/Actions/Models/Wiki/AttachImageAction.php
T
2025-07-24 01:22:29 -03:00

36 lines
772 B
PHP

<?php
declare(strict_types=1);
namespace App\Actions\Models\Wiki;
use App\Concerns\Models\CanCreateImage;
use App\Contracts\Models\HasImages;
use App\Enums\Models\Wiki\ImageFacet;
use App\Models\BaseModel;
use Illuminate\Support\Arr;
class AttachImageAction
{
use CanCreateImage;
/**
* Perform the action on the given models.
*
* @param array $fields
* @param ImageFacet[] $facets
*/
public function handle(BaseModel&HasImages $model, array $fields, array $facets): void
{
foreach ($facets as $facet) {
$image = Arr::get($fields, $facet->name);
if (empty($image)) {
continue;
}
$this->createImageFromFile($image, $facet, $model);
}
}
}