mandant-crm/backend/app/Modules/CustomField/Actions/UpdateCustomFieldDefinitionAction.php

24 lines
781 B
PHP
Raw Normal View History

<?php
namespace App\Modules\CustomField\Actions;
use App\Modules\CustomField\DTOs\CustomFieldDefinitionData;
use App\Modules\CustomField\Models\CustomFieldDefinition;
use App\Modules\CustomField\Models\CustomFieldType;
final class UpdateCustomFieldDefinitionAction
{
public function handle(CustomFieldDefinition $definition, CustomFieldDefinitionData $data): CustomFieldDefinition
{
// sort_order is managed exclusively via the reorder endpoint.
$definition->update([
'label' => $data->label,
'type' => $data->type,
'options' => $data->type === CustomFieldType::Select->value ? array_values($data->options ?? []) : null,
'is_required' => $data->isRequired,
]);
return $definition;
}
}