Files
ntspi-app/app/Containers/Dashboard/Actions/Pages/CreatePageAction.php
T
2026-04-10 09:01:47 +05:00

33 lines
989 B
PHP

<?php
namespace App\Containers\Dashboard\Actions\Pages;
use App\Containers\AppStructure\Models\Page;
use App\Containers\Dashboard\Tasks\Content\GenerateSearchDataTask;
class CreatePageAction
{
public function __construct(
private readonly GenerateSearchDataTask $generateSearchDataTask,
) {}
/**
* Создает новую страницу
*
* @param array $data Валидированные данные формы (title, slug, sub_section_id, code, searchable, icon, content, settings)
* @return Page Созданная страница
*/
public function run(array $data): Page
{
// Ensure icon is never saved even if sent from old forms
unset($data['icon']);
// Генерируем search_data из контента
if (!empty($data['content'])) {
$data['search_data'] = $this->generateSearchDataTask->run($data['content']);
}
return Page::create($data);
}
}