$id])->first(); } public function createClinic($name, $clinic_type = null, $available = 1): ?Clinic { $clinic = new Clinic; $clinic->name = $name; $clinic->available = $available; $clinic->slug = $clinic_type ?? 'general'; $clinic->created_by = Auth::id(); $clinic->updated_by = Auth::id(); try { $clinic->save(); return $clinic; } catch (\Exception $e) { return null; } } public function editClinic($id, $name, $available, $clinic_type = null): ?Clinic { $clinic = $this->getClinicById($id); $clinic->name = $name; $clinic->available = $available; $clinic->slug = $clinic_type ?? 'general'; try { $clinic->save(); return $clinic; } catch (\Exception $e) { return null; } } public function deactivateClinic(int $id): bool { $clinic = $this->getClinicById($id); try { $clinic->delete(); return true; } catch (\Exception $e) { return false; } } public function activateClinic($clinicId): array { $clinic= Clinic::withTrashed()->find($clinicId); if($clinic->restore()){ return [true, "Clinic has been activated"]; } else { return [false, ""]; } } public function getClinicTypes(): array{ return [ 'ante_natal' => 'ANTE-NATAL Clinic', 'art' => 'A.R.T Clinic', 'diabetes' => 'Diabetes Clinic', 'mental_health' => 'Mental Health Clinic', 'maternity' => 'Maternity Clinic', 'general' => 'General', 'eye' => 'Eye Clinic', ]; } public function getClinicsSeeder(): array{ return [ ['name' => 'ANTE-NATAL Clinic', 'slug' => 'ante_natal'], ['name' => 'A.R.T Clinic', 'slug' => 'art'], ['name' => 'Dental Clinic', 'slug' => 'general'], ['name' => 'Diabetes Clinic', 'slug' => 'diabetes'], ['name' => 'Paediatric Clinic', 'slug' => 'general'], ['name' => 'Psychiatry Clinic', 'slug' => 'mental_health'], ['name' => 'TB Clinic', 'slug' => 'general'], ['name' => 'Accident & Emergency Clinic', 'slug' => 'general'], ['name' => 'General Adult Clinic', 'slug' => 'general'], ['name' => 'Maternity Clinic', 'slug' => 'maternity'], ]; } }