query('per_page', 10); $search = $request->query('search', ''); $provinsi = Provinsi::orderBy('kode', 'asc')->get(); $adat = Adat::with('desakelurahan') ->where('nama', 'like', "%$search%") ->orWhereHas('desakelurahan', function($query) use ($search) { $query->where('nama', 'like', "%$search%"); }) ->orderBy('nama', 'asc') ->paginate($perPage); return view('master.adat.index', compact('title', 'adat', 'provinsi')); } public function adatByDesa($adat_id) { $adat = Adat::where('desa_kelurahan_id', $desa_id) ->orderBy('nama', 'asc') ->get(); return response()->json($adat); } public function store(Request $request) { $validator = Validator::make($request->all(), [ 'nama' => ['required'], 'desa_kelurahan_id' => ['required', 'exists:master_desa_kelurahan,id'] ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => 'Terdapat kesalahan pada input Anda.', 'errors' => $validator->errors() ], 422); } Adat::create([ 'nama' => $request->nama, 'desa_kelurahan_id' => $request->desa_kelurahan_id, 'created_by' => auth()->id(), 'updated_by' => auth()->id(), ]); return response()->json([ 'status' => 'success', 'message' => 'Adat berhasil ditambahkan.' ]); } public function show($id) { $adat = Adat::with(['desakelurahan.kecamatan.kabupatenkota.provinsi'])->find($id); if (!$adat) { return response()->json([ 'status' => 'error', 'message' => 'Data tidak ditemukan' ], 404); } return response()->json([ 'status' => 'success', 'data' => [ 'id' => $adat->id, 'nama' => $adat->nama, 'desa_kelurahan_id' => $adat->desa_kelurahan_id, 'nama_desa_kelurahan' => $adat->desakelurahan->nama, 'kecamatan_id' => $adat->desakelurahan->kecamatan_id, 'nama_kecamatan' => $adat->desakelurahan->kecamatan->nama, 'kabupaten_kota_id' => $adat->desakelurahan->kecamatan->kabupaten_kota_id, 'nama_kabupaten_kota' => $adat->desakelurahan->kecamatan->kabupatenkota->nama, 'provinsi_id' => $adat->desakelurahan->kecamatan->kabupatenkota->provinsi_id, 'nama_provinsi' => $adat->desakelurahan->kecamatan->kabupatenkota->provinsi->nama ] ]); } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'nama' => ['required'], 'desa_kelurahan_id' => ['required', 'exists:master_desa_kelurahan,id'] ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => 'Terdapat kesalahan pada input Anda.', 'errors' => $validator->errors() ], 422); } $adat = Adat::find($id); if (!$adat) { return response()->json(['status' => 'error', 'message' => 'Data tidak ditemukan'], 404); } $adat->update([ 'nama' => $request->nama, 'desa_kelurahann_id' => $request->desa_kelurahan_id, 'updated_by' => auth()->id(), ]); return response()->json(['status' => 'success', 'message' => 'Data berhasil diperbarui!']); } public function destroy($id) { $adat = Adat::find($id); if (!$adat) { return response()->json([ 'status' => 'error', 'message' => 'Data tidak ditemukan.' ], 404); } $adat->deleted_by = auth()->user()->id; $adat->save(); $adat->delete(); return response()->json([ 'status' => 'success', 'message' => 'Data adat berhasil dihapus.' ]); } }