From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan

---
 inc/meta/Field.php |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/inc/meta/Field.php b/inc/meta/Field.php
index 0efb8e3..c6cf372 100644
--- a/inc/meta/Field.php
+++ b/inc/meta/Field.php
@@ -27,6 +27,9 @@
 		$this->config = $config;
 	}
 
+	/**
+	 * Set field value and track dirty state
+	 */
 	public function set(mixed $value): self
 	{
 		$this->value = $value;
@@ -34,11 +37,17 @@
 		return $this;
 	}
 
+	/**
+	 * Get current value
+	 */
 	public function get(): mixed
 	{
 		return $this->value;
 	}
 
+	/**
+	 * Mark field as clean (after save)
+	 */
 	public function markClean(): self
 	{
 		$this->originalValue = $this->value;
@@ -46,6 +55,9 @@
 		return $this;
 	}
 
+	/**
+	 * Reset to original value
+	 */
 	public function reset(): self
 	{
 		$this->value = $this->originalValue;
@@ -53,6 +65,9 @@
 		return $this;
 	}
 
+	/**
+	 * Add validation error
+	 */
 	public function addError(string $message): self
 	{
 		$this->errors[] = $message;
@@ -60,6 +75,9 @@
 		return $this;
 	}
 
+	/**
+	 * Clear all errors
+	 */
 	public function clearErrors(): self
 	{
 		$this->errors = [];
@@ -67,18 +85,51 @@
 		return $this;
 	}
 
+	/**
+	 * Get field type from config
+	 */
 	public function type(): string
 	{
 		return $this->config['type'] ?? 'text';
 	}
 
+	/**
+	 * Check if this is a WordPress default field
+	 */
 	public function isWpDefault(): bool
 	{
 		return $this->config['_wp_default'] ?? false;
 	}
 
+	/**
+	 * Check if this is a taxonomy relationship field (not taxonomy_type)
+	 */
 	public function isTaxonomy(): bool
 	{
 		return $this->type() === 'taxonomy' && !isset($this->config['taxonomy_type']);
 	}
+
+	/**
+	 * Check if field is required
+	 */
+	public function isRequired(): bool
+	{
+		return !empty($this->config['required']);
+	}
+
+	/**
+	 * Get field label
+	 */
+	public function label(): string
+	{
+		return $this->config['label'] ?? $this->name;
+	}
+
+	/**
+	 * Get field description
+	 */
+	public function description(): string
+	{
+		return $this->config['description'] ?? '';
+	}
 }

--
Gitblit v1.10.0