with([ 'practitioner.person', 'speciality' ]) ->whereHas('speciality')->get()->random($limit); $data = DoctorResourceDashboard::collection($queryDoctors); } elseif ($default === 'hospitals') { $queryHospitals = Organization::query() ->without('meta') ->where('organizations.type', 'hospital') ->leftJoin('addresses', function ($q) { $q->on('organizations.main_address_id', '=', 'addresses.id'); $q->where('addresses.addressable_type', '=', Organization::class); }); if ($request->has('lat') && !empty($request->lat) && $request->has('lng') && !empty($request->lng)) { $queryHospitals = $queryHospitals->selectRaw("organizations.*, addresses.text AS currentAddress, 6371 * acos (cos ( radians($request->lat) ) * cos( radians( addresses.lat ) ) * cos( radians( addresses.lng ) - radians($request->lng) ) + sin ( radians($request->lat) ) * sin( radians( addresses.lat ) )) as distance")->orderBy('distance', 'ASC'); } $queryHospitals = $queryHospitals->orderBy('organizations.name', 'asc')->limit($limit)->get(); $data = HospitalResourceDashboard::collection($queryHospitals); } elseif ($default === 'articles') { $data = ArticleResourceDashboard::collection(json_decode(Http::get('https://linksehat.com/api/medical-assistance-articles'))); } return response()->json([ 'success' => true, 'statusCode' => 200, 'message' => 'Success', 'data' => $data, ]); } }