<?php

namespace App\Development\Goliath;

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

// Goliath appliance mock (App\Models\Goliath\GoliathRuleset) - ruleset cost/budget validation.
class Validator
{
    /*
     * Validate a compiled ruleset's cost against budget. The posted "420" payload holds one
     * entry per rule, so we pick a fixture by rule count (1-3, else default) to cover the
     * within-budget and over-budget response shapes.
     */
    public function cost(array $params, Request $request)
    {
        $rules = $params['420'] ?? [];
        $count = is_array($rules) ? count($rules) : 0;

        $fixture = in_array($count, [1, 2, 3], true) ? "RulesetValidate-$count.json" : 'RulesetValidate-Default.json';

        return Http::response(json_decode(file_get_contents(app_path("Development/Goliath/$fixture")), true), 200);
    }
}
