get(); return response()->json(['data' => $program]); } public function store(Request $request, int $programId) { $program = Program::find($programId); if (!$program) { return response()->json([ 'status' => 'error', 'message' => 'Data program tidak ditemukan.' ], 404); } $validator = Validator::make($request->all(), [ 'provinsi_id' => ['required', 'exists:master_provinsi,id'], 'kabupaten_kota_id' => ['nullable', 'exists:master_kabupaten_kota,id'], 'kecamatan_id' => ['nullable', 'exists:master_kecamatan,id'], 'desa_kelurahan_id' => ['nullable', 'exists:master_desa_kelurahan,id'], 'default' => ['nullable', 'boolean'], ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => $validator->errors()->first() ], 422); } LokasiProgram::where('program_id', $programId)->update(['default' => false]); LokasiProgram::create([...$validator->validated(), //'default' => $request->has('default'), 'program_id' => $programId, 'created_by' => auth()->id(), 'updated_by' => auth()->id(), ]); return response()->json([ 'status' => 'success', 'message' => 'Data lokasi program berhasil disimpan.' ]); } public function show($id) { $program = Program::find($id); if (!$program) { return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.'); } return view('core.program.view', compact('program')); } public function edit($id) { $program = Program::find($id); if (!$program) { return redirect()->route('program.index')->with('error', 'Data program tidak ditemukan.'); } return view('core.program.edit', compact('program')); } public function update(Request $request, int $programId, int $id) { $lokasiProgram = LokasiProgram::where('program_id', $programId)->where('id', $id)->first(); if (!$lokasiProgram) { return response()->json([ 'status' => 'error', 'message' => 'Data lokasi program tidak ditemukan.' ], 404); } $validator = Validator::make($request->all(), [ 'default' => ['nullable', 'boolean'], ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => $validator->errors()->first() ], 422); } LokasiProgram::where('program_id', $programId)->update(['default' => false]); $lokasiProgram->update([...$validator->validated(), 'updated_by' => auth()->id(), ]); return response()->json([ 'status' => 'success', 'message' => 'Data lokasi program berhasil diperbarui!' ]); } public function destroy(int $programId, int $id) { $lokasiProgram = LokasiProgram::where('program_id', $programId)->where('id', $id)->first(); if (!$lokasiProgram) { return response()->json([ 'status' => 'error', 'message' => 'Data lokasi program tidak ditemukan.' ], 404); } $lokasiProgram->deleted_by = auth()->user()->id; $lokasiProgram->save(); $lokasiProgram->delete(); return response()->json([ 'status' => 'success', 'message' => 'Data lokasi program berhasil dihapus.' ]); } }