+ /**
+ * Set the timezone
+ *
+ * @param string $timezone A valid time zone identifier, see https://www.php.net/manual/en/timezones.php
+ * @return void
+ */
+ public function setTimeZone(string $timezone)
+ {
+ $this->timezone = (new \DateTimeZone($timezone))->getName();
+ DateTimeFormat::setLocalTimeZone($this->timezone);
+ }
+
+ /**
+ * Get the timezone
+ *
+ * @return int
+ */
+ public function getTimeZone(): string
+ {
+ return $this->timezone;
+ }
+
+ /**
+ * Set workerqueue information
+ *
+ * @param array $queue
+ * @return void
+ */
+ public function setQueue(array $queue)
+ {
+ $this->queue = $queue;
+ }
+
+ /**
+ * Fetch workerqueue information
+ *
+ * @return array Worker queue
+ */
+ public function getQueue(): array
+ {
+ return $this->queue ?? [];
+ }
+
+ /**
+ * Fetch a specific workerqueue field
+ *
+ * @param string $index Work queue record to fetch
+ * @return mixed Work queue item or NULL if not found
+ */
+ public function getQueueValue(string $index)
+ {
+ return $this->queue[$index] ?? null;
+ }
+
+ public function setThemeInfoValue(string $index, $value)
+ {
+ $this->theme_info[$index] = $value;
+ }
+
+ public function getThemeInfo()
+ {
+ return $this->theme_info;
+ }
+
+ public function getThemeInfoValue(string $index, $default = null)
+ {
+ return $this->theme_info[$index] ?? $default;
+ }
+