get(); return response()->json($templates); } /** * Menyimpan template baru. */ public function store(Request $request) { try { $validated = $request->validate([ 'kategori_id' => 'required|exists:kategoris,id', 'nama_template' => 'required|string|max:255', 'fitur' => 'nullable|string', 'foto' => 'nullable|string', ]); $template = Template::create($validated); return response()->json($template, 201); } catch (ValidationException $e) { return response()->json([ 'message' => 'Validation failed', 'errors' => $e->errors() ], 422); } } /** * Mengambil detail satu template berdasarkan ID. */ public function show($id) { $template = Template::with('kategori')->find($id); if (!$template) { return response()->json(['message' => 'Template not found'], 404); } return response()->json($template); } /** * Memperbarui template yang sudah ada. */ public function update(Request $request, $id) { $template = Template::find($id); if (!$template) { return response()->json(['message' => 'Template not found'], 404); } try { $validated = $request->validate([ 'kategori_id' => 'required|exists:kategoris,id', 'nama_template' => 'required|string|max:255', 'fitur' => 'nullable|string', 'foto' => 'nullable|string', ]); $template->update($validated); return response()->json($template); } catch (ValidationException $e) { return response()->json([ 'message' => 'Validation failed', 'errors' => $e->errors() ], 422); } } /** * Menghapus template. */ public function destroy($id) { $template = Template::find($id); if (!$template) { return response()->json(['message' => 'Template not found'], 404); } $template->delete(); return response()->json(null, 204); } }