rest( CollectionResource::collection( Collection::with('media')->where('is_visible', true)->ordered()->get() ) ); } /** * Paginated */ public function paginated(Request $request) { $perPage = $request->perPage ?: 6; return response()->rest_paginate( CollectionResource::collection( Collection::with('media')->where('is_visible', true)->ordered()->simplePaginate($perPage) ) ); } /** * Collections (show) */ public function show(Collection $collection): JsonResponse { $collection->load('media'); return response()->rest(new CollectionResource($collection)); } /** * Collections (products) */ public function products(BasicProductIndexRequest $request, Collection $collection) { return response()->rest_paginate( ProductResource::collection( ProductRepository::make($request) ->queryAsFromResource($collection) ->applyBasicQueries() ->applyFilters() ->applySorting() ->simplePaginate() ) ); } }