From 96001cbecd66fd581ce6992be33894112cab8b3d Mon Sep 17 00:00:00 2001 From: "Joseph.Rawlings" Date: Thu, 18 Dec 2025 20:48:30 -0500 Subject: [PATCH] refactor: update server tag storage to individual columns and remove JSON tags migration --- .../Http/Controllers/ServerTagController.php | 9 ++++-- extensions/Servers/Proxmox/Models/Server.php | 29 +++++++++++++++--- ...000000_add_tags_to_ext_proxmox_servers.php | 30 ------------------- 3 files changed, 32 insertions(+), 36 deletions(-) delete mode 100644 extensions/Servers/Proxmox/database/migrations/2025_12_18_000000_add_tags_to_ext_proxmox_servers.php diff --git a/extensions/Servers/Proxmox/Http/Controllers/ServerTagController.php b/extensions/Servers/Proxmox/Http/Controllers/ServerTagController.php index f4ba05ec4..0ea0e1f1e 100644 --- a/extensions/Servers/Proxmox/Http/Controllers/ServerTagController.php +++ b/extensions/Servers/Proxmox/Http/Controllers/ServerTagController.php @@ -104,8 +104,13 @@ class ServerTagController ]; } - // Update local database - $server->tags = $processedTags; + // Update individual tag columns + $server->tag1 = $processedTags[0]['text'] ?? null; + $server->tag1color = $processedTags[0]['color'] ?? null; + $server->tag2 = $processedTags[1]['text'] ?? null; + $server->tag2color = $processedTags[1]['color'] ?? null; + $server->tag3 = $processedTags[2]['text'] ?? null; + $server->tag3color = $processedTags[2]['color'] ?? null; $server->save(); // Sync to Proxmox diff --git a/extensions/Servers/Proxmox/Models/Server.php b/extensions/Servers/Proxmox/Models/Server.php index 2b812b889..8581adc17 100644 --- a/extensions/Servers/Proxmox/Models/Server.php +++ b/extensions/Servers/Proxmox/Models/Server.php @@ -23,12 +23,33 @@ class Server extends Model 'user_set_icon', 'user_set_icon_color', 'user_set_icon_prefix', - 'tags', + 'tag1', + 'tag1color', + 'tag2', + 'tag2color', + 'tag3', + 'tag3color', ]; - protected $casts = [ - 'tags' => 'array', - ]; + /** + * Get tags as an array of objects + */ + public function getTagsAttribute(): array + { + $tags = []; + + if (!empty($this->tag1)) { + $tags[] = ['text' => $this->tag1, 'color' => $this->tag1color ?? '#3498db']; + } + if (!empty($this->tag2)) { + $tags[] = ['text' => $this->tag2, 'color' => $this->tag2color ?? '#3498db']; + } + if (!empty($this->tag3)) { + $tags[] = ['text' => $this->tag3, 'color' => $this->tag3color ?? '#3498db']; + } + + return $tags; + } public function node() { diff --git a/extensions/Servers/Proxmox/database/migrations/2025_12_18_000000_add_tags_to_ext_proxmox_servers.php b/extensions/Servers/Proxmox/database/migrations/2025_12_18_000000_add_tags_to_ext_proxmox_servers.php deleted file mode 100644 index 7dacf895c..000000000 --- a/extensions/Servers/Proxmox/database/migrations/2025_12_18_000000_add_tags_to_ext_proxmox_servers.php +++ /dev/null @@ -1,30 +0,0 @@ -json('tags')->nullable()->after('user_set_icon_prefix'); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('ext_proxmox_servers', function (Blueprint $table) { - $table->dropColumn('tags'); - }); - } -};