with(['modelli' => fn ($q) => $q->attivi()]) ->get(); return response()->json($sistemi->map(fn (Sistema $s) => $this->sistema($s))->values()); } /** * GET /api/sistemi/{codice} */ public function sistemaPerCodice(string $codice): JsonResponse { $sistema = Sistema::attivi() ->where('codice', $codice) ->with(['modelli' => fn ($q) => $q->attivi()]) ->firstOrFail(); return response()->json($this->sistema($sistema)); } private function sistema(Sistema $sistema): array { return [ 'codice' => $sistema->codice, 'nome' => $sistema->nome, 'modelli' => $sistema->modelli->map(fn (Modello $m) => $this->modello($m))->values(), ]; } // Stessa forma del vecchio modelli.json (id, nome, cartella, modello, ...) più descrizione e icona. private function modello(Modello $modello): array { return [ 'id' => $modello->codice, 'nome' => $modello->nome, 'descrizione' => $modello->descrizione, 'icona' => $modello->icona_url, 'cartella' => $modello->cartella, 'modello' => $modello->file_modello, 'categoria' => $modello->categoria, 'cartella_texture' => $modello->cartella_texture, 'moduli' => $modello->moduli ?? [], 'enabled' => true, ]; } }