<?php
|
namespace JVBase\managers\SEO;
|
|
|
|
/**
|
* Field Override Builder - For customizing fields within a specific type
|
*/
|
class FieldOverrideBuilder
|
{
|
private TypeBuilder $typeBuilder;
|
private string $fieldName;
|
private array $overrides = [];
|
|
public function __construct(TypeBuilder $typeBuilder, string $fieldName)
|
{
|
$this->typeBuilder = $typeBuilder;
|
$this->fieldName = $fieldName;
|
}
|
|
public function label(string $label): TypeBuilder
|
{
|
$this->overrides['label'] = $label;
|
return $this->finish();
|
}
|
|
public function description(string $description): TypeBuilder
|
{
|
$this->overrides['description'] = $description;
|
return $this->finish();
|
}
|
|
public function required(bool $required = true): TypeBuilder
|
{
|
$this->overrides['required'] = $required;
|
return $this->finish();
|
}
|
|
private function finish(): TypeBuilder
|
{
|
$this->typeBuilder->setFieldOverride($this->fieldName, $this->overrides);
|
return $this->typeBuilder;
|
}
|
}
|