HEX
Server: LiteSpeed
System: Linux s3604.bom1.stableserver.net 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User: dmstechonline (1480)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/dmstechonline/whatsapp.dmstech.online/database/seeders/AddonsTableSeeder8.php
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Addon;

class AddonsTableSeeder8 extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $rows = [
            [
                'name' => 'Razorpay',
                'metadata' => '{"name": "Razorpay", "input_fields": [{"element": "input", "type": "text", "name": "razorpay_key_id", "label": "Key ID", "class": "col-span-2"}, {"element": "input", "type": "text", "name": "razorpay_secret_key", "label": "Secret Key", "class": "col-span-2"},{"element": "input", "type": "text", "name": "razorpay_webhook_secret", "label": "Webhook secret", "class": "col-span-2"}]}',
            ],
            [
                'name' => 'Google Authenticator',
                'metadata' => '{"name": "GoogleAuthenticator"}',
            ],
            [
                'name' => 'Google Recaptcha',
                'metadata' => '{"name": "GoogleRecaptcha", "input_fields": [{"element": "input", "type": "password", "name": "recaptcha_site_key", "label": "Recaptcha site key", "class": "col-span-2"}, {"element": "input", "type": "password", "name": "recaptcha_secret_key", "label": "Recaptcha secret key", "class": "col-span-2"}]}',
            ],
            [
                'name' => 'AI Assistant',
                'metadata' => '{"name": "IntelliReply"}',
            ],
            [
                'name' => 'Webhooks',
                'metadata' => '{"name": "Webhook"}',
            ],
            [
                'name' => 'Flow builder',
                'metadata' => '{"name": "FlowBuilder"}',
            ],
            [
                'name' => 'Embedded Signup',
                'metadata' => '{"name": "EmbeddedSignup"}'
            ]
        ];

        foreach ($rows as $row) {
            $addon = Addon::where('name', $row['name'])->first();

            if ($addon) {
                // Decode existing metadata or start fresh
                $metadata = $addon->metadata ? json_decode($addon->metadata, true) : [];

                // Extract folder_name from the provided metadata
                $newMetadata = json_decode($row['metadata'], true);
                if (!isset($metadata['name']) && isset($newMetadata['name'])) {
                    $metadata['name'] = $newMetadata['name'];
                }

                // Merge other metadata if it exists
                if (!empty($newMetadata)) {
                    $metadata = array_merge($metadata, $newMetadata);
                }

                // Update the addon metadata
                $addon->update([
                    'metadata' => json_encode($metadata, JSON_PRETTY_PRINT),
                ]);
            }
        }
    }
}