Jake Vanderwerf
2026-04-15 c4aa5cdb5e90ad4b420e22772797d16980232a2b
inc/managers/SEO/render/Traits/_Properties/openingHoursSpecificationTrait.php
@@ -1,23 +1,43 @@
<?php
namespace JVBase\managers\SEO\render\Traits\_Properties;
use JVBase\base\SchemaHelper;
use JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\OpeningHoursSpecification;
use JVBase\managers\SEO\render\Traits\_Helpers\arrayHelper;
if (!defined('ABSPATH')) {
   exit;
}
trait openingHoursSpecificationTrait {
   use arrayHelper;
   /**
    * @var OpeningHoursSpecification The opening hours of a certain place.
    * @var OpeningHoursSpecification|array The opening hours of a certain place.
    */
   protected OpeningHoursSpecification $openingHoursSpecification;
   protected OpeningHoursSpecification|array $openingHoursSpecification;
   public function getOpeningHoursSpecification():?OpeningHoursSpecification
   public function getOpeningHoursSpecification():OpeningHoursSpecification|array|null
   {
      return $this->openingHoursSpecification??null;
   }
   public function setOpeningHoursSpecification(OpeningHoursSpecification $openingHoursSpecification):void
   public function setOpeningHoursSpecification(OpeningHoursSpecification|array $openingHoursSpecification):void
   {
      if (is_array($openingHoursSpecification)) {
         if (array_key_exists('dayOfWeek', $openingHoursSpecification)) {
            if (!array_key_exists('type', $openingHoursSpecification)) {
               $openingHoursSpecification['type'] = 'JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\OpeningHoursSpecification';
            }
            $openingHoursSpecification = SchemaHelper::classFromConfig($openingHoursSpecification);
         } else {
            $out = [];
            foreach ($openingHoursSpecification as $hours) {
               if (!array_key_exists('type', $hours)){
                  $hours['type'] = 'JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\OpeningHoursSpecification';
               }
               $out[] = SchemaHelper::classFromConfig($hours);
            }
            $openingHoursSpecification = $out;
         }
      }
      $this->openingHoursSpecification = $openingHoursSpecification;
   }