middleware('auth'); $this->middleware(\App\Http\Middleware\CheckRole::class . ':admin'); } public function index() { $barang = Barang::latest()->get(); return view('admin.barang.index', compact('barang')); } public function create() { return view('admin.barang.create'); } public function store(Request $request) { $request->validate([ 'nama' => 'required|string|max:255', 'deskripsi' => 'required|string', 'harga' => 'required|numeric|min:0', 'stok' => 'required|integer|min:0', 'kategori' => 'required|string|max:100', 'gambar' => 'required|image|mimes:jpeg,png,jpg|max:2048', ]); $data = [ 'nama_barang' => $request->nama, 'deskripsi' => $request->deskripsi, 'harga' => $request->harga, 'stok' => $request->stok, 'kategori' => $request->kategori, 'slug' => Str::slug($request->nama) . '-' . Str::random(5), ]; if ($request->hasFile('gambar')) { $gambar = $request->file('gambar'); // Simpan dengan nama asli $fileName = $gambar->getClientOriginalName(); $path = $gambar->storeAs('products', $fileName, 'public'); $data['gambar'] = $path; } Barang::create($data); return redirect()->route('admin.barang.index') ->with('success', 'Barang berhasil ditambahkan'); } public function show(Barang $barang) { return view('admin.barang.show', compact('barang')); } public function edit(Barang $barang) { return view('admin.barang.edit', compact('barang')); } public function update(Request $request, Barang $barang) { $request->validate([ 'nama' => 'required|string|max:255', 'deskripsi' => 'required|string', 'harga' => 'required|numeric|min:0', 'stok' => 'required|integer|min:0', 'kategori' => 'required|string|max:100', 'gambar' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', ]); $data = [ 'nama_barang' => $request->nama, 'deskripsi' => $request->deskripsi, 'harga' => $request->harga, 'stok' => $request->stok, 'kategori' => $request->kategori, ]; if ($request->hasFile('gambar')) { // Hapus gambar lama jika ada if ($barang->gambar) { Storage::disk('public')->delete($barang->gambar); } $data['gambar'] = $request->file('gambar')->store('products', 'public'); } $barang->update($data); return redirect()->route('admin.barang.index') ->with('success', 'Barang berhasil diupdate'); } public function destroy(Barang $barang) { // Hapus gambar jika ada if ($barang->gambar) { Storage::disk('public')->delete($barang->gambar); } $barang->delete(); return redirect()->route('admin.barang.index') ->with('success', 'Barang berhasil dihapus'); } }