From c4aa5cdb5e90ad4b420e22772797d16980232a2b Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 15 Apr 2026 18:38:55 +0000
Subject: [PATCH] =Updating custom tables to utilize CustomTable.php

---
 inc/managers/SEO/render/Traits/_Properties/hasOfferCatalogTrait.php |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/inc/managers/SEO/render/Traits/_Properties/hasOfferCatalogTrait.php b/inc/managers/SEO/render/Traits/_Properties/hasOfferCatalogTrait.php
index 90f336a..0230b99 100644
--- a/inc/managers/SEO/render/Traits/_Properties/hasOfferCatalogTrait.php
+++ b/inc/managers/SEO/render/Traits/_Properties/hasOfferCatalogTrait.php
@@ -1,7 +1,8 @@
 <?php
 namespace JVBase\managers\SEO\render\Traits\_Properties;
 
-use JVBase\managers\SEO\render\Thing\Intangible\OfferCatalog;
+use JVBase\base\SchemaHelper;
+use JVBase\inc\managers\SEO\render\Thing\Intangible\ItemList\OfferCatalog;
 use JVBase\registrar\Registrar;
 
 if (!defined('ABSPATH')) {
@@ -17,8 +18,26 @@
 	{
 		return $this->hasOfferCatalog??null;
 	}
-	public function setHasOfferCatalog(OfferCatalog $hasOfferCatalog):void
+	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;
 	}
 
@@ -31,7 +50,8 @@
 			'fields'	=> [
 				'generate'	=> [
 					'type'	=> 'true_false',
-					'label'	=> 'Generate from Content type?'
+					'label'	=> 'Generate from Content type?',
+					'default'	=> false,
 				],
 				'content_type'	=> [
 					'type'	=> 'checkbox',
@@ -67,6 +87,10 @@
 						'description'	=> [
 							'type'	=> 'textarea',
 							'label'	=> 'Description'
+						],
+						'price'	=> [
+							'type'	=> 'number',
+							'label'	=> 'Price'
 						]
 					]
 				]

--
Gitblit v1.10.0