get(); return view('admin.coupons.index', compact('coupons')); } public function create() { return view('admin.coupons.form'); } public function store(Request $request) { $data = $request->validate([ 'code' => 'required|string|max:50|unique:coupons,code', 'type' => 'required|in:percent,fixed', 'value' => 'required|numeric|min:0.01', 'min_order_value' => 'nullable|numeric|min:0', 'expires_at' => 'nullable|date', 'max_uses' => 'nullable|integer|min:1', 'active' => 'boolean', ]); $data['code'] = strtoupper(trim($data['code'])); $data['active'] = $request->boolean('active'); Coupon::create($data); return redirect()->route('admin.coupons.index')->with('success', 'Gutschein erstellt.'); } public function edit(Coupon $coupon) { return view('admin.coupons.form', compact('coupon')); } public function update(Request $request, Coupon $coupon) { $data = $request->validate([ 'code' => 'required|string|max:50|unique:coupons,code,' . $coupon->id, 'type' => 'required|in:percent,fixed', 'value' => 'required|numeric|min:0.01', 'min_order_value' => 'nullable|numeric|min:0', 'expires_at' => 'nullable|date', 'max_uses' => 'nullable|integer|min:1', 'active' => 'boolean', ]); $data['code'] = strtoupper(trim($data['code'])); $data['active'] = $request->boolean('active'); $coupon->update($data); return redirect()->route('admin.coupons.index')->with('success', 'Gutschein aktualisiert.'); } public function destroy(Coupon $coupon) { $coupon->delete(); return redirect()->route('admin.coupons.index')->with('success', 'Gutschein gelöscht.'); } }