practices->where('service_code', 'chat')->where('active', 1)->count() >= 1; } public function getIsWalkinAvailableAttribute() { return $this->practices->where('service_code', 'walkin')->where('active', 1)->count() >= 1; } public function getIsVideoAvailableAttribute() { return $this->practices->where('service_code', 'video')->where('active', 1)->count() >= 1; } public function getIsInstantChatAvailableAttribute() { return $this->practices->where('service_code', 'instant-chat')->where('active', 1)->count() >= 1; } public function getDailyAvailabilitiesAttribute() { $schedules = [ 'Senin' => [], 'Selasa' => [], 'Rabu' => [], 'Kamis' => [], 'Jumat' => [], 'Sabtu' => [], 'Minggu' => [] ]; foreach ($this->availabilities as $availability) { if (count($availability->days)) { foreach ($availability->days as $day) { $schedules[$day][] = $availability->start_time; } } else { foreach ($schedules as $day => $times) { $schedules[$day][] = $availability->start_time; } } } return $schedules; } public function metas() { return $this->morphMany(Meta::class, 'metaable'); } public function organization() { return $this->belongsTo(Organization::class, 'organization_id'); } public function practitioner() { return $this->belongsTo(Practitioner::class, 'practitioner_id'); } public function speciality() { return $this->belongsTo(Speciality::class, 'speciality_id'); } public function practices() { return $this->hasMany(Practice::class, 'practitioner_role_id'); } public function availabilities() { return $this->hasMany(PractitionerRoleAvailability::class, 'practitioner_role_id'); } }