37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
|
|
<?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),
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|