where('published', true) ->groupBy('department') ->select('department', DB::raw('count(*) as total')) ->get()->toArray(); } ); return response()->json($breederCountPerDepartment); } /** * Get all the breeders in a given department. */ public function getDepartmentBreeders(Request $request): JsonResponse { // TODO: checker si le departement existe. // TODO: mettre à jour le cache lors de l'édition/ajout/suppression d'un éleveur. $breeders = Cache::remember( sprintf('departmentBreeders%s', $request->DEPARTMENT), 86400, function () use ($request) { return Breeder::query() ->where('published', true) ->where('is_highlighted', true) ->where('department', Department::make($request->DEPARTMENT)) ->get()->toArray(); } ); return response()->json($breeders); } /** * Get all the breeders views in a given department. * * @return array */ public function getDepartmentBreedersViews(Request $request): array { return Breeder::query() ->where('published', true) ->where('is_highlighted', true) ->where('department', Department::make($request->DEPARTMENT)) ->get() ->map(function ($breederModel) { return view('fo.partials.breeder-card', [ 'model' => $breederModel, 'isSlider' => true, ])->render(); })->toArray(); } /** * Get all the breeders views in a given department. */ public function getManageableTextComponent(): array { return GeneralSetting::query()->where('type', SettingsType::breederMap)->first()->value; } /** * Get all the breeders views in a given department. */ public function searchOcbBreedersCards(Request $request): array { return OcbBreeder::getOcbBreederCards($request->page, $request->search); } }