<?php
use WHMCS\View\Menu\Item as MenuItem;
use Illuminate\Database\Capsule\Manager as Capsule;

add_hook('ClientAreaSecondarySidebar', 1, function (MenuItem $secondarySidebar) {
    $service = Menu::context('service');
    if (!$service || empty($service->username)) return;

    $serverid = (int) $service->server;

    // Single query for all nameservers
    $server = Capsule::table('tblservers')
        ->where('id', $serverid)
        ->select('nameserver1', 'nameserver2', 'nameserver3', 'nameserver4')
        ->first();

    if (!$server) return;

    $nameservers = array_filter([
        $server->nameserver1,
        $server->nameserver2,
        $server->nameserver3,
        $server->nameserver4,
    ]);

    if (empty($nameservers)) return;

    // Add parent menu item
    $secondarySidebar->addChild('credentials', [
        'label' => 'Nameservers <span style="font-size:0.8em; margin-left:5px; cursor:help;"
                        title="To use on Domain Registrar Portal (Click to Copy)">
                        <i class="fas fa-info-circle"></i>
                    </span>',
        'uri'   => '#',
        'icon'  => 'fas fa-network-wired',
    ]);

    $credentialPanel = $secondarySidebar->getChild('credentials');
    $credentialPanel->moveToBack();

    // Add nameserver children
    foreach (array_values($nameservers) as $i => $ns) {
        $nsEscaped = htmlspecialchars($ns, ENT_QUOTES, 'UTF-8');
        $credentialPanel->addChild('ns' . ($i + 1), [
            'label' => sprintf(
                '<span style="cursor:pointer; transition:font-weight 0.2s;"
                       onmouseover="this.style.fontWeight=\'bold\';"
                       onmouseout="this.style.fontWeight=\'normal\';"
                       onclick="navigator.clipboard.writeText(\'%s\');
                                this.innerHTML=\'Copied ✔\';
                                setTimeout(()=>{this.innerHTML=\'%s\'},1000);">%s</span>',
                $nsEscaped, $nsEscaped, $nsEscaped
            ),
            'order' => 7 + $i,
            'icon'  => 'fa fa-server',
        ]);
    }
});