where('statusenabled', true)->get(); return response()->json([ 'message' => 'Data tempat tidur berhasil diambil', 'data' => $data ]); } catch (\Exception $e) { return response()->json([ 'message' => 'Gagal ambil data tempat tidur', 'error' => $e->getMessage() ], 500); } } public function tambahTempatTidur(Request $request) { DB::beginTransaction(); try { $validated = $request->validate([ 'nama_tempat_tidur' => 'required|string|max:100', 'kamar_id' => 'required|numeric', 'status' => 'required|string|in:kosong,terisi', // Validasi status ]); // Ambil tempat tidur terakhir berdasarkan id dan generate kode $lastTempatTidur = Ms_TempatTidur::orderBy('id', 'desc')->first(); $nextNumber = $lastTempatTidur ? $lastTempatTidur->id + 1 : 1; $kodeTempatTidur = 'TT-' . str_pad($nextNumber, 3, '0', STR_PAD_LEFT); // Format kode TT-001 $tempatTidur = Ms_TempatTidur::create([ 'nama_tempat_tidur' => $validated['nama_tempat_tidur'], 'kode_tempat_tidur' => $kodeTempatTidur, // Menyimpan kode unik 'status' => $validated['status'], 'kamar_id' => $validated['kamar_id'], 'statusenabled' => true, ]); DB::commit(); return response()->json([ 'message' => 'Tempat tidur berhasil ditambahkan', 'data' => $tempatTidur ], 201); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal tambah tempat tidur', 'error' => $e->getMessage() ], 500); } } public function updateTempatTidur(Request $request, $id) { DB::beginTransaction(); try { $validated = $request->validate([ 'nama_tempat_tidur' => 'required|string|max:100', 'kamar_id' => 'required|numeric', 'status' => 'required|string|in:kosong,terisi', // Validasi status ]); $tempatTidur = Ms_TempatTidur::findOrFail($id); $tempatTidur->update([ 'nama_tempat_tidur' => $validated['nama_tempat_tidur'], 'kamar_id' => $validated['kamar_id'], 'status' => $validated['status'], ]); DB::commit(); return response()->json([ 'message' => 'Tempat tidur berhasil diperbarui', 'data' => $tempatTidur ]); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal update tempat tidur', 'error' => $e->getMessage() ], 500); } } public function hapusTempatTidur($id) { DB::beginTransaction(); try { $tempatTidur = Ms_TempatTidur::findOrFail($id); $tempatTidur->statusenabled = false; $tempatTidur->save(); DB::commit(); return response()->json([ 'message' => 'Tempat tidur berhasil dinonaktifkan', 'data' => $tempatTidur ]); } catch (\Exception $e) { DB::rollBack(); return response()->json([ 'message' => 'Gagal hapus tempat tidur', 'error' => $e->getMessage() ], 500); } } }