<?php
|
namespace JVBase\managers\SEO\render\Traits\_Properties;
|
|
use JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\GeoShape;
|
use JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\AdministrativeArea;
|
use JVBase\managers\SEO\render\Thing\Place\Place;
|
use JVBase\managers\SEO\render\Traits\_Helpers\arrayHelper;
|
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
trait areaServedTrait {
|
use arrayHelper;
|
/**
|
* @var AdministrativeArea|GeoShape|Place|string|array The geographic area where a service or offered item is provided. Supersedes serviceArea.
|
*/
|
protected AdministrativeArea|GeoShape|Place|string|array $areaServed;
|
|
public function getAreaServed():AdministrativeArea|GeoShape|Place|string|array|null
|
{
|
return $this->areaServed??null;
|
}
|
public function setAreaServed(AdministrativeArea|GeoShape|Place|string|array $areaServed):void
|
{
|
if (is_array($areaServed)) {
|
$areaServed = $this->mixedArray('areaServed', $areaServed, [
|
'string',
|
'JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\GeoShape',
|
'JVBase\managers\SEO\render\Thing\Place\AdministrativeArea\AdministrativeArea',
|
'JVBase\managers\SEO\render\Thing\Place\Place'
|
]);
|
}
|
$this->areaServed = $areaServed;
|
}
|
public function getAreaServedFieldConfig():array
|
{
|
return [
|
'type' => 'group',
|
'wrap' => 'details',
|
'label' => 'Area(s) Served',
|
'fields' => [
|
'name' => [
|
'type' => 'text',
|
'label' => 'Area Name',
|
'hint' => 'neighbourhood, city, province, or country'
|
],
|
'sameAs' => [
|
'type' => 'url',
|
'label' => 'Same As',
|
'hint' => 'The Wikipedia page of this area'
|
]
|
]
|
];
|
}
|
}
|