54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Factories\FormBuilder;
|
|
|
|
use App\Enums\FormBuilder\FormFieldConfigType;
|
|
use App\Models\FormBuilder\FormField;
|
|
use App\Models\FormBuilder\FormFieldConfig;
|
|
use App\Models\FormBuilder\FormFieldLibrary;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/** @extends Factory<FormFieldConfig> */
|
|
final class FormFieldConfigFactory extends Factory
|
|
{
|
|
protected $model = FormFieldConfig::class;
|
|
|
|
/** @return array<string, mixed> */
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'owner_type' => 'form_field',
|
|
'owner_id' => FormField::factory(),
|
|
'config_type' => FormFieldConfigType::TagCategories->value,
|
|
'parameters' => ['categories' => ['Veiligheid']],
|
|
];
|
|
}
|
|
|
|
public function forField(FormField $field): static
|
|
{
|
|
return $this->state(fn () => [
|
|
'owner_type' => 'form_field',
|
|
'owner_id' => $field->id,
|
|
]);
|
|
}
|
|
|
|
public function forLibrary(FormFieldLibrary $library): static
|
|
{
|
|
return $this->state(fn () => [
|
|
'owner_type' => 'form_field_library',
|
|
'owner_id' => $library->id,
|
|
]);
|
|
}
|
|
|
|
/** @param array<string, mixed> $parameters */
|
|
public function ofType(FormFieldConfigType $type, array $parameters): static
|
|
{
|
|
return $this->state(fn () => [
|
|
'config_type' => $type->value,
|
|
'parameters' => $parameters,
|
|
]);
|
|
}
|
|
}
|