where('user_id', auth()->id()) ->orderBy('date', 'desc') ->get(); $categories = Category::where('user_id', auth()->id())->get(); $rules = CategoryRule::with('category') ->where('user_id', auth()->id()) ->get(); return Inertia::render('Expenses/Index', [ 'expenses' => $expenses, 'categories' => $categories, 'rules' => $rules, ]); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $validated = $request->validate([ 'amount' => 'required|numeric|min:0', 'category_id' => 'nullable|exists:categories,id', 'note' => 'nullable|string|max:255', 'date' => 'required|date', ]); Expense::create([ ...$validated, 'user_id' => auth()->id(), ]); return redirect()->back(); } /** * Display the specified resource. */ public function show(Expense $expense) { // } /** * Show the form for editing the specified resource. */ public function edit(Expense $expense) { // } /** * Update the specified resource in storage. */ public function update(Request $request, Expense $expense) { $this->authorize('update', $expense); $validated = $request->validate([ 'amount' => 'required|numeric|min:0', 'category_id' => 'nullable|exists:categories,id', 'note' => 'nullable|string|max:255', 'date' => 'required|date', ]); $expense->update($validated); return redirect()->back(); } /** * Remove the specified resource from storage. */ public function destroy(Expense $expense) { $this->authorize('delete', $expense); $expense->delete(); return redirect()->back(); } public function destroyBatch(Request $request) { $request->validate(['ids' => 'required|array']); Expense::whereIn('id', $request->ids) ->where('user_id', auth()->id()) ->delete(); return redirect()->back(); } }