user()->load('patient'); if ($user->patient) { $this->patient = $user->patient; // Mapping data dari database ke properti form $this->name = $user->name; $this->nik = $this->patient->nik; $this->place_of_birth = $this->patient->place_of_birth; $this->date_of_birth = $this->patient->date_of_birth; $this->gender = $this->patient->gender; $this->blood_type = $this->patient->blood_type; $this->phone = $this->patient->phone; $this->address = $this->patient->address; $this->insurance_type = $this->patient->insurance_type; $this->insurance_number = $this->patient->insurance_number; $this->emergency_contact_name = $this->patient->emergency_contact_name; $this->emergency_contact_phone = $this->patient->emergency_contact_phone; $this->emergency_contact_relation = $this->patient->emergency_contact_relation; } else { // Jika user punya role patient tapi data di tabel patients hilang return redirect()->route('patient.complete-profile')->with('error', 'Data profil Anda tidak ditemukan. Silakan lengkapi profil Anda terlebih dahulu.'); } } public function updateProfile() { // Validasi data $this->validate([ 'phone' => 'required|numeric', 'address' => 'required|min:10', 'place_of_birth' => 'required', 'date_of_birth' => 'required|date', 'insurance_type' => 'required', 'insurance_number' => 'required_if:insurance_type,BPJS,Asuransi Swasta', ]); // Update data di tabel patients $this->patient->update([ 'place_of_birth' => $this->place_of_birth, 'date_of_birth' => $this->date_of_birth, 'gender' => $this->gender, 'blood_type' => $this->blood_type, 'phone' => $this->phone, 'address' => $this->address, 'insurance_type' => $this->insurance_type, 'insurance_number' => $this->insurance_number, 'emergency_contact_name' => $this->emergency_contact_name, 'emergency_contact_phone' => $this->emergency_contact_phone, 'emergency_contact_relation' => $this->emergency_contact_relation, ]); Toaster::success('Profil berhasil diperbarui.'); } public function render() { return view('livewire.patient.patient-profile'); } }