query('limit', 18), 36); $cards = $this->rising->risingCards($limit); return response()->json([ 'data' => $this->presenter->cards($cards->all(), false, $request->user()), ]); } /** * GET /api/cards/{id}/related * Returns related cards for a given card. */ public function related(Request $request, int $id): JsonResponse { $card = NovaCard::query()->publiclyVisible()->findOrFail($id); $limit = min((int) $request->query('limit', 8), 16); $relatedCards = $this->related->related($card, $limit); return response()->json([ 'data' => $this->presenter->cards($relatedCards->all(), false, $request->user()), ]); } /** * GET /api/cards/{id}/ai-suggest * Returns AI-assist suggestions for the given draft card. * The creator must own the card. */ public function suggest(Request $request, int $id): JsonResponse { $card = NovaCard::query() ->where('user_id', $request->user()->id) ->findOrFail($id); $suggestions = $this->aiAssist->allSuggestions($card); return response()->json([ 'data' => $suggestions, ]); } }