user()->id; $pembayaran = Pembayaran::where('santri_id', $santriId) ->with('santri') ->latest('tanggal') ->get() ->map(function ($item) { return [ 'id' => $item->id, 'santri_id' => $item->santri_id, 'kelas_id' => $item->kelas_id, 'tanggal' => $item->tanggal, 'jumlah' => $item->jumlah, 'jenis_pembayaran' => $item->jenis_pembayaran, 'keterangan' => $item->keterangan, 'bukti_pembayaran' => $item->bukti_pembayaran ? asset('storage/' . $item->bukti_pembayaran) : null, 'status' => $item->status, 'created_at' => $item->created_at, 'updated_at' => $item->updated_at, 'santri_name' => $item->santri->name ?? null, ]; }); return response()->json($pembayaran); } // ✅ POST: /api/pembayaran public function store(Request $request) { $request->validate([ 'tanggal' => 'required|date', 'jenis_pembayaran' => 'required|string', 'jumlah' => 'required|numeric', 'keterangan' => 'nullable|string', 'bukti_pembayaran' => 'required|image|mimes:jpg,jpeg,png|max:2048', ]); $pembayaran = new Pembayaran(); $pembayaran->santri_id = $request->user()->id; // Ambil kelas_id dari relasi user → santri → kelas $pembayaran->kelas_id = $request->user()->santri->kelas_id ?? null; $pembayaran->tanggal = $request->tanggal; $pembayaran->jenis_pembayaran = $request->jenis_pembayaran; $pembayaran->jumlah = $request->jumlah; $pembayaran->keterangan = $request->keterangan; $pembayaran->status = 'menunggu'; if ($request->hasFile('bukti_pembayaran')) { $file = $request->file('bukti_pembayaran'); $path = $file->store('bukti_pembayaran', 'public'); $pembayaran->bukti_pembayaran = $path; } $pembayaran->save(); return response()->json([ 'success' => true, 'message' => 'Pembayaran berhasil dikirim', 'data' => $pembayaran ], 201); } }