<?php

namespace App\Development\Radb;

use Illuminate\Http\Client\Request;
use Illuminate\Support\Facades\Http;

// RADb registry mock (App\Helpers\Api\RADb) - the AS-SET objects the as-set automation reads members from.
class Registry
{
    // A specific AS-SET's attributes (GET /radb/as-set/{set}).
    public function asSet(array $params, Request $request)
    {
        return Http::response($this->object('AS137409:AS-CREATIA'), 200);
    }

    // AS-SET lookup by query string (GET /radb/search).
    public function search(array $params, Request $request)
    {
        return Http::response($this->object($params['query-string'] ?? 'AS137409:AS-CREATIA'), 200);
    }

    // Shared RADb object envelope - callers walk objects->object[0]->attributes->attribute.
    private function object($as_set)
    {
        return [ 'objects' => [ 'object' => [[
            'type'       => 'as-set',
            'attributes' => [ 'attribute' => [
                [ 'name' => 'as-set',  'value' => $as_set ],
                [ 'name' => 'descr',   'value' => 'Development mock AS-SET' ],
                [ 'name' => 'members', 'value' => 'AS137409' ],
                [ 'name' => 'members', 'value' => 'AS139284' ],
                [ 'name' => 'mnt-by',  'value' => 'MAINT-GSLNETWORKS-AU' ],
                [ 'name' => 'source',  'value' => 'RADB' ],
            ]],
        ]]]];
    }
}
