get(); return response()->json([ 'success' => true, 'message' => 'Daftar data panen tanaman berhasil diambil.', 'data' => $panenTanaman ], 200); } catch (Exception $e) { return response()->json([ 'success' => false, 'message' => 'Terjadi kesalahan saat mengambil data.', 'error' => $e->getMessage() ], 500); } } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validator = Validator::make($request->all(), [ 'panen_id' => 'required|integer', 'tanaman_id' => 'required|integer', 'commodity_name' => 'required|string|max:255', 'sync_status' => 'nullable|string|max:50', 'weight_kg' => 'required|numeric|min:0', ]); if ($validator->fails()) { return response()->json([ 'success' => false, 'message' => 'Validasi gagal.', 'errors' => $validator->errors() ], 422); } try { $panenTanaman = PanenTanaman::create($request->all()); return response()->json([ 'success' => true, 'message' => 'Data panen tanaman berhasil disimpan.', 'data' => $panenTanaman ], 201); } catch (Exception $e) { return response()->json([ 'success' => false, 'message' => 'Gagal menyimpan data.', 'error' => $e->getMessage() ], 500); } } /** * Display the specified resource. */ public function show(PanenTanaman $panenTanaman) { return response()->json([ 'success' => true, 'message' => 'Detail data panen tanaman ditemukan.', 'data' => $panenTanaman ], 200); } /** * Update the specified resource in storage. */ public function update(Request $request, PanenTanaman $panenTanaman) { $validator = Validator::make($request->all(), [ 'panen_id' => 'sometimes|required|integer', 'tanaman_id' => 'sometimes|required|integer', 'commodity_name' => 'sometimes|required|string|max:255', 'sync_status' => 'nullable|string|max:50', 'weight_kg' => 'sometimes|required|numeric|min:0', ]); if ($validator->fails()) { return response()->json([ 'success' => false, 'message' => 'Validasi gagal.', 'errors' => $validator->errors() ], 422); } try { $panenTanaman->update($request->all()); return response()->json([ 'success' => true, 'message' => 'Data panen tanaman berhasil diperbarui.', 'data' => $panenTanaman ], 200); } catch (Exception $e) { return response()->json([ 'success' => false, 'message' => 'Gagal memperbarui data.', 'error' => $e->getMessage() ], 500); } } /** * Remove the specified resource from storage. */ public function destroy(PanenTanaman $panenTanaman) { try { $panenTanaman->delete(); // Karena pakai SoftDeletes, data tidak terhapus permanen di DB return response()->json([ 'success' => true, 'message' => 'Data panen tanaman berhasil dihapus (soft delete).' ], 200); } catch (Exception $e) { return response()->json([ 'success' => false, 'message' => 'Gagal menghapus data.', 'error' => $e->getMessage() ], 500); } } }