request = $request; parent::__construct($resource); } public function toArray($request) { // Specialis $specialists = Speciality::all(); // Doctor livechat $doctors = Practitioner::with('person', 'practitionerRoles.organization', 'practitionerRoles.speciality') ->whereHas('person', function ($query) { $query->where('isOnline', 1); // hanya online }) ->get() ->toArray(); $doctorsLivechat = []; foreach($doctors as $doctor){ $specialist = 'Umum'; $year = 0; $price = 0; $organizationId = 0; if (!empty($doctor['person']['start_date_work'])) { $starExperience = Carbon::parse($doctor['person']['start_date_work'])->format('Y-m-d'); $experience = Carbon::createFromFormat('Y-m-d', $starExperience); $year = $experience->diffInYears(Carbon::now()); } if ($doctor['practitioner_roles']) { if ($doctor['practitioner_roles'][0]['speciality']){ $specialist = $doctor['practitioner_roles'][0]['speciality']['name']; } if ($doctor['practitioner_roles'][0]['price']){ $price = $doctor['practitioner_roles'][0]['price']; } if ($doctor['practitioner_roles'][0]['organization_id']){ $organizationId = $doctor['practitioner_roles'][0]['organization_id']; } } $data = [ 'id' => $doctor['person']['id'], 'full_name' => $doctor['person']['name'], 'specialist' => $specialist, 'organization_id' => $organizationId, 'experience' => $year, 'review' => $doctor['person']['review'], 'price' => $price, 'price_real' => $price ]; array_push($doctorsLivechat, $data); } return [ 'jadwal_weekday' => 'Senin - Jumat (08:00 - 17:30)', 'jadwal_weekend' => 'Sabtu (08:00 - 12:00)', 'doctors_livechat' => $doctorsLivechat , 'specialist' => $specialists ]; } }