$this->service->paginated( ...$request->validatedWithDefaults(), filters: $request->only(['is_active', 'stock']), ), 'filters' => $request->only(['is_active', 'stock']), ]); } public function create(): Response { return Inertia::render('admin/master/raw-material/create'); } public function store(RawMaterialRequest $request): RedirectResponse { return $this->handleAction( fn() => $this->service->create($request->validated()), 'Bahan baku berhasil ditambahkan.', 'admin.master.raw-materials.index', 'admin.master.raw-materials.create' ); } public function edit(RawMaterial $rawMaterial): Response { return Inertia::render('admin/master/raw-material/edit', [ 'rawMaterial' => $this->service->getForEdit($rawMaterial), ]); } public function update(RawMaterialRequest $request, RawMaterial $rawMaterial): RedirectResponse { return $this->handleAction( fn() => $this->service->update($rawMaterial, $request->validated()), 'Bahan baku berhasil diperbarui.', 'admin.master.raw-materials.index', 'admin.master.raw-materials.edit', ['rawMaterial' => $rawMaterial] ); } public function destroy(RawMaterial $rawMaterial): RedirectResponse { return $this->handleAction( fn() => $this->service->delete($rawMaterial), 'Bahan baku berhasil dihapus.', 'admin.master.raw-materials.index' ); } public function toggleStatus(RawMaterial $rawMaterial): RedirectResponse { $this->service->toggleStatus($rawMaterial); $status = $rawMaterial->fresh()->is_active ? 'Aktif' : 'Non Aktif'; Inertia::flash('toast', ['type' => 'success', 'message' => "Status bahan baku berhasil diubah menjadi {$status}."]); return back(); } }