mandant-crm/backend/app/Modules/CustomField/DTOs/CustomFieldDefinitionData.php

37 lines
1.1 KiB
PHP
Raw Normal View History

<?php
namespace App\Modules\CustomField\DTOs;
use App\Modules\CustomField\Requests\CreateCustomFieldDefinitionRequest;
use App\Modules\CustomField\Requests\UpdateCustomFieldDefinitionRequest;
final class CustomFieldDefinitionData
{
public function __construct(
public readonly ?string $label,
public readonly ?string $type,
public readonly ?array $options,
public readonly bool $isRequired,
) {}
public static function fromCreateRequest(CreateCustomFieldDefinitionRequest $request): self
{
return new self(
label: $request->validated('label'),
type: $request->validated('type'),
options: $request->validated('options'),
isRequired: (bool) $request->validated('is_required', false),
);
}
public static function fromUpdateRequest(UpdateCustomFieldDefinitionRequest $request): self
{
return new self(
label: $request->validated('label'),
type: $request->validated('type'),
options: $request->validated('options'),
isRequired: (bool) $request->validated('is_required', false),
);
}
}