get(); $transformedTemplates = $templates->map(function ($template) { return [ 'id' => $template->id, 'nama_template' => $template->nama_template, 'slug' => $template->slug, 'harga' => $template->harga, 'paket' => $template->paket, 'kategori' => $template->kategori ? $template->kategori->nama : null, 'foto' => $template->foto ? asset('storage/' . $template->foto) : null, ]; }); return response()->json($transformedTemplates); } // Ambil detail template tertentu public function show(Template $template) { return response()->json([ 'id' => $template->id, 'nama_template' => $template->nama_template, 'harga' => $template->harga, 'paket' => $template->paket, 'kategori' => $template->kategori ? $template->kategori->nama : null, 'foto' => $template->foto ? asset('storage/' . $template->foto) : null, ]); } public function getByCategory($id) { $templates = Template::with('fiturs', 'kategori') ->where('kategori_id', $id) ->get(); $transformed = $templates->map(function($template) { return [ 'id' => $template->id, 'nama_template' => $template->nama_template, 'harga' => $template->harga, 'paket' => $template->paket, 'kategori' => $template->kategori ? [ 'id' => $template->kategori->id, 'nama' => $template->kategori->nama ] : null, 'foto' => $template->foto ? asset('storage/' . $template->foto) : null, 'fiturs' => $template->fiturs ?? [], ]; }); return response()->json($transformed); } }