hasOfferCatalog??null; } public function setHasOfferCatalog(OfferCatalog|array $hasOfferCatalog):void { if (is_array($hasOfferCatalog)){ if (array_key_exists('generate', $hasOfferCatalog) && $hasOfferCatalog['generate']) { $this->generateOfferCatalog($hasOfferCatalog); } else { if (!array_key_exists('type', $hasOfferCatalog)) { $hasOfferCatalog['type'] = 'JVBase\inc\managers\SEO\render\Thing\Intangible\ItemList\OfferCatalog'; } $items = []; if (array_key_exists('items', $hasOfferCatalog)) { $items = $hasOfferCatalog['items']; unset($hasOfferCatalog['items']); } $hasOfferCatalog = SchemaHelper::classFromConfig($hasOfferCatalog); if (!empty($items)) { $hasOfferCatalog->setItemListElement($items); } } } $this->hasOfferCatalog = $hasOfferCatalog; } public function getHasOfferCatalogFieldConfig():array { return [ 'type' => 'group', 'label' => 'Offer Catalog', 'wrap' => 'details', 'fields' => [ 'generate' => [ 'type' => 'true_false', 'label' => 'Generate from Content type?', 'default' => false, ], 'content_type' => [ 'type' => 'checkbox', 'label' => 'Select Type to generate from', 'options' => Registrar::getRegistered(), 'condition' => [ 'field' => 'generate', 'value' => 1, 'operator' => '==' ] ], 'offer_catalog' => [ 'type' => 'repeater', 'label' => 'Manually Enter Offer Catalog', 'condition' => [ 'field' => 'generate', 'value' => 1, 'operator' => '!=' ], 'fields' => [ 'type' => [ 'type' => 'select', 'label' => 'Type', 'options' => [ 'product' => 'Product', 'service' => 'Service' ] ], 'name' => [ 'type' => 'text', 'label' => 'Name', ], 'description' => [ 'type' => 'textarea', 'label' => 'Description' ], 'price' => [ 'type' => 'number', 'label' => 'Price' ] ] ] ] ]; } }